vergabe-teilnahme/vergabe_teilnahme/apps/marktbegleiter/tests.py

71 lines
2.2 KiB
Python
Raw Normal View History

import pytest
from django.core.exceptions import ValidationError
from django.urls import reverse
2026-05-08 14:26:48 +02:00
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