diff --git a/.hgignore b/.hgignore
index 1c08454..274be82 100644
--- a/.hgignore
+++ b/.hgignore
@@ -6,3 +6,4 @@
 .gitignore
 samples/cmdline/*.dat
 htmlcov/*
+.coverage
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 765db3f..3d30fbd 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -32,7 +32,7 @@
 
 try: # pragma: no cover
   import simplejson
-except ImportError:
+except ImportError: # pragma: no cover
   try:
     # Try to import from django, should work on App Engine
     from django.utils import simplejson
diff --git a/functional_tests/test_services.py b/functional_tests/test_services.py
index e82ec24..ae197ba 100644
--- a/functional_tests/test_services.py
+++ b/functional_tests/test_services.py
@@ -27,9 +27,13 @@
     actcol = buzz.activities()
     activities = actcol.list(userId='googlebuzz', scope='@self',
                              max_comments=max_results*2 ,max_liked=max_results*3,
-                             max_results=max_results).execute()['items']
-    activity_count = len(activities)
+                             max_results=max_results).execute()
+    activity_count = len(activities['items'])
     self.assertEquals(max_results, activity_count)
 
-    activities = actcol.list_next(activities)
-    self.assertEquals(activities, None) # Public streams don't have next links
+    activities = actcol.list_next(activities).execute()
+    activity_count = len(activities['items'])
+    self.assertEquals(max_results, activity_count)
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/runtests.py b/runtests.py
index d36dd93..d12b2c5 100644
--- a/runtests.py
+++ b/runtests.py
@@ -31,8 +31,9 @@
 def build_suite(folder):
   # find all of the test modules
   modules = map(fullmodname, glob.glob(os.path.join(folder, 'test_*.py')))
-  print "Running the tests found in the following modules:"
-  print modules
+  if verbosity > 0:
+    print "Running the tests found in the following modules:"
+    print modules
 
   # load all of the tests into a suite
   try:
@@ -43,10 +44,12 @@
           __import__(module)
       raise
 
+# build and run unit test suite
 unit_tests = build_suite('tests')
-functional_tests = build_suite('functional_tests')
-
-# run test suites
 unittest.TextTestRunner(verbosity=verbosity).run(unit_tests)
+cleanup()
+
+# build and run functional test suite
+functional_tests = build_suite('functional_tests')
 unittest.TextTestRunner(verbosity=verbosity).run(functional_tests)
 cleanup()
diff --git a/samples/appengine/main.py b/samples/appengine/main.py
index 2116562..9f63d50 100755
--- a/samples/appengine/main.py
+++ b/samples/appengine/main.py
@@ -26,7 +26,6 @@
 from apiclient.ext.appengine import FlowThreeLeggedProperty
 from apiclient.ext.appengine import OAuthCredentialsProperty
 from apiclient.oauth import FlowThreeLegged
-from apiclient.oauth import buzz_discovery
 from google.appengine.api import users
 from google.appengine.ext import db
 from google.appengine.ext import webapp
@@ -69,7 +68,8 @@
                      'logout': logout
                      }))
     else:
-      flow = FlowThreeLegged(buzz_discovery,
+      p = build("buzz", "v1")
+      flow = FlowThreeLegged(p.auth_discovery(),
                      consumer_key='anonymous',
                      consumer_secret='anonymous',
                      user_agent='google-api-client-python-buzz-webapp/1.0',
