test_mention_api.py 1.9 KB

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