generated from coulomb/repo-seed
Implementiert Subunternehmer-Katalog mit Suche/Filter, Zuordnung zu Losen via HTMX-Modal, Dienstleistertyp-CRUD und Präferenz-Badges. Bibliothek: Nachweis-Katalog mit Ablaufwarnung und Versionierung, Referenz-Katalog mit Ausschreibungszuordnung, Leistungsblatt-CRUD, Entscheidungsregel-CRUD mit Aktiv-Toggle. Migration für referenzen M2M auf Ausschreibung. 56 Tests grün. Tests-Discovery auf tests.py-Dateien ausgedehnt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
import pytest
|
|
from django.urls import reverse
|
|
|
|
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
|