diff --git a/sv/tests/test_fichezonedelimitee_add_performance.py b/sv/tests/test_fichezonedelimitee_add_performance.py new file mode 100644 index 0000000..a571ea9 --- /dev/null +++ b/sv/tests/test_fichezonedelimitee_add_performance.py @@ -0,0 +1,32 @@ +from django.urls import reverse + +from model_bakery import baker + +from sv.forms import RattachementChoices +from sv.models import Etat, OrganismeNuisible, FicheDetection + +BASE_NUM_QUERIES = 7 + + +def test_add_fiche_zone_delimitee_form_with_multiple_existing_fiche_detection( + client, django_assert_num_queries, mocked_authentification_user +): + """Vérifie que le nombre de requêtes SQL générées lors du chargement du formulaire de création d'une zone délimitée reste constant, + quel que soit le nombre de fiches de détection affichées dans les champs hors zone infestée et zone infestée""" + organisme_nuisible = baker.make(OrganismeNuisible) + etat = Etat.objects.get(id=Etat.get_etat_initial()) + detections = baker.make( + FicheDetection, + _fill_optional=True, + etat=etat, + createur=mocked_authentification_user.agent.structure, + hors_zone_infestee=None, + zone_infestee=None, + organisme_nuisible=organisme_nuisible, + _quantity=3, + ) + url = f"{reverse('fiche-zone-delimitee-creation')}?fiche_detection_id={detections[0].pk}&rattachement={RattachementChoices.HORS_ZONE_INFESTEE}" + client.get(url) + + with django_assert_num_queries(BASE_NUM_QUERIES): + client.get(url) diff --git a/sv/tests/test_fichezonedelimitee_performances.py b/sv/tests/test_fichezonedelimitee_detail_performances.py similarity index 100% rename from sv/tests/test_fichezonedelimitee_performances.py rename to sv/tests/test_fichezonedelimitee_detail_performances.py diff --git a/sv/tests/test_fichezonedelimitee_update_performance.py b/sv/tests/test_fichezonedelimitee_update_performance.py new file mode 100644 index 0000000..e5fde01 --- /dev/null +++ b/sv/tests/test_fichezonedelimitee_update_performance.py @@ -0,0 +1,31 @@ +from model_bakery import baker + +from sv.models import Etat, OrganismeNuisible, FicheDetection + +BASE_NUM_QUERIES = 10 + + +def test_update_fiche_zone_delimitee_form_with_multiple_existing_fiche_detection( + client, django_assert_num_queries, mocked_authentification_user, fiche_zone_bakery +): + """Vérifie que le nombre de requêtes SQL générées lors du chargement du formulaire de modification d'une zone délimitée reste constant, + quel que soit le nombre de fiches de détection affichées dans les champs hors zone infestée et zone infestée""" + organisme_nuisible = baker.make(OrganismeNuisible) + etat = Etat.objects.get(id=Etat.get_etat_initial()) + baker.make( + FicheDetection, + _fill_optional=True, + etat=etat, + createur=mocked_authentification_user.agent.structure, + hors_zone_infestee=None, + zone_infestee=None, + organisme_nuisible=organisme_nuisible, + _quantity=3, + ) + fiche_zone_delimitee = fiche_zone_bakery() + fiche_zone_delimitee.organisme_nuisible = organisme_nuisible + fiche_zone_delimitee.save() + client.get(fiche_zone_delimitee.get_update_url()) + + with django_assert_num_queries(BASE_NUM_QUERIES): + client.get(fiche_zone_delimitee.get_update_url())