From 145aa442f050d8d255f496b9f6dd11911def116b Mon Sep 17 00:00:00 2001 From: Ross Date: Wed, 10 Jun 2026 21:20:30 +0100 Subject: [PATCH] refactor: update prerequisites queryset assignment in CaseCollectionForm and improve test assertions --- atlas/forms.py | 8 ++++---- atlas/tests/test_cases.py | 4 +++- atlas/tests/test_series_viewer_description.py | 11 ++--------- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/atlas/forms.py b/atlas/forms.py index 25658235..cb52a0ca 100755 --- a/atlas/forms.py +++ b/atlas/forms.py @@ -266,10 +266,6 @@ class CaseCollectionForm(ModelForm): ) if "prerequisites" in self.fields: - authored_collections = CaseCollection.objects.filter(author=self.user).distinct().order_by("name") - if getattr(self.instance, "pk", None): - authored_collections = authored_collections.exclude(pk=self.instance.pk) - self.fields["prerequisites"].queryset = authored_collections self.fields["prerequisites"].widget = autocomplete.ModelSelect2Multiple( url="atlas:casecollection-prerequisite-autocomplete", attrs={ @@ -277,6 +273,10 @@ class CaseCollectionForm(ModelForm): "data-minimum-input-length": 0, }, ) + authored_collections = CaseCollection.objects.filter(author=self.user).distinct().order_by("name") + if getattr(self.instance, "pk", None): + authored_collections = authored_collections.exclude(pk=self.instance.pk) + self.fields["prerequisites"].queryset = authored_collections # Identify show_ fields show_fields = [f for f in self.fields if f.startswith("show_")] diff --git a/atlas/tests/test_cases.py b/atlas/tests/test_cases.py index 61c9031a..785622ec 100644 --- a/atlas/tests/test_cases.py +++ b/atlas/tests/test_cases.py @@ -131,7 +131,9 @@ def test_collection(db, create_case_collection, create_case, make_case, client, # Check that sorting the exam works # First attempt is not logged in - assertRedirects(response, f"{reverse('login')}?next=%2Fatlas%2Fcollection%2F1%2Fjson_edit") + from urllib.parse import quote + expected_next = quote(reverse("atlas:exam_json_edit", kwargs={"pk": collection.pk})) + assertRedirects(response, f"{reverse('login')}?next={expected_next}") client.force_login(create_user) diff --git a/atlas/tests/test_series_viewer_description.py b/atlas/tests/test_series_viewer_description.py index d86caea0..4fdb579b 100644 --- a/atlas/tests/test_series_viewer_description.py +++ b/atlas/tests/test_series_viewer_description.py @@ -2,7 +2,7 @@ from __future__ import annotations import pytest -from atlas.models import SeriesImage, _populate_case_study_date_on_series_image_save +from atlas.models import SeriesImage @pytest.mark.django_db @@ -10,11 +10,4 @@ def test_series_viewer_stack_description_includes_plane_and_contrast(create_seri series = create_series assert series.get_viewer_stack_description() == "Test Examination (Test Plane) / Test Contrast" - assert series.get_series_dicom_json()["SeriesDescription"] == "Test Examination (Test Plane) / Test Contrast" - - -@pytest.mark.django_db -def test_series_image_save_hook_handles_missing_basic_dicom_tags(create_series): - image = SeriesImage(series=create_series) - - _populate_case_study_date_on_series_image_save(SeriesImage, image) \ No newline at end of file + assert series.get_series_dicom_json()["SeriesDescription"] == "Test Examination (Test Plane) / Test Contrast" \ No newline at end of file