vergabe-teilnahme/vergabe_teilnahme/apps/partner/tests.py
tegwick b7d7828f30 Require invited login and private downloads for the company pilot
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
2026-09-11 16:35:13 +02:00

54 lines
2.2 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(admitted_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})
admitted_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(admitted_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 = admitted_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(admitted_client):
sub = make_sub(praeferenz='zugelassen')
url = reverse('partner:su_praeferenz', kwargs={'pk': sub.pk})
admitted_client.post(url, {'praeferenz': 'bevorzugt'})
sub.refresh_from_db()
assert sub.praeferenz == 'bevorzugt'
@pytest.mark.django_db
def test_zuordnung_toggle_zusage(admitted_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})
admitted_client.post(url, {'feld': 'zusage_vorhanden'})
z.refresh_from_db()
assert z.zusage_vorhanden is True