From f1ab7afb6f06bd356e05959074c89f9056d94e16 Mon Sep 17 00:00:00 2001 From: bronsen Date: Thu, 13 Mar 2025 18:41:20 +0100 Subject: [PATCH] [tests] Ensure it is ok the enter the same name twice --- collector/tests.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/collector/tests.py b/collector/tests.py index 4b9e55a..9c2c77f 100644 --- a/collector/tests.py +++ b/collector/tests.py @@ -5,8 +5,9 @@ from hypothesis import given, strategies as st from .models import Teil +names = st.text(alphabet=st.characters(exclude_categories=["C"]), min_size=1) -@given(data=st.text(alphabet=st.characters(exclude_categories=["C"]))) +@given(data=names) def test_submitted_data_ends_up_in_database(data, session: Client): with pytest.raises(Teil.DoesNotExist): @@ -16,3 +17,19 @@ def test_submitted_data_ends_up_in_database(data, session: Client): assert response.status_code == 302 assert Teil.objects.get(name=data) + + +@given(data=names) +def test_entering_same_name_twice_does_not_change_database_entry(data, session: Client): + assert not Teil.objects.filter(name=data).exists() + + response = session.post(reverse("collector:enter"), data={"new_name": data}) + assert response.status_code == 302 + + assert Teil.objects.filter(name=data).count() == 1 + + response = session.post(reverse("collector:enter"), data={"new_name": data}) + assert response.status_code == 302 + + assert Teil.objects.filter(name=data).count() == 1 +