Pavel "LEdoian" Turinsky
3 years ago
3 changed files with 75 additions and 1 deletions
@ -0,0 +1,64 @@ |
|||
from django.test import TestCase |
|||
from django.urls import reverse |
|||
import seminar.models as m |
|||
import seminar.views as v |
|||
from seminar.utils import sync_skoly |
|||
|
|||
class OrgSkolyAutocompleteTestCase(TestCase): |
|||
@classmethod |
|||
def setUpClass(cls): |
|||
super().setUpClass() |
|||
sync_skoly('https://mam.mff.cuni.cz/') |
|||
# Správné školy podle toho, co orgové poslali: (prefix, ID školy) |
|||
# NOTE: Pozor, jedná se o databázové indexy. Pokud se to někdy rozbije, bude potřeba je přepsat nebo předělat na IZO |
|||
cls.spravna_data = [ |
|||
('gymnázium kolín', 53), |
|||
('kolín', 53), |
|||
('gasoš', 96), |
|||
('Rokycany', 96), |
|||
('gasoš Rokycany', 96), |
|||
('SPŠE Pardubice', 815), |
|||
('Jaroše', 164), |
|||
("Gymnázium, Brno, tř. Kpt. Jaroše", 164), |
|||
("Jírovcova", 157), |
|||
('České Budějovice', 157), |
|||
("Gymnázium, České Budějovice, Jírovcova 8", 157), |
|||
("první soukromé", 2), |
|||
("Gymnázium Elgartova", 147), |
|||
("Jihlava", 45), |
|||
('Milevsko', 223), |
|||
("Gymnázium Milevsko", 223), |
|||
("Gymnázium Žamberk", 257), |
|||
("Žamberk", 257), |
|||
("Mendelovo", 201), |
|||
("Omská", 1038), |
|||
("Omsk", 1038), |
|||
("machar", 15), |
|||
("J. S. Machar", 15), |
|||
("Brandýs", 15), |
|||
] |
|||
|
|||
def test_view_funguje(self): |
|||
"""Jen se pokusí udělat na ten view dotaz a kouká na odpověď""" |
|||
resp = self.client.get(reverse('autocomplete_skola')) |
|||
self.assertEqual(resp.status_code, 200) |
|||
|
|||
def test_skoly_vraceny(self): |
|||
"""Testuje, že pro každého orga je jeho škola ve výsledném QuerySetu""" |
|||
for pfx, id in self.spravna_data: |
|||
with self.subTest(prefix=pfx, spravne_id=id): |
|||
spravna_skola = m.Skola.objects.get(id=id) |
|||
# Zeptáme se view, co si myslí |
|||
resp = self.client.get(reverse('autocomplete_skola')+'?q='+pfx).json() |
|||
ids = [int(x['id']) for x in resp['results']] |
|||
self.assertIn(spravna_skola.id, ids, f"Škola nenalezena v odpovědi") |
|||
|
|||
def test_skoly_pocet(self): |
|||
"""Testuje, že se pro dané prefixy nevrací moc škol""" |
|||
limit = 20 |
|||
for pfx, id in self.spravna_data: |
|||
# Kopírování … |
|||
with self.subTest(prefix=pfx, spravne_id=id): |
|||
resp = self.client.get(reverse('autocomplete_skola')+'?q='+pfx).json() |
|||
self.assertLessEqual(len(resp['results']), limit, f"Dotaz vrací moc škol") |
|||
|
Loading…
Reference in new issue