improve the linked cases editor
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user