improve the linked cases editor

This commit is contained in:
Ross
2026-06-01 10:43:19 +01:00
parent 40cea43578
commit 1d85666127
4 changed files with 341 additions and 32 deletions
+55 -1
View File
@@ -1,9 +1,10 @@
import json
import datetime
from django.http import HttpResponse
from django.urls import reverse
import pytest
from atlas.models import CaseCollection, Finding, Condition
from atlas.models import Case, CaseCollection, Finding, Condition
#from atlas.views import GenericExamViews
from pytest_django.asserts import assertRedirects, assertContains, assertQuerySetEqual
from django.test import TestCase
@@ -179,3 +180,56 @@ def test_linked_cases_overview_can_copy_study_date_to_chain(client, create_user,
assert str(case1.study_date) == "2026-01-10"
assert str(case2.study_date) == "2026-01-10"
@pytest.mark.django_db
def test_case_save_auto_populates_study_date_when_missing(monkeypatch, make_case):
expected_date = datetime.date(2026, 2, 14)
monkeypatch.setattr(Case, "_get_series_study_date", lambda self: expected_date)
case = make_case(title="Autodate Case")
case.study_date = None
case.save(update_fields=["study_date"])
case.refresh_from_db()
assert case.study_date == expected_date
@pytest.mark.django_db
def test_case_save_preserves_manual_study_date(monkeypatch, make_case):
manual_date = datetime.date(2026, 3, 1)
monkeypatch.setattr(Case, "_get_series_study_date", lambda self: datetime.date(2026, 4, 1))
case = make_case(title="Manual Date Case")
case.study_date = manual_date
case.save(update_fields=["study_date"])
case.refresh_from_db()
assert case.study_date == manual_date
@pytest.mark.django_db
def test_linked_cases_editor_is_hidden_until_requested(client, create_user, make_case):
user = create_user
case1 = make_case(title="Case 1")
case2 = make_case(title="Case 2")
case2.previous_case = case1
case2.save(update_fields=["previous_case"])
case1.author.add(user)
case2.author.add(user)
client.force_login(user)
response_default = client.get(
reverse("atlas:linked_cases_overview", kwargs={"case_id": case1.pk})
)
assert response_default.status_code == 200
assertContains(response_default, "Open case series editor")
assert "Case Series Editor" not in response_default.content.decode("utf-8")
response_with_editor = client.get(
reverse("atlas:linked_cases_overview", kwargs={"case_id": case1.pk}) + "?show_editor=1"
)
assert response_with_editor.status_code == 200
assertContains(response_with_editor, "Case Series Editor")