from django.test import TestCase from django.urls import reverse from misago.conf import settings from misago.users.testutils import create_test_user class AuthenticateApiTests(TestCase): def setUp(self): self.api_link = reverse("misago:api:mention-suggestions") def test_no_query(self): """api returns empty result set if no query is given""" response = self.client.get(self.api_link) self.assertEqual(response.status_code, 200) self.assertEqual(response.json(), []) def test_no_results(self): """api returns empty result set if no query is given""" response = self.client.get(self.api_link + "?q=none") self.assertEqual(response.status_code, 200) self.assertEqual(response.json(), []) def test_user_search(self): """api searches uses""" create_test_user("BobBoberson", "bob@test.com") # exact case sensitive match response = self.client.get(self.api_link + "?q=BobBoberson") self.assertEqual(response.status_code, 200) self.assertEqual( response.json(), [{"avatar": "http://placekitten.com/100/100", "username": "BobBoberson"}], ) # rought case insensitive match response = self.client.get(self.api_link + "?q=bob") self.assertEqual(response.status_code, 200) self.assertEqual( response.json(), [{"avatar": "http://placekitten.com/100/100", "username": "BobBoberson"}], ) # eager case insensitive match response = self.client.get(self.api_link + "?q=b") self.assertEqual(response.status_code, 200) self.assertEqual( response.json(), [{"avatar": "http://placekitten.com/100/100", "username": "BobBoberson"}], ) # invalid match response = self.client.get(self.api_link + "?q=bu") self.assertEqual(response.status_code, 200) self.assertEqual(response.json(), [])