import pytest from django.core.exceptions import ValidationError from django.urls import reverse from vergabe_teilnahme.apps.ausschreibungen.tests import AusschreibungFactory from .models import Ausschreibungspassage, Marktbegleiter def make_mb(name='TestBegleiter', **kwargs): return Marktbegleiter.objects.create(name=name, **kwargs) @pytest.mark.django_db def test_passage_anlegen_mit_score_10(client): a = AusschreibungFactory() mb = make_mb() url = reverse('marktbegleiter:passagen:neu', kwargs={'ausschreibung_id': a.pk}) response = client.post(url, { 'passage': 'Musterpassage aus dem Dokument', 'marktbegleiter': mb.pk, 'verlaesslichkeitsscore': 10, }) assert response.status_code == 302 assert Ausschreibungspassage.objects.filter(marktbegleiter=mb, verlaesslichkeitsscore=10).exists() @pytest.mark.django_db def test_passage_score_zu_hoch_validierungsfehler(): a = AusschreibungFactory() mb = make_mb() p = Ausschreibungspassage( ausschreibung=a, marktbegleiter=mb, passage='Test', verlaesslichkeitsscore=11, ) with pytest.raises(ValidationError): p.full_clean() @pytest.mark.django_db def test_auswertung_score_durchschnitt(client): a = AusschreibungFactory() mb = make_mb() Ausschreibungspassage.objects.create( ausschreibung=a, marktbegleiter=mb, passage='P1', verlaesslichkeitsscore=8 ) Ausschreibungspassage.objects.create( ausschreibung=a, marktbegleiter=mb, passage='P2', verlaesslichkeitsscore=6 ) url = reverse('marktbegleiter:auswertung', kwargs={'pk': mb.pk}) response = client.get(url) assert response.status_code == 200 content = response.content.decode() assert '7' in content @pytest.mark.django_db def test_marktbegleiter_detail_zeigt_passagen(client): a = AusschreibungFactory() mb = make_mb(name='DetailBegleiter') Ausschreibungspassage.objects.create( ausschreibung=a, marktbegleiter=mb, passage='Sichtbare Passage', verlaesslichkeitsscore=5 ) url = reverse('marktbegleiter:detail', kwargs={'pk': mb.pk}) response = client.get(url) assert response.status_code == 200 assert b'Sichtbare Passage' in response.content