test_auth_api.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import json
  2. from django.contrib.auth import get_user_model
  3. from django.core.urlresolvers import reverse
  4. from django.test import TestCase
  5. class AuthenticateAPITests(TestCase):
  6. def test_api_invalid_credentials(self):
  7. """login api returns 400 on invalid POST"""
  8. response = self.client.post(
  9. reverse('misago:api:login'),
  10. data={'username': 'nope', 'password': 'nope'})
  11. self.assertEqual(response.status_code, 400)
  12. self.assertIn("Login or password is incorrect.", response.content)
  13. response = self.client.get(reverse('misago:api:auth_user'))
  14. self.assertEqual(response.status_code, 200)
  15. user_json = json.loads(response.content)
  16. self.assertIsNone(user_json['id'])
  17. def test_api_signin(self):
  18. """api signs user in"""
  19. User = get_user_model()
  20. user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  21. response = self.client.post(
  22. reverse('misago:api:login'),
  23. data={'username': 'Bob', 'password': 'Pass.123'})
  24. self.assertEqual(response.status_code, 200)
  25. response = self.client.get(reverse('misago:index'))
  26. self.assertEqual(response.status_code, 200)
  27. response = self.client.get(reverse('misago:api:auth_user'))
  28. self.assertEqual(response.status_code, 200)
  29. user_json = json.loads(response.content)
  30. self.assertEqual(user_json['id'], user.id)
  31. self.assertEqual(user_json['username'], user.username)
  32. def test_api_signin_banned(self):
  33. """login api fails to sign banned user in"""
  34. raise NotImplemented("TODO: test_api_signin_banned")
  35. def test_api_signin_inactive(self):
  36. """login api fails to sign inactive user in"""
  37. raise NotImplemented("TODO: test_api_signin_inactive")