konova/konova/tests/test_autocompletes.py
mpeltriaux 2b33f0e23f #88 Action detail codes
* adds codelist 1035 for compensation action detail codes
* extends CompensationAction model
* extends NewActionForm
* extends detail view of compensation action related models
* add/updates translations
* adds autocomplete tests
2022-01-31 12:58:55 +01:00

90 lines
2.8 KiB
Python

"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 14.12.21
"""
import json
from django.urls import reverse
from konova.tests.test_views import BaseTestCase
from django.test.client import Client
class AutocompleteTestCase(BaseTestCase):
@classmethod
def setUpTestData(cls):
super().setUpTestData()
cls.client = Client()
def test_user_autocomplete(self):
self.client.login(username=self.superuser.username, password=self.superuser_pw)
user_autocomplete_url = reverse("share-user-autocomplete")
username = self.user.username
# Provide the full name --> success
data = {
"q": username
}
response = self.client.get(
user_autocomplete_url,
data,
)
content = json.loads(response.content)
self.assertEqual(username, content["results"][0]["text"])
self.assertEqual(str(self.user.id), content["results"][0]["id"])
# Provide only the first letter --> no result
data = {
"q": username[0]
}
response = self.client.get(
user_autocomplete_url,
data,
)
content = json.loads(response.content)
self.assertEqual([], content["results"])
# Provide full name + too much --> no result
data = {
"q": username + "t"
}
response = self.client.get(
user_autocomplete_url,
data,
)
content = json.loads(response.content)
self.assertEqual([], content["results"])
def test_all_autocompletes(self):
tests = [
"accounts-autocomplete",
"interventions-autocomplete",
"codes-compensation-action-autocomplete",
"codes-compensation-action-detail-autocomplete",
"codes-biotope-autocomplete",
"codes-biotope-extra-type-autocomplete",
"codes-law-autocomplete",
"codes-process-type-autocomplete",
"codes-registration-office-autocomplete",
"codes-conservation-office-autocomplete",
"share-user-autocomplete",
]
for test in tests:
self.client.login(username=self.superuser.username, password=self.superuser_pw)
user_autocomplete_url = reverse(test)
data = {
"q": ""
}
response = self.client.get(
user_autocomplete_url,
data,
)
content = json.loads(response.content)
try:
content["results"]
except KeyError:
self.fail(f"No results returned for autocomplete {test}")