text: import json
  
  from django.core.urlresolvers import reverse
  from seaserv import ccnet_api
  
  from seahub.test_utils import BaseTestCase
  from tests.common.utils import randstring
  
  try:
      from seahub.settings import LOCAL_PRO_DEV_ENV
  except ImportError:
      LOCAL_PRO_DEV_ENV = False
  
  
  class GroupsTest(BaseTestCase):
  
      def setUp(self):
          self.user_name = self.user.username
          self.admin_name = self.admin.username
  
          self.login_as(self.admin)
          self.url = reverse('api-v2.1-admin-address-book-groups')
  
      def test_can_list_top_groups(self):
          if not LOCAL_PRO_DEV_ENV:
              return
          
          top_group_id = ccnet_api.create_group('top group xxx', self.user.username,
                                                parent_group_id=-1)
  
          resp = self.client.get(self.url)
          self.assertEqual(200, resp.status_code)
  
          json_resp = json.loads(resp.content)
          assert len(json_resp['data']) >= 1
  
          self.remove_group(top_group_id)
  
      def test_can_create_top_group(self):
          if not LOCAL_PRO_DEV_ENV:
              return
  
          resp = self.client.post(self.url, {
              'group_name': randstring(10),
              'parent_group': -1,
              'group_owner': self.user.username
          })
          self.assertEqual(200, resp.status_code)
  
          json_resp = json.loads(resp.content)
          assert len(json_resp['name']) == 10
          assert json_resp['parent_group_id'] == -1
  
          self.remove_group(json_resp['id'])
  
      def test_can_create_child_group(self):
          if not LOCAL_PRO_DEV_ENV:
              return
  
          top_group_id = ccnet_api.create_group('top group xxx', self.user.username,
                                                parent_group_id=-1)
  
          resp = self.client.post(self.url, {
              'group_name': randstring(10),
              'parent_group': top_group_id,
              'group_owner': self.user.username
          })
          self.assertEqual(200, resp.status_code)
  
          json_resp = json.loads(resp.content)
          assert len(json_resp['name']) == 10
          assert json_resp['parent_group_id'] == top_group_id
  
          self.remove_group(json_resp['id'])
          self.remove_group(top_group_id)
  