test_mention_api.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. from django.contrib.auth import get_user_model
  2. from django.test import TestCase
  3. from django.urls import reverse
  4. from misago.conf import settings
  5. UserModel = get_user_model()
  6. class AuthenticateApiTests(TestCase):
  7. def setUp(self):
  8. self.api_link = reverse('misago:api:mention-suggestions')
  9. def test_no_query(self):
  10. """api returns empty result set if no query is given"""
  11. response = self.client.get(self.api_link)
  12. self.assertEqual(response.status_code, 200)
  13. self.assertEqual(response.json(), [])
  14. def test_no_results(self):
  15. """api returns empty result set if no query is given"""
  16. response = self.client.get(self.api_link + '?q=none')
  17. self.assertEqual(response.status_code, 200)
  18. self.assertEqual(response.json(), [])
  19. def test_user_search(self):
  20. """api searches uses"""
  21. UserModel.objects.create_user('BobBoberson', 'bob@test.com', 'pass123')
  22. # exact case sensitive match
  23. response = self.client.get(self.api_link + '?q=BobBoberson')
  24. self.assertEqual(response.status_code, 200)
  25. self.assertEqual(response.json(), [
  26. {
  27. 'avatar': 'http://placekitten.com/400/400',
  28. 'username': 'BobBoberson',
  29. }
  30. ])
  31. # rought case insensitive match
  32. response = self.client.get(self.api_link + '?q=bob')
  33. self.assertEqual(response.status_code, 200)
  34. self.assertEqual(response.json(), [
  35. {
  36. 'avatar': 'http://placekitten.com/400/400',
  37. 'username': 'BobBoberson',
  38. }
  39. ])
  40. # eager case insensitive match
  41. response = self.client.get(self.api_link + '?q=b')
  42. self.assertEqual(response.status_code, 200)
  43. self.assertEqual(response.json(), [
  44. {
  45. 'avatar': 'http://placekitten.com/400/400',
  46. 'username': 'BobBoberson',
  47. }
  48. ])
  49. # invalid match
  50. response = self.client.get(self.api_link + '?q=bu')
  51. self.assertEqual(response.status_code, 200)
  52. self.assertEqual(response.json(), [])