def test_getOldPassword(self): """ Makes sure we can get an old password from a username""" view = MigrateAndLogin() oldPass = view.getOldPassword('oldUser') self.assertEqual(oldPass.user, self.oldUser) self.assertEqual(view.getOldPassword('newuser'), None)
def test_no_username_returns_error(self): """ An post request with no username should return a 400 error code with username error""" factory = APIRequestFactory() request = factory.post('/api-token-auth', {'password': '******'}) view = MigrateAndLogin() response = view.post(request) self.assertEqual(response.status_code, 400) self.assertEqual(response.data['username'], 'This field is required') self.assertEqual('password' in response.data, False)
def test_empty_post_request_returns_errors(self): """ An empty post request should return a 400 error code with username and password errors""" factory = APIRequestFactory() request = factory.post('/api-token-auth') view = MigrateAndLogin() response = view.post(request) self.assertEqual(response.status_code, 400) self.assertEqual(response.data['username'], 'This field is required') self.assertEqual(response.data['password'], 'This field is required')
def test_user_with_new_password_authenticates(self): """ A user with a valid username/password gets a token """ factory = APIRequestFactory() request = factory.post('/api-token-auth', { 'username': '******', 'password': '******' }) view = MigrateAndLogin.as_view() response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(response.data['token'], self.newUser.auth_token.key)
def test_user_with_old_password_authenticates_and_migrates(self): """ A user with a valid username/password gets a token """ factory = APIRequestFactory() request = factory.post('/api-token-auth', { 'username': '******', 'password': '******' }) view = MigrateAndLogin.as_view() response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(response.data['token'], self.oldUser.auth_token.key) # Old password should have been deleted self.assertEqual( OldPassword.objects.filter(user=self.oldUser).exists(), False) # new password should exist in user table user = User.objects.get(username='******') self.assertEqual(user.check_password('pass2'), True)