test_mention_api.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from ..test import create_test_user
  4. class AuthenticateApiTests(TestCase):
  5. def setUp(self):
  6. self.api_link = reverse("misago:api:mention-suggestions")
  7. def test_no_query(self):
  8. """api returns empty result set if no query is given"""
  9. response = self.client.get(self.api_link)
  10. self.assertEqual(response.status_code, 200)
  11. self.assertEqual(response.json(), [])
  12. def test_no_results(self):
  13. """api returns empty result set if no query is given"""
  14. response = self.client.get(self.api_link + "?q=none")
  15. self.assertEqual(response.status_code, 200)
  16. self.assertEqual(response.json(), [])
  17. def test_user_search(self):
  18. """api searches uses"""
  19. create_test_user("User", "user@example.com")
  20. # exact case sensitive match
  21. response = self.client.get(self.api_link + "?q=User")
  22. self.assertEqual(response.status_code, 200)
  23. self.assertEqual(
  24. response.json(),
  25. [{"avatar": "http://placekitten.com/100/100", "username": "User"}],
  26. )
  27. # case insensitive match
  28. response = self.client.get(self.api_link + "?q=user")
  29. self.assertEqual(response.status_code, 200)
  30. self.assertEqual(
  31. response.json(),
  32. [{"avatar": "http://placekitten.com/100/100", "username": "User"}],
  33. )
  34. # eager case insensitive match
  35. response = self.client.get(self.api_link + "?q=u")
  36. self.assertEqual(response.status_code, 200)
  37. self.assertEqual(
  38. response.json(),
  39. [{"avatar": "http://placekitten.com/100/100", "username": "User"}],
  40. )
  41. # invalid match
  42. response = self.client.get(self.api_link + "?q=other")
  43. self.assertEqual(response.status_code, 200)
  44. self.assertEqual(response.json(), [])