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