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

55 lines
2.1 KiB
Python
Raw Normal View History

import pytest
from django.urls import reverse
2026-05-08 14:26:48 +02:00
from vergabe_teilnahme.apps.ausschreibungen.tests import AusschreibungFactory
from vergabe_teilnahme.apps.lose.models import Los
from .models import Subunternehmer, SubunternehmerZuordnung
def make_sub(praeferenz='zugelassen', name='TestSub', **kwargs):
return Subunternehmer.objects.create(name=name, praeferenz=praeferenz, **kwargs)
@pytest.mark.django_db
def test_subunternehmer_zuordnung_zu_los(client):
a = AusschreibungFactory()
los = Los.objects.create(ausschreibung=a, losnummer='1', lostitel='Los 1')
sub = make_sub()
url = reverse('partner:su_zuordnen', kwargs={'ausschreibung_id': a.pk, 'los_pk': los.pk})
client.post(url, {'subunternehmer_id': sub.pk, 'konkrete_leistung': 'IT-Support'})
assert SubunternehmerZuordnung.objects.filter(subunternehmer=sub, ausschreibung=a, los=los).exists()
@pytest.mark.django_db
def test_gesperrter_subunternehmer_im_suchmodal(client):
a = AusschreibungFactory()
los = Los.objects.create(ausschreibung=a, losnummer='1', lostitel='Los 1')
make_sub(praeferenz='gesperrt', name='GesperrterSub')
url = reverse('partner:su_suche_modal', kwargs={'ausschreibung_id': a.pk, 'los_pk': los.pk})
response = client.get(url + '?q=GesperrterSub')
assert response.status_code == 200
assert b'gesperrt' in response.content.lower()
@pytest.mark.django_db
def test_subunternehmer_praeferenz_update(client):
sub = make_sub(praeferenz='zugelassen')
url = reverse('partner:su_praeferenz', kwargs={'pk': sub.pk})
client.post(url, {'praeferenz': 'bevorzugt'})
sub.refresh_from_db()
assert sub.praeferenz == 'bevorzugt'
@pytest.mark.django_db
def test_zuordnung_toggle_zusage(client):
a = AusschreibungFactory()
los = Los.objects.create(ausschreibung=a, losnummer='1', lostitel='Los 1')
sub = make_sub()
z = SubunternehmerZuordnung.objects.create(subunternehmer=sub, ausschreibung=a, los=los)
assert z.zusage_vorhanden is False
url = reverse('partner:zuordnung_toggle', kwargs={'pk': z.pk})
client.post(url, {'feld': 'zusage_vorhanden'})
z.refresh_from_db()
assert z.zusage_vorhanden is True