示例#1
0
    def test_update_password(self):
        user = UserProfileFactory()
        user.set_password('Password123!')
        user.save()

        user.update_password()
        self.assertTrue(user.check_password('Password123!'))

        self.assertEqual(
            user.update_password(password='******'),
            dict(errors=[
                'This password is too common.',
                'This password is not alphanumeric.'
            ]))
        self.assertEqual(
            user.update_password(password='******'),
            dict(errors=[
                'This password is too short. It must contain at least 8 characters.',
                'This password is not alphanumeric.'
            ]))

        user.verification_token = 'some-token'
        user.save()
        user.update_password(password='******')
        self.assertIsNone(user.verification_token)
        self.assertFalse(user.check_password('Password123!'))
        self.assertTrue(user.check_password('Newpassw0rd'))

        user.update_password(hashed_password='******')
        self.assertFalse(user.check_password('password'))
        self.assertEqual(user.password, 'hashedpassword')
示例#2
0
    def test_login(self):
        response = self.client.post('/users/login/', {})

        self.assertEqual(response.status_code, 400)
        self.assertEqual(
            response.data,
            dict(username=['This field is required.'],
                 password=['This field is required.']))

        response = self.client.post('/users/login/',
                                    dict(username='******', password='******'))

        self.assertEqual(response.status_code, 400)
        self.assertEqual(
            response.data,
            dict(non_field_errors=[
                "Unable to log in with provided credentials."
            ]))

        user = UserProfileFactory()
        user.set_password('password')
        user.save()
        self.assertIsNone(user.last_login)

        response = self.client.post(
            '/users/login/', dict(username=user.username, password='******'))

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, dict(token=ANY))
        user.refresh_from_db()
        self.assertIsNotNone(user.last_login)
示例#3
0
文件: tests.py 项目: ibacher/oclapi2
    def test_update_password(self):
        user = UserProfileFactory()
        user.set_password('password')
        user.save()

        user.update_password()
        self.assertTrue(user.check_password('password'))

        user.update_password(password='******')
        self.assertFalse(user.check_password('password'))
        self.assertTrue(user.check_password('newpassword'))

        user.update_password(hashed_password='******')
        self.assertFalse(user.check_password('password'))
        self.assertEqual(user.password, 'hashedpassword')
示例#4
0
    def test_login(self):
        user = UserProfileFactory(username='******')
        user.set_password('boogeyman')
        user.save()

        response = self.client.post('/users/login/',
                                    dict(username='******',
                                         password='******'),
                                    format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, dict(token=user.get_token()))

        response = self.client.post('/users/login/',
                                    dict(username='******', password='******'),
                                    format='json')

        self.assertEqual(response.status_code, 400)
        self.assertEqual(
            response.data,
            dict(non_field_errors=[
                "Unable to log in with provided credentials."
            ]))
示例#5
0
class UserDetailViewTest(OCLAPITestCase):
    def setUp(self):
        super().setUp()
        self.user = UserProfileFactory()
        self.token = self.user.get_token()
        self.superuser = UserProfile.objects.get(username='******')

    def test_get_200(self):
        response = self.client.get('/users/{}/'.format(self.user.username),
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['username'], self.user.username)
        self.assertEqual(response.data['name'], self.user.name)
        self.assertEqual(response.data['url'], self.user.uri)

    def test_get_200_with_subscribed_orgs(self):
        response = self.client.get(
            '/users/{}/?includeSubscribedOrgs=false'.format(
                self.user.username),
            HTTP_AUTHORIZATION='Token ' + self.token,
            format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['username'], self.user.username)
        self.assertEqual(response.data['name'], self.user.name)
        self.assertEqual(response.data['url'], self.user.uri)
        self.assertFalse('subscribed_orgs' in response.data)

        response = self.client.get(
            '/users/{}/?includeSubscribedOrgs=true'.format(self.user.username),
            HTTP_AUTHORIZATION='Token ' + self.token,
            format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['username'], self.user.username)
        self.assertEqual(len(response.data['subscribed_orgs']), 0)

        org = OrganizationFactory()
        self.user.organizations.add(org)

        response = self.client.get(
            '/users/{}/?includeSubscribedOrgs=true'.format(self.user.username),
            HTTP_AUTHORIZATION='Token ' + self.token,
            format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['username'], self.user.username)
        self.assertEqual(len(response.data['subscribed_orgs']), 1)

    def test_get_404(self):
        response = self.client.get('/users/foobar/',
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 404)

    def test_put_200(self):
        self.user.set_password('password')
        self.user.email = '*****@*****.**'
        self.user.save()
        self.assertTrue(self.user.check_password('password'))

        response = self.client.put('/users/{}/'.format(self.user.username),
                                   dict(password='******',
                                        email='*****@*****.**'),
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['username'], self.user.username)
        self.user.refresh_from_db()
        self.assertTrue(self.user.check_password('newpassword123'))
        self.assertEqual(self.user.email, '*****@*****.**')

    def test_delete_self_405(self):
        response = self.client.delete(
            '/users/{}/'.format(self.superuser.username),
            HTTP_AUTHORIZATION='Token ' + self.superuser.get_token(),
            format='json')

        self.assertEqual(response.status_code, 405)

    def test_delete_403(self):
        random_user = UserProfileFactory()
        response = self.client.delete('/users/{}/'.format(self.user.username),
                                      HTTP_AUTHORIZATION='Token ' +
                                      random_user.get_token(),
                                      format='json')

        self.assertEqual(response.status_code, 403)

    def test_delete_204(self):
        response = self.client.delete('/users/{}/'.format(self.user.username),
                                      HTTP_AUTHORIZATION='Token ' +
                                      self.superuser.get_token(),
                                      format='json')

        self.assertEqual(response.status_code, 204)
        self.user.refresh_from_db()
        self.assertFalse(self.user.is_active)