Added tests for getting a specific activity;  creating a public activity; fetching specific groups for a user; commenting on an activity
diff --git a/functional_tests/test_services.py b/functional_tests/test_services.py
index e933094..99efe35 100644
--- a/functional_tests/test_services.py
+++ b/functional_tests/test_services.py
@@ -10,6 +10,7 @@
 only work with publicly visible data in order to avoid dealing with OAuth.
 """
 import httplib2
+import pprint
 
 __author__ = 'ade@google.com (Ade Oshineye)'
 
@@ -34,29 +35,43 @@
     return httplib2.Response(self.headers), self.data
 
 class BuzzFunctionalTest(unittest.TestCase):
+  def test_can_get_specific_activity(self):
+    buzz = build('buzz', 'v1')
+    activity = buzz.activities().get(userId='105037104815911535953',
+                                     postId='B:z12sspviqyakfvye123wehng0muwz5jzq04').execute()
+
+    self.assertTrue(activity is not None)
+
+  def test_can_get_specific_activity_with_tag_id(self):
+    buzz = build('buzz', 'v1')
+    activity = buzz.activities().get(userId='105037104815911535953',
+                                     postId='tag:google.com,2010:buzz:z13ptnw5usmnv15ey22fzlswnuqoebasu').execute()
+
+    self.assertTrue(activity is not None)
+
   def test_can_get_buzz_activities_with_many_params(self):
     buzz = build('buzz', 'v1')
     max_results = 2
-    actcol = buzz.activities()
-    activities = actcol.list(userId='googlebuzz', scope='@self',
+    activities_command = buzz.activities()
+    activities = activities_command.list(userId='googlebuzz', scope='@self',
                              max_comments=max_results*2 ,max_liked=max_results*3,
                              max_results=max_results).execute()
     activity_count = len(activities['items'])
     self.assertEquals(max_results, activity_count)
 
-    activities = actcol.list_next(activities).execute()
+    activities = activities_command.list_next(activities).execute()
     activity_count = len(activities['items'])
     self.assertEquals(max_results, activity_count)
 
   def test_can_get_multiple_pages_of_buzz_activities(self):
     buzz = build('buzz', 'v1')
     max_results = 2
-    actcol = buzz.activities()
+    activities_command = buzz.activities()
     
-    activities = actcol.list(userId='adewale', scope='@self',
+    activities = activities_command.list(userId='adewale', scope='@self',
                              max_results=max_results).execute()
     for count in range(10):
-      activities = actcol.list_next(activities).execute()
+      activities = activities_command.list_next(activities).execute()
       activity_count = len(activities['items'])
       self.assertEquals(max_results, activity_count, 'Failed after %s pages' % str(count))
 
@@ -122,7 +137,19 @@
 
     self.http = credentials.authorize(httplib2.Http())
 
-  def test_can_list_groups_belonging_to_user(self):
+  def test_can_create_activity(self):
+    buzz = build('buzz', 'v1', http=self.http)
+
+    activity = buzz.activities().insert(userId='@me', body={
+      'title': 'Testing insert',
+      'object': {
+        'content': u'Just a short note to show that insert is working. ?',
+        'type': 'note'}
+      }
+    ).execute()
+    self.assertTrue(activity is not None)
+
+  def test_can_identify_number_of_groups_belonging_to_user(self):
     buzz = build('buzz', 'v1', http=self.http)
     groups = buzz.groups().list(userId='108242092577082601423').execute()
 
@@ -130,6 +157,57 @@
     expected_default_number_of_groups = 4
     self.assertEquals(expected_default_number_of_groups, len(groups['items']))
 
+  def IGNORE__test_can_like_activity(self):
+    buzz = build('buzz', 'v1', http=self.http)
+    activity = buzz.activities().insert(userId='@me', body={
+      'title': 'Testing insert',
+      'object': {
+        'content': u'Just a short note to show that insert is working. ?',
+        'type': 'note'}
+      }
+    ).execute()
+    pprint.pprint(activity)
+    id = activity['id']
+    likers = buzz.people().liked(userId='105037104815911535953', postId=id, groupId='@liked', scope='@self').execute()
+    # Todo(ade) Insert the new liker once the Buzz back-end bug is fixed
+
+  def test_can_comment_on_activity(self):
+    buzz = build('buzz', 'v1', http=self.http)
+
+    activity = buzz.activities().insert(userId='@me', body={
+      'title': 'A new activity',
+      'object': {
+        'content': u'The body of the new activity',
+        'type': 'note'}
+      }
+    ).execute()
+
+    id = activity['id']
+    comment = buzz.comments().insert(userId='@me', postId=id, body={
+      "content": "A comment on the new activity"
+    }).execute()
+
+  def IGNORE__test_can_list_groups_belonging_to_user(self):
+    # TODO(ade) Uncomment this test once the related Buzz back-end bug is fixed
+    buzz = build('buzz', 'v1', http=self.http)
+    groups = buzz.groups().list(userId='108242092577082601423').execute()
+    pprint.pprint(groups)
+
+    group = buzz.groups().get(userId='108242092577082601423', groupId='G:108242092577082601423:15').execute()
+    self.assertEquals('G:108242092577082601423:15', group['id'], group)
+
+    group = buzz.groups().get(userId='108242092577082601423', groupId='G:108242092577082601423:14').execute()
+    self.assertEquals('G:108242092577082601423:14', group['id'], group)
+
+    group = buzz.groups().get(userId='108242092577082601423', groupId='G:108242092577082601423:13').execute()
+    self.assertEquals('G:108242092577082601423:13', group['id'], group)
+
+    group = buzz.groups().get(userId='108242092577082601423', groupId='G:108242092577082601423:6').execute()
+    self.assertEquals('G:108242092577082601423:6', group['id'], group)
+
+    group = buzz.groups().get(userId='108242092577082601423', groupId='G:108242092577082601423:9999999').execute()
+    self.assertEquals(None, group, group)
+
 
 if __name__ == '__main__':
   unittest.main()