From 8edbbacf4b0be7574ed0d8020769d9286999b4f2 Mon Sep 17 00:00:00 2001 From: Ben Silverman Date: Tue, 21 Jan 2025 11:02:59 -0500 Subject: [PATCH] Add unit test for admin person-doc type merge (#1709) --- geniza/entities/tests/test_entities_admin.py | 28 ++++++++++++++++++++ geniza/entities/tests/test_entities_views.py | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/geniza/entities/tests/test_entities_admin.py b/geniza/entities/tests/test_entities_admin.py index 58e8b4759..77609de9f 100644 --- a/geniza/entities/tests/test_entities_admin.py +++ b/geniza/entities/tests/test_entities_admin.py @@ -12,6 +12,7 @@ NameInlineFormSet, PersonAdmin, PersonDocumentInline, + PersonDocumentRelationTypeAdmin, PersonPersonInline, PersonPersonRelationTypeChoiceField, PersonPersonReverseInline, @@ -21,6 +22,7 @@ Name, Person, PersonDocumentRelation, + PersonDocumentRelationType, PersonPersonRelation, PersonPersonRelationType, PersonPlaceRelation, @@ -415,3 +417,29 @@ def test_export_relations_to_csv(self, person): # - some content assert str(person) in content assert "Home base" in content + + +class TestPersonDocumentRelationTypeAdmin: + def test_merge_person_document_relation_types(self): + pdr_admin = PersonDocumentRelationTypeAdmin( + model=PersonDocumentRelationType, admin_site=admin.site + ) + mockrequest = Mock() + test_ids = ["1", "2", "3"] + mockrequest.POST.getlist.return_value = test_ids + resp = pdr_admin.merge_person_document_relation_types(mockrequest, Mock()) + assert isinstance(resp, HttpResponseRedirect) + assert resp.status_code == 303 + assert resp["location"].startswith( + reverse("admin:person-document-relation-type-merge") + ) + assert resp["location"].endswith("?ids=%s" % ",".join(test_ids)) + + test_ids = ["1"] + mockrequest.POST.getlist.return_value = test_ids + resp = pdr_admin.merge_person_document_relation_types(mockrequest, Mock()) + assert isinstance(resp, HttpResponseRedirect) + assert resp.status_code == 302 + assert resp["location"] == reverse( + "admin:entities_persondocumentrelationtype_changelist" + ) diff --git a/geniza/entities/tests/test_entities_views.py b/geniza/entities/tests/test_entities_views.py index a735f2bd5..8189e4b85 100644 --- a/geniza/entities/tests/test_entities_views.py +++ b/geniza/entities/tests/test_entities_views.py @@ -148,7 +148,7 @@ def test_get_form_kwargs(self): form_kwargs = merge_view.get_form_kwargs() assert form_kwargs["ids"] == merge_view.ids - def test_person_merge(self, admin_client, client): + def test_person_document_relation_type_merge(self, admin_client, client): # Ensure that the merge view is not visible to public response = client.get(reverse("admin:person-document-relation-type-merge")) assert response.status_code == 302