示例#1
0
    def test_retrieve_user_without_token(self):
        user = self.create_user(False)
        request = RequestFactory().get('v1/api/users')
        request.user = AnonymousUser()
        resp = UserViewSet.as_view({'get': 'retrieve'})(request, pk=user.id)

        self.assertEqual(resp.status_code, 401)
        self.assertEqual(
            json.loads(json.dumps(resp.data))['detail'],
            'Authentication credentials were not provided.')
示例#2
0
    def test_retrieve_user_with_token_without_super(self):
        user = self.create_user()
        self.create_user('user2', False)
        token = self.create_token(user)
        token.generate_key()
        request = RequestFactory().get('v1/api/users',
                                       HTTP_AUTHORIZATION=token.key)
        force_authenticate(request, user=user, token=token)
        resp = UserViewSet.as_view({'get': 'retrieve'})(request, pk=user.id)

        user_response = json.loads(json.dumps(resp.data))

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(user_response['username'], user.username)
示例#3
0
    def test_get_user_with_token_with_super(self):
        user = self.create_user('user', True)
        self.create_user('user2')
        token = self.create_token(user)
        token.generate_key()
        request = RequestFactory().get('v1/api/users',
                                       HTTP_AUTHORIZATION=token.key)
        force_authenticate(request, user=user, token=token)
        resp = UserViewSet.as_view({'get': 'list'})(request)

        user_response = json.loads(json.dumps(resp.data))

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(user_response['count'], 2)
示例#4
0
    def test_post_user(self):
        data = {
            'username': '******',
            'email': '*****@*****.**',
            'password': '******'
        }

        request = RequestFactory().post('v1/api/users',
                                        data=data,
                                        content_type='application/json')
        request.user = AnonymousUser()
        resp = UserViewSet.as_view({'post': 'create'})(request)

        self.assertEqual(resp.status_code, 201)
        self.assertEqual(json.loads(json.dumps(resp.data))['id'], 1)
示例#5
0
    def test_update_user_without_token(self):
        data = {
            'username': '******',
            'email': '*****@*****.**',
            'password': '******'
        }
        user = self.create_user(False)
        request = RequestFactory().put('v1/api/users',
                                       data=data,
                                       pk=user.id,
                                       content_type='application/json')
        request.user = AnonymousUser()
        resp = UserViewSet.as_view({'put': 'update'})(request, pk=user.id)

        self.assertEqual(resp.status_code, 401)
        self.assertEqual(
            json.loads(json.dumps(resp.data))['detail'],
            'Authentication credentials were not provided.')
示例#6
0
    def test_delete_user_with_token(self):
        user = self.create_user(False)
        token = self.create_token(user)
        token.generate_key()
        data = {
            'username': '******',
            'email': '*****@*****.**',
            'password': '******'
        }

        request = RequestFactory().delete('v1/api/users',
                                          pk=user.id,
                                          HTTP_AUTHORIZATION=token.key,
                                          content_type='application/json')
        force_authenticate(request, user=user, token=token)
        resp = UserViewSet.as_view({'delete': 'destroy'})(request, pk=user.id)

        self.assertEqual(resp.status_code, 405)
示例#7
0
    def test_update_user_with_token(self):
        data = {
            'username': '******',
            'email': '*****@*****.**',
            'password': '******'
        }
        user = self.create_user()
        token = self.create_token(user)
        token.generate_key()
        request = RequestFactory().put('v1/api/users',
                                       data=data,
                                       pk=user.id,
                                       HTTP_AUTHORIZATION=token.key,
                                       content_type='application/json')
        force_authenticate(request, user=user, token=token)
        resp = UserViewSet.as_view({'put': 'update'})(request, pk=user.id)

        user_response = json.loads(json.dumps(resp.data))

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(user_response['username'], 'User_updated')