Exemplo n.º 1
0
    def test_alter_admin(self, mock_sms_token):
        mock_sms_token.side_effect = [
            {
                'mobile': 'mobile_1'
            },
            {
                'mobile': 'mobile_2'
            },
        ]
        old_admin = User.create_user('old_admin', 'old_admin')
        old_admin.is_boss = True
        old_admin.mobile = 'mobile_1'
        old_admin.save()

        new_admin = User.create_user('new_admin', '')
        new_admin.mobile = 'mobile_2'
        new_admin.save()

        res = self.client.json_patch(reverse('siteapi:alter_admin'),
                                     data={
                                         'old_admin_sms_token': 'test',
                                         'new_admin_sms_token': 'test'
                                     })
        self.assertEqual(res.status_code, 200)

        old_admin = User.objects.get(username='******')
        new_admin = User.objects.get(username='******')
        self.assertFalse(old_admin.is_boss)
        self.assertTrue(new_admin.is_boss)
Exemplo n.º 2
0
    def setUp(self):
        super().setUp()

        root = Dept.valid_objects.get(uid='root')
        level_1 = Dept.valid_objects.create(uid='level_1',
                                            name='level_1',
                                            parent=root)
        Dept.valid_objects.create(uid='level_2-1',
                                  name='level_2-1',
                                  parent=level_1,
                                  order_no=2)
        Dept.valid_objects.create(uid='level_2-2',
                                  name='level_2-2',
                                  parent=level_1,
                                  order_no=1)
        user = User.create_user('employee', 'employee')
        DeptMember.valid_objects.create(user=user, owner=root)
        user = User.create_user('employee_2', 'employee_2')

        root = Group.valid_objects.get(uid='root')
        role_group = Group.valid_objects.create(uid='role_group_1',
                                                name='role_group_1',
                                                parent=root,
                                                accept_user=False)
        role_1 = Group.valid_objects.create(uid='role_1',
                                            name='role_1',
                                            parent=role_group,
                                            order_no=2)
        Group.valid_objects.create(uid='role_2',
                                   name='role_2',
                                   parent=role_group,
                                   order_no=1)
        GroupMember.valid_objects.create(user=user, owner=role_1)
Exemplo n.º 3
0
    def test_update_group_child_user(self):
        url = reverse('siteapi:group_child_user', args=('role_1', ))
        res = self.client.json_patch(url, data={
            'subject': 'delete',
            'user_uids': ['employee'],
        })
        expect = {'users': []}
        self.assertEqual(res.json(), expect)

        res = self.client.json_patch(url, data={
            'subject': 'add',
            'user_uids': ['employee_2', 'employee'],
        })
        expect = ['employee_2', 'employee']
        self.assertEqual([user['username'] for user in res.json()['users']], expect)

        res = self.client.json_patch(url, data={
            'subject': 'sort',
            'user_uids': ['employee', 'employee_2'],
        })

        expect = ['employee', 'employee_2']
        self.assertEqual([user['username'] for user in res.json()['users']], expect)

        User.create_user('employee_3', 'employee_3')
        res = self.client.json_patch(url,
                                     data={
                                         'subject': 'override',
                                         'user_uids': ['employee_3', 'employee_2', 'employee'],
                                     })

        expect = ['employee_3', 'employee_2', 'employee']
        self.assertEqual([user['username'] for user in res.json()['users']], expect)
Exemplo n.º 4
0
 def test_valid_username_unique(self):
     user = User.create_user('user', 'user')
     with self.assertRaises(ValidationError):
         User.create_user('user', 'user')
     user.name = 'name'
     user.save()
     user.delete()
     User.create_user('user', 'user')
Exemplo n.º 5
0
 def setUp(self):
     super(DeptTestCase, self).setUp()
     root = Dept.valid_objects.get(uid='root')
     level_1 = Dept.valid_objects.create(uid='level_1', name='level_1', parent=root)
     Dept.valid_objects.create(uid='level_2-1', name='level_2-1', parent=level_1, order_no=2)
     Dept.valid_objects.create(uid='level_2-2', name='level_2-2', parent=level_1, order_no=1)
     user = User.create_user('employee', 'employee')
     DeptMember.valid_objects.create(user=user, owner=root)
     user = User.create_user('employee_2', 'employee_2')
Exemplo n.º 6
0
    def setUp(self):
        super(GroupTestCase, self).setUp()
        root = Group.valid_objects.get(uid='root')
        self.root = root
        role_group = Group.valid_objects.create(uid='role_group_1', name='role_group_1', parent=root, accept_user=False)
        role_1 = Group.valid_objects.create(uid='role_1', name='role_1', parent=role_group, order_no=2)
        Group.valid_objects.create(uid='role_2', name='role_2', parent=role_group, order_no=1)

        user = User.create_user('employee', 'employee')
        GroupMember.valid_objects.create(user=user, owner=role_1)
        user = User.create_user('employee_2', 'employee_2')
Exemplo n.º 7
0
    def setUp(self):
        super().setUp()
        employee = User.create_user('employee', 'employee')
        self.employee = self.login_as(employee)
        self._employee = employee

        manager = User.create_user('manager', 'manager')
        self.manager = self.login_as(manager)
        self._manager = manager
        group = Group.objects.create(name='test')
        ManagerGroup.objects.create(group=group, scope_subject=2, apps=['app', 'demo'])
        GroupMember.objects.create(owner=group, user=User.objects.get(username='******'))
Exemplo n.º 8
0
 def test_group_user_search(self):
     role_group = Group.valid_objects.create(uid='group_3',
                                             name='group_3',
                                             parent=self.root,
                                             accept_user=False)
     role_3 = Group.valid_objects.create(uid='role_3',
                                         name='role_3',
                                         parent=role_group,
                                         order_no=3)
     user = User.create_user('zhangsan', 'zhangsan')
     user.name = '张三'
     user.email = '*****@*****.**'
     user.mobile = '13412341233'
     user.created = '2019-01-01T00:00:00+08:00'
     user.last_active_time = '2019-02-01T00:00:00+08:00'
     user.save()
     GroupMember.valid_objects.create(user=user, owner=role_3)
     user2 = User.create_user('zhangsi', 'zhangsi')
     user2.name = '张四'
     user2.email = '*****@*****.**'
     user2.mobile = '13412341234'
     user2.created = '2019-03-01T00:00:00+08:00'
     user2.last_active_time = '2019-04-01T00:00:00+08:00'
     user2.save()
     GroupMember.valid_objects.create(user=user2, owner=role_3)
     user3 = User.create_user('lisan', 'lisan')
     user3.name = '李三'
     user3.email = '*****@*****.**'
     user3.mobile = '13412341235'
     user3.created = '2019-05-01T00:00:00+08:00'
     user3.last_active_time = '2019-06-01T00:00:00+08:00'
     user3.save()
     GroupMember.valid_objects.create(user=user3, owner=role_3)
     user4 = User.create_user('lisi', 'lisi')
     user4.name = '李四'
     user4.email = '*****@*****.**'
     user4.mobile = '13412341236'
     user4.created = '2019-07-01T00:00:00+08:00'
     user4.last_active_time = '2019-08-01T00:00:00+08:00'
     user4.save()
     GroupMember.valid_objects.create(user=user4, owner=role_3)
     test_list = [{'email':'12341234'}, {'name':'张'}, {'username':'******'}, {'mobile':'12341234'}, \
         {'before_created':'2019-06-01T00:00:00+08:00'}, {'after_created':'2019-06-01T00:00:00+08:00'}, \
             {'before_last_active_time':'2019-03-01T00:00:00+08:00'}, \
                 {'after_last_active_time':'2019-03-01T00:00:00+08:00'}]
     result_list = []
     for test in test_list:
         res = self.client.get(reverse('siteapi:node_child_user',
                                       args=('g_role_3', )),
                               data=test)
         result_list.append(res.json()['count'])
     expect = [1, 2, 2, 1, 3, 1, 1, 3]
     self.assertEqual(result_list, expect)
Exemplo n.º 9
0
    def test_send_sms_to_update_mobile(self, mock_redis_set, mock_redis_get, mock_redis_delete, mock_send_sms,
                                       mock_gen_code):
        mock_redis_get.return_value = SMS_CODE
        mock_redis_set.return_value = True
        mock_redis_delete.return_value = None

        mock_send_sms.return_value = True

        mock_gen_code.return_value = SMS_CODE

        url = reverse('infra:sms', args=('update_mobile', ))

        res = self.anonymous.json_post(reverse('infra:sms', args=('update_mobile', )), data={'mobile': MOBILE})
        self.assertEqual(res.status_code, 401)

        user = User.create_user(username='******', password='******')
        self.client = self.login_as(user)
        new_mobile = '18810041004'
        res = self.client.json_post(url, data={'mobile': MOBILE, 'password': '******'})
        expect = {'mobile': ['existed']}
        self.assertEqual(expect, res.json())
        self.assertEqual(res.status_code, 400)

        res = self.client.json_post(url, data={'mobile': new_mobile, 'password': '******'})
        expect = {'password': ['invalid']}
        self.assertEqual(expect, res.json())
        self.assertEqual(res.status_code, 400)

        self.client = self.login_as(user)
        res = self.client.json_post(url, data={'mobile': new_mobile, 'password': '******'})
        self.assertEqual(res.status_code, 201)

        res = self.client.get(url, data={'mobile': new_mobile, 'code': SMS_CODE})
        self.assertIn('sms_token', res.json())
        self.assertEqual(res.status_code, 200)
Exemplo n.º 10
0
    def test_ucenter_sub_account(self):
        res = self.create_sub_account_perm()
        perm = Perm.objects.get(uid=res.json()['uid'])
        employee = User.create_user(username='******', password='******')
        client = self.login_as(employee)
        res = client.get(reverse('siteapi:ucenter_sub_account_list'))
        self.assertEqual(res.json()['count'], 0)
        res = client.get(reverse('siteapi:ucenter_app_list'))
        self.assertEqual(res.json()['count'], 0)

        UserPerm.objects.create(owner=employee, perm=perm).permit()
        res = client.get(reverse('siteapi:ucenter_sub_account_list'))
        self.assertEqual(res.json()['count'], 1)
        sub_account_test = res.json()['results'][0]
        sub_account_test.pop('uuid')
        sub_account_except = {
            'domain': 'www.longguikeji.com',
            'username': '******',
            'password': '******'
        }
        self.assertEqual(sub_account_except, sub_account_test)

        res = client.get(reverse('siteapi:ucenter_app_list'))
        self.assertEqual(res.json()['count'], 1)
        app_test = [item['uid'] for item in res.json()['results']]
        app_expect = ['lg']
        self.assertEqual(app_expect, app_test)

        res = client.get(reverse('siteapi:ucenter_sub_account_list'),
                         data={'domain': 'www.longguikeji.com'})
        self.assertEqual(res.json()['count'], 1)

        res = client.get(reverse('siteapi:ucenter_sub_account_list'),
                         data={'domain': 'arkid.longguikeji.com'})
        self.assertEqual(res.json()['count'], 0)
Exemplo n.º 11
0
    def setUp(self):
        super(DeptPermTestCase, self).setUp()
        root = Dept.valid_objects.get(uid='root')
        level_1 = Dept.valid_objects.create(uid='l1', name='l1', parent=root)
        Dept.valid_objects.create(uid='l11', name='l11', parent=level_1, order_no=2)
        Dept.valid_objects.create(uid='l12', name='l12', parent=level_1, order_no=1)
        user = User.create_user('employee', 'employee')
        DeptMember.valid_objects.create(user=user, owner=root)
        user = User.create_user('employee_2', 'employee_2')

        token = self.client.post(reverse('siteapi:user_login'), data={
            'username': '******',
            'password': '******'
        }).json()['token']
        self.employee = APIClient()
        self.employee.credentials(HTTP_AUTHORIZATION='Token ' + token)
Exemplo n.º 12
0
    def test_dept_union_unique(self):
        user = User.create_user('user', 'user')
        dept = Dept.valid_objects.create(uid='dept')

        DeptMember.valid_objects.create(owner=dept, user=user)

        with self.assertRaises(db.utils.IntegrityError):
            DeptMember.valid_objects.create(owner=dept, user=user)
Exemplo n.º 13
0
    def test_group_union_unique(self):
        user = User.create_user('user', 'user')
        group = Group.valid_objects.create(uid='group')

        GroupMember.valid_objects.create(owner=group, user=user)

        with self.assertRaises(db.utils.IntegrityError):
            GroupMember.valid_objects.create(owner=group, user=user)
Exemplo n.º 14
0
    def test_ding_login(self, mock_auth_code):
        mock_auth_code.return_value = "ding_uid"
        client = APIClient()
        res = client.post(reverse('siteapi:ding_login'), data={'code': 'ding_code'})
        expect = {'code': ["this account hasn't registered"]}
        self.assertEqual(res.json(), expect)
        self.assertEqual(res.status_code, 400)

        user = User.create_user(username='******', password='')
        DingUser.valid_objects.create(user=user, uid='ding_uid')
        res = client.post(reverse('siteapi:ding_login'), data={'code': 'ding_code'})
        self.assertEqual(res.status_code, 200)
        self.assertIn('token', res.json())
Exemplo n.º 15
0
    def test_update_self_mobile(self, mock_check_sms_token):
        mock_check_sms_token.side_effect = [
            {
                'mobile': 'mobile_1'
            },
            {
                'mobile': 'mobile_2'
            },
            {
                'mobile': 'mobile_1'
            },
            {
                'mobile': 'mobile_3'
            },
        ]

        employee_1 = User.create_user('employee_1', 'employee_1')
        employee_1.mobile = 'mobile_1'
        employee_1.save()
        client_1 = self.login('employee_1', 'employee_1')

        employee_2 = User.create_user('employee_2', 'employee_2')
        employee_2.mobile = 'mobile_2'
        employee_2.save()

        res = client_1.json_patch(reverse('siteapi:ucenter_mobile'),
                                  data={
                                      'old_mobile_sms_token': 'any',
                                      'new_mobile_sms_token': 'any'
                                  })
        self.assertEqual(res.json(), {'new_mobile': ['has been used']})

        res = client_1.json_patch(reverse('siteapi:ucenter_mobile'),
                                  data={
                                      'old_mobile_sms_token': 'any',
                                      'new_mobile_sms_token': 'any'
                                  })
        expect = {'new_mobile': 'mobile_3'}
        self.assertEqual(res.json(), expect)
Exemplo n.º 16
0
    def test_email_link(self, mock_hgetall):
        '''
        更新邮箱测试
        '''
        mock_hgetall.return_value = {"email": "*****@*****.**", "username": "******", "name": ""}
        user = User.create_user(username='******', password='******')
        user.mobile = '18812341234'
        user.email = '*****@*****.**'
        user.save()

        client = self.login_as(user)

        url = reverse('infra:email', args=('update_email', ))
        update_email_response = client.get(url, data={'email_token': 'test_email_token'})
        self.assertEqual(update_email_response.status_code, 200)
Exemplo n.º 17
0
def get_users_from_uids(user_uids):
    '''
    根据user uid按顺序返回user list
    :param list user_uids:
    '''
    try:
        users = User.get_from_pks(pks=user_uids,
                                  pk_name='username',
                                  raise_exception=True,
                                  is_del=False)
    except ObjectDoesNotExist as error:
        bad_uid = error.args[0]
        raise ValidationError(
            {'user_uids': ['user:{} does not exist'.format(bad_uid)]})
    return users
Exemplo n.º 18
0
 def get_object(self):
     '''
     filter the boss
     '''
     admins = User.valid_objects.filter(is_boss=True)
     if admins.count() > 1:
         raise AssertionError(
             "there more than one super manager: {}".format(
                 admin.username for admin in admins))
     if admins.count() == 0:
         admin = User.create_user('manager', 'manager')
         admin.is_boss = True
         admin.name = "请尽快修改密码或更改主管理员"
         admin.save()
     else:
         admin = admins.first()
     return admin
Exemplo n.º 19
0
    def test_login(self, mock_check_sms_token):
        mock_check_sms_token.side_effect = [{'mobile': '18812341234'}]

        user = User.create_user(username='******', password='******')
        user.mobile = '18812341234'
        user.private_email = '*****@*****.**'
        user.save()
        client = APIClient()

        res = client.get(reverse('siteapi:user_self_perm'))
        self.assertEqual(res.status_code, 401)

        res = client.post(reverse('siteapi:user_login'), data={'username': '******', 'password': '******'})
        self.assertEqual(res.status_code, 200)
        res = client.post(reverse('siteapi:user_login'), data={'private_email': '*****@*****.**', 'password': '******'})
        self.assertEqual(res.status_code, 200)
        res = client.post(reverse('siteapi:user_login'), data={'mobile': '18812341234', 'sms_token': 'mock'})
        self.assertEqual(res.status_code, 200)

        user = User.objects.get(username='******')
        self.assertIsNotNone(user.last_active_time)
        self.assertTrue(user.is_settled)

        client.credentials(HTTP_AUTHORIZATION='Token ' + res.json()['token'])
        res = client.get(reverse('siteapi:user_self_perm'))
        self.assertEqual(res.status_code, 200)

        res = client.post(reverse('siteapi:user_login'), data={'username': '******', 'password': '******'})
        self.assertEqual(res.json()['perms'], ['system_oneid_all', 'system_ark-meta-server_all'])

        # test login failed because of account_config
        email_config = EmailConfig.get_current()
        email_config.is_valid = False
        email_config.save()
        res = client.post(reverse('siteapi:user_login'), data={'private_email': '*****@*****.**', 'password': '******'})
        self.assertEqual(res.status_code, 400)

        mobile_config = SMSConfig.get_current()
        mobile_config.is_valid = False
        mobile_config.save()
        res = client.post(reverse('siteapi:user_login'), data={'mobile': '18812341234', 'sms_token': 'mock'})
        self.assertEqual(res.status_code, 400)
Exemplo n.º 20
0
    def refresh_visibility_scope(self):
        '''
        更新可见范围
        '''

        old_node_scope = set(self.node_scope)
        old_user_scope = set(self.user_scope)

        valid_node_scope = set(node.node_uid for node in self.retrieve_nodes(old_node_scope))    # pylint: disable=no-member

        from oneid_meta.models import User    # pylint: disable=import-outside-toplevel
        valid_user_scope = set(user.username for user in User.get_from_pks(old_user_scope, pk_name='username'))

        if valid_node_scope != old_node_scope:
            self.node_scope = list(valid_node_scope)
            self.save(update_fields=['node_scope'])

        if valid_user_scope != old_user_scope:
            self.user_scope = list(valid_user_scope)
            self.save(update_fields=['user_scope'])
Exemplo n.º 21
0
    def setUp(self):
        self.rdb_executer = RDBExecuter()

        self.user = User.create_user('user', 'user')

        self.root = Dept.valid_objects.get(uid='root')
        self.dept_1 = Dept.valid_objects.create(uid='1', parent=self.root)
        self.dept_1_1 = Dept.valid_objects.create(uid='1_1',
                                                  parent=self.dept_1)
        self.dept_1_2 = Dept.valid_objects.create(uid='1_2',
                                                  parent=self.dept_1)
        self.dept_1_1_1 = Dept.valid_objects.create(uid='1_1_1',
                                                    parent=self.dept_1_1)
        self.dept_1_1_2 = Dept.valid_objects.create(uid='1_1_2',
                                                    parent=self.dept_1_1)
        self.dept_1_1_3 = Dept.valid_objects.create(uid='1_1_3',
                                                    parent=self.dept_1_1)
        self.dept_2 = Dept.valid_objects.create(uid='2', parent=self.root)
        self.dept_2_1 = Dept.valid_objects.create(uid='2_1',
                                                  parent=self.dept_2)
        self.dept_2_2 = Dept.valid_objects.create(uid='2_2',
                                                  parent=self.dept_2)

        self.front_walker_depts = [
            self.root,
            self.dept_1,
            self.dept_1_1,
            self.dept_1_1_1,
            self.dept_1_1_2,
            self.dept_1_1_3,
            self.dept_1_2,
            self.dept_2,
            self.dept_2_1,
            self.dept_2_2,
        ]

        self.perm = Perm.valid_objects.create(uid='perm')
        for dept in self.front_walker_depts:
            DeptPerm.valid_objects.create(owner=dept, perm=self.perm)
Exemplo n.º 22
0
    def test_update_dept_child_user(self):
        url = reverse('siteapi:dept_child_user', args=('root', ))
        res = self.client.json_patch(url, data={
            'subject': 'delete',
            'user_uids': ['employee'],
        })
        expect = {'users': []}
        self.assertEqual(res.json(), expect)

        res = self.client.json_patch(url, data={
            'subject': 'add',
            'user_uids': ['employee_2', 'employee'],
        })
        expect = ['employee_2', 'employee']
        self.assertEqual([user['username'] for user in res.json()['users']], expect)

        res = self.client.json_patch(url, data={
            'subject': 'sort',
            'user_uids': ['employee', 'employee_2'],
        })
        expect = ['employee', 'employee_2']
        self.assertEqual([user['username'] for user in res.json()['users']], expect)

        User.create_user('employee_3', 'employee_3')
        res = self.client.json_patch(url,
                                     data={
                                         'subject': 'override',
                                         'user_uids': ['employee_3', 'employee_2', 'employee'],
                                     })
        expect = ['employee_3', 'employee_2', 'employee']
        self.assertEqual([user['username'] for user in res.json()['users']], expect)

        # test batch move out
        Dept.objects.create(uid='another', name='another')
        self.client.json_patch(url,
                               data={
                                   'subject': 'move_out',
                                   'user_uids': ['employee_3', 'employee_2'],
                                   'dept_uids': ['another']
                               })

        res = self.client.get(url)
        expect = set(['employee'])
        self.assertEqual(
            set([user['username'] for user in res.json()['results']]),    # pylint:disable=consider-using-set-comprehension
            expect,
        )

        res = self.client.get(reverse('siteapi:dept_child_user', args=('another', )))
        expect = set(['employee_3', 'employee_2'])
        self.assertEqual(expect, set([user['username'] for user in res.json()['results']]))    # pylint:disable=consider-using-set-comprehension

        # test batch move inpalce
        res = self.client.json_patch(reverse('siteapi:dept_child_user', args=('another', )),
                                     data={
                                         'subject': 'move_out',
                                         'user_uids': ['employee_3', 'employee_2'],
                                         'dept_uids': ['another'],
                                     })
        res = self.client.get(reverse('siteapi:dept_child_user', args=('another', )))
        expect = set(['employee_3', 'employee_2'])
        self.assertEqual(expect, set([user['username'] for user in res.json()['results']]))    # pylint:disable=consider-using-set-comprehension
Exemplo n.º 23
0
    def test_send_email(self, mock_send_email, mock_redis):
        mock_send_email.delay.return_value = None
        mock_Redis = mock.Mock()  # pylint: disable=invalid-name
        mock_Redis.get.return_value = EMAIL.encode()
        mock_Redis.set.return_value = True
        mock_redis.Redis.return_value = mock_Redis

        res = self.anonymous.json_post(reverse('infra:email',
                                               args=('register', )),
                                       data={'email': EMAIL})
        self.assertEqual(res.status_code, 201)

        res = self.anonymous.get(reverse('infra:email', args=('register', )),
                                 data={'email_token': EMAIL_TOKEN})
        expect = {'email': EMAIL}
        self.assertEqual(expect, res.json())

        new_user = User.objects.create(username='******', private_email=EMAIL)
        res = self.anonymous.json_post(reverse('infra:email',
                                               args=('reset_password', )),
                                       data={'email': EMAIL})
        self.assertEqual(res.status_code, 201)

        expect = {'email': EMAIL, 'username': '******', 'name': ''}
        res = self.anonymous.get(reverse('infra:email',
                                         args=('reset_password', )),
                                 data={'email_token': EMAIL_TOKEN})
        self.assertEqual(expect, res.json())

        inviter = User.objects.create(username='******')
        invitee = new_user
        invitation = Invitation.objects.create(inviter=inviter,
                                               invitee=invitee)
        res = self.anonymous.json_post(reverse('infra:email',
                                               args=('activate_user', )),
                                       data={'key': invitation.key})
        self.assertEqual(res.status_code, 201)

        mock_Redis.hgetall.return_value = {
            b'email': EMAIL.encode(),
            b'key': invitation.key.encode()
        }
        mock_redis.Redis.return_value = mock_Redis
        res = self.anonymous.get(reverse('infra:email',
                                         args=('activate_user', )),
                                 data={
                                     'email_token': EMAIL_TOKEN
                                 }).json()
        self.assertIn('key', res)
        res.pop('key')
        expect = {'email': EMAIL, 'name': '', 'username': '******'}
        self.assertEqual(expect, res)

        # update_email
        url = reverse('infra:email', args=('update_email', ))
        res = self.anonymous.json_post(url, data={'email': EMAIL})
        self.assertEqual(res.status_code, 401)
        user_a = User.create_user(username='******', password='******')

        self.employee = self.login_as(user_a)
        res = self.employee.json_post(url,
                                      data={
                                          'email': EMAIL,
                                          'password': '******'
                                      })
        self.assertEqual(res.status_code, 400)
        expect = {'email': ['existed']}
        self.assertEqual(res.json(), expect)

        res = self.employee.json_post(url,
                                      data={
                                          'email': '18812341234',
                                          'password': '******'
                                      })
        self.assertEqual(res.status_code, 400)
        expect = {'password': ['invalid']}
        self.assertEqual(expect, res.json())

        res = self.employee.json_post(url,
                                      data={
                                          'email': '18812341234',
                                          'password': '******'
                                      })
        self.assertEqual(res.status_code, 201)

        mock_Redis.hgetall.return_value = {
            b'email': b'18812341234',
            b'username': b'a'
        }
        mock_redis.Redis.return_value = mock_Redis
        res = self.employee.get(url, data={'email_token': EMAIL_TOKEN})
        expect = {'email': '18812341234', 'username': '******', 'name': ''}
        self.assertEqual(expect, res.json())