test_mention_api.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from misago.conf import settings
  4. from misago.users.testutils 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('BobBoberson', 'bob@test.com')
  21. # exact case sensitive match
  22. response = self.client.get(self.api_link + '?q=BobBoberson')
  23. self.assertEqual(response.status_code, 200)
  24. self.assertEqual(response.json(), [
  25. {
  26. 'avatar': 'http://placekitten.com/100/100',
  27. 'username': 'BobBoberson',
  28. }
  29. ])
  30. # rought case insensitive match
  31. response = self.client.get(self.api_link + '?q=bob')
  32. self.assertEqual(response.status_code, 200)
  33. self.assertEqual(response.json(), [
  34. {
  35. 'avatar': 'http://placekitten.com/100/100',
  36. 'username': 'BobBoberson',
  37. }
  38. ])
  39. # eager case insensitive match
  40. response = self.client.get(self.api_link + '?q=b')
  41. self.assertEqual(response.status_code, 200)
  42. self.assertEqual(response.json(), [
  43. {
  44. 'avatar': 'http://placekitten.com/100/100',
  45. 'username': 'BobBoberson',
  46. }
  47. ])
  48. # invalid match
  49. response = self.client.get(self.api_link + '?q=bu')
  50. self.assertEqual(response.status_code, 200)
  51. self.assertEqual(response.json(), [])