We are building, workplan now registered with statehub
This commit is contained in:
parent
14b0bc6d01
commit
f202b71c75
37 changed files with 2036 additions and 22 deletions
|
|
@ -1,3 +1,100 @@
|
|||
from django.test import TestCase
|
||||
import factory
|
||||
import pytest
|
||||
from django.urls import reverse
|
||||
|
||||
# Create your tests here.
|
||||
from .models import Ausschreibung
|
||||
|
||||
|
||||
class AusschreibungFactory(factory.django.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Ausschreibung
|
||||
|
||||
titel = factory.Sequence(lambda n: f"Ausschreibung {n}")
|
||||
ausschreiber = "Testausschreiber GmbH"
|
||||
status = 1
|
||||
|
||||
|
||||
# --- Model tests ---
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_ausschreibung_str():
|
||||
a = AusschreibungFactory(titel="Test Ausschreibung")
|
||||
assert str(a) == "Test Ausschreibung"
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@pytest.mark.parametrize("status,expected", [
|
||||
(1, True), (5, True), (9, True),
|
||||
(10, False), (11, False), (13, False),
|
||||
])
|
||||
def test_ist_aktiv(status, expected):
|
||||
a = AusschreibungFactory(status=status)
|
||||
assert a.ist_aktiv == expected
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_naechste_frist_returns_earlier():
|
||||
from datetime import date, timedelta
|
||||
heute = date.today()
|
||||
a = AusschreibungFactory(
|
||||
bieterfragen_bis=heute + timedelta(days=5),
|
||||
abgabe_bis=heute + timedelta(days=10),
|
||||
)
|
||||
assert a.naechste_frist == heute + timedelta(days=5)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_naechste_frist_none_when_past():
|
||||
from datetime import date, timedelta
|
||||
gestern = date.today() - timedelta(days=1)
|
||||
a = AusschreibungFactory(bieterfragen_bis=gestern, abgabe_bis=None)
|
||||
assert a.naechste_frist is None
|
||||
|
||||
|
||||
# --- View tests ---
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_liste_get(client):
|
||||
response = client.get(reverse("ausschreibungen:liste"))
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_neu_get(client):
|
||||
response = client.get(reverse("ausschreibungen:neu"))
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_neu_post_valid(client):
|
||||
data = {"titel": "Neue Ausschreibung", "ausschreiber": "Stadt XY"}
|
||||
response = client.post(reverse("ausschreibungen:neu"), data)
|
||||
assert response.status_code == 302
|
||||
a = Ausschreibung.objects.get(titel="Neue Ausschreibung")
|
||||
assert response.url == reverse("ausschreibungen:detail", kwargs={"pk": a.pk})
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_detail_get(client):
|
||||
a = AusschreibungFactory()
|
||||
response = client.get(reverse("ausschreibungen:detail", kwargs={"pk": a.pk}))
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_status_post(client):
|
||||
a = AusschreibungFactory(status=1)
|
||||
url = reverse("ausschreibungen:status", kwargs={"pk": a.pk})
|
||||
response = client.post(url, {"status": "4"})
|
||||
assert response.status_code == 200
|
||||
a.refresh_from_db()
|
||||
assert a.status == 4
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_status_htmx_returns_partial(client):
|
||||
a = AusschreibungFactory(status=1)
|
||||
url = reverse("ausschreibungen:status", kwargs={"pk": a.pk})
|
||||
response = client.post(url, {"status": "3"}, HTTP_HX_REQUEST="true")
|
||||
assert response.status_code == 200
|
||||
assert b"status-widget" in response.content
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue