def test_post_should_logout_logged_in_user(self): user = create_user() token = models.Token.objects.create(user=user, client='my-device') request = self.factory.post(user=user, token=token) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) self.assertEqual(response.data, None) with self.assertRaises(models.Token.DoesNotExist): utils.refresh(token)
def test_refresh_should_update_instance_when_instance_changed(self): instance = models.MockModel.objects.create(field='old') models.MockModel.objects.filter(pk=instance.pk).update(field='new') instance = utils.refresh(instance) self.assertEqual(instance.field, 'new')
def test_update_user_data(self): self.assertNotEqual(self.user.first_name, 'Aaron') request = self.factory.post(data={ 'first_name': 'Aaron', }, user=self.user) response = self.view(request) self.assert_redirect(response, self.observer.get_absolute_url()) user = refresh(self.user) self.assertEqual(user.first_name, 'Aaron')
def test_update_observer_data(self): self.assertNotEqual(self.observer.limiting_magnitude, 11) request = self.factory.post(data={ 'limiting_magnitude': 11, }, user=self.user) response = self.view(request) self.assert_redirect(response, self.observer.get_absolute_url()) observer = refresh(self.observer) self.assertEqual(observer.limiting_magnitude, 11)
def test_post_should_set_new_password(self): user = create_user() data = {"new_password": "******", "current_password": "******"} request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertTrue(user.check_password(data["new_password"]))
def test_post_should_not_set_new_username_if_invalid(self): user = create_user() data = {"new_username": "******", "current_password": "******"} request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertNotEqual(user.username, data["new_username"])
def test_put_should_update_user(self): user = create_user() data = {"email": "*****@*****.**"} request = self.factory.put(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertEqual(data["email"], user.email)
def test_post_should_set_new_username(self): user = create_user() data = {"new_username": "******", "current_password": "******"} request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertEqual(data["new_username"], user.username)
def test_post_should_not_set_new_password_if_mismatch(self): user = create_user() data = {"new_password": "******", "re_new_password": "******", "current_password": "******"} request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertTrue(user.check_password(data["current_password"]))
def test_post_should_not_set_new_password_if_broken_uid(self): user = create_user() data = {"uid": "x", "token": default_token_generator.make_token(user), "new_password": "******"} request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) self.assertIn("uid", response.data) user = utils.refresh(user) self.assertFalse(user.check_password(data["new_password"]))
def test_post_should_not_set_new_password_if_wrong_token(self): user = create_user() data = {"uid": djoser.utils.encode_uid(user.pk), "token": "wrong-token", "new_password": "******"} request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.data["non_field_errors"], [djoser.constants.INVALID_TOKEN_ERROR]) user = utils.refresh(user) self.assertFalse(user.check_password(data["new_password"]))
def test_post_should_not_set_new_username_if_exists(self): username = "******" create_user(username=username) user = create_user(username="******") data = {"new_username": username, "current_password": "******"} request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertNotEqual(user.username, username)
def test_put_should_update_model(self): instance = models.MockModel.objects.create(field='test value') data = { 'field': 'test new value', } request = self.factory.put(data=data) response = self.view(request, pk=instance.pk) self.assert_status_equal(response, status.HTTP_200_OK) instance = utils.refresh(instance) self.assertEqual(instance.field, data['field'])
def test_post_should_activate_user_and_not_login(self): user = create_user() user.is_active = False user.save() data = {"uid": djoser.utils.encode_uid(user.pk), "token": default_token_generator.make_token(user)} request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertTrue(user.is_active)
def test_post_with_sanitizers(self): user = create_user() data = { 'new_username': '******', 'current_password': '******', } request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_204_NO_CONTENT) user = utils.refresh(user) self.assertEqual('JOH', user.username)
def test_post_should_set_new_username(self): user = create_user() data = { 'new_username': '******', 'current_password': '******', } request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertEqual(data['new_username'], user.username)
def test_post_should_set_new_password(self): user = create_user() data = { 'new_password': '******', 'current_password': '******', } request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_204_NO_CONTENT) user = utils.refresh(user) self.assertTrue(user.check_password(data['new_password']))
def test_post_should_not_set_new_username_if_mismatch(self): user = create_user() data = { 'new_username': '******', 're_new_username': '******', 'current_password': '******', } request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertNotEqual(data['new_username'], user.username)
def test_post_should_not_set_new_password_if_user_does_not_exist(self): user = create_user() data = { 'uid': djoser.utils.encode_uid(user.pk + 1), 'token': default_token_generator.make_token(user), 'new_password': '******', } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) self.assertIn('uid', response.data) user = utils.refresh(user) self.assertFalse(user.check_password(data['new_password']))
def test_post_should_not_set_new_password_if_wrong_token(self): user = create_user() data = { 'uid': djoser.utils.encode_uid(user.pk), 'token': 'wrong-token', 'new_password': '******', } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.data['non_field_errors'], [djoser.constants.INVALID_TOKEN_ERROR]) user = utils.refresh(user) self.assertFalse(user.check_password(data['new_password']))
def test_post_should_not_set_new_username_if_exists(self): username = '******' create_user(username=username) user = create_user(username='******') data = { 'new_username': username, 'current_password': '******', } request = self.factory.post(user=user, data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertNotEqual(user.username, username)
def test_post_should_set_new_password(self): user = create_user() data = { 'uid': djoser.utils.encode_uid(user.pk), 'token': default_token_generator.make_token(user), 'new_password': '******', } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertTrue(user.check_password(data['new_password']))
def test_post_should_activate_user_and_not_login(self): user = create_user() user.is_active = False user.save() data = { 'uid': djoser.utils.encode_uid(user.pk), 'token': default_token_generator.make_token(user), } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_204_NO_CONTENT) user = utils.refresh(user) self.assertTrue(user.is_active)
def test_post_not_set_new_username_if_exists(self): username = '******' create_user(username=username) user = create_user(username='******') self.client.force_authenticate(user=user) data = { 'new_username': username, 'current_password': '******', } response = self.client.post(reverse('user-change-username'), data=data) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertNotEqual(user.username, username)
def test_post_should_set_new_password(self): user = create_user() data = { 'uid': djoser.utils.encode_uid(user.pk), 'token': djoser.utils.get_token_generator().make_token(user), 'new_password': '******', } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_200_OK) user = utils.refresh(user) self.assertTrue(user.check_password(data['new_password']))
def test_post_should_not_set_new_password_if_mismatch(self): user = create_user() data = { "uid": djoser.utils.encode_uid(user.pk), "token": default_token_generator.make_token(user), "new_password": "******", "re_new_password": "******", } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertFalse(user.check_password(data["new_password"]))
def test_post_should_not_set_new_password_if_mismatch(self): user = create_user() data = { 'uid': djoser.utils.encode_uid(user.pk), 'token': djoser.utils.get_token_generator().make_token(user), 'new_password': '******', 're_new_password': '******', } request = self.factory.post(data=data) response = self.view(request) self.assert_status_equal(response, status.HTTP_400_BAD_REQUEST) user = utils.refresh(user) self.assertFalse(user.check_password(data['new_password']))
def refresh(self, instance): return refresh(instance)