Files
penracourses/atlas/tests/test_user_uploads.py
T
2026-06-03 20:48:00 +01:00

58 lines
1.8 KiB
Python

from __future__ import annotations
import pytest
from django.urls import reverse
from atlas.models import SeriesImage, UncategorisedDicom
@pytest.mark.django_db
def test_user_uploads_partial_import_button_prefers_case_for_hash_matched_series(
client,
admin_user,
create_series,
create_case,
make_case,
):
client.force_login(admin_user)
primary_case = create_case
primary_case.author.add(admin_user)
secondary_case = make_case(title="Secondary Case")
secondary_case.author.add(admin_user)
existing_series = create_series
existing_series.series_instance_uid = "atlas-series-1"
existing_series.study_instance_uid = "study-1"
existing_series.save(update_fields=["series_instance_uid", "study_instance_uid"])
primary_case.series.add(existing_series)
secondary_case.series.add(existing_series)
SeriesImage.objects.create(series=existing_series, image_blake3_hash="shared-hash")
UncategorisedDicom.objects.bulk_create(
[
UncategorisedDicom(
image="pending-upload.dcm",
user=admin_user,
series_instance_uid="uploaded-series-1",
image_blake3_hash="shared-hash",
basic_dicom_tags={
"SeriesInstanceUID": "uploaded-series-1",
"StudyInstanceUID": "study-1",
"StudyDescription": "Shared study",
"SeriesDescription": "Uploaded series",
"Modality": "CT",
},
)
]
)
response = client.get(reverse("atlas:user_uploads"))
assert response.status_code == 200
content = response.content.decode("utf-8")
assert 'class="btn btn-sm btn-warning import-partial-series-btn"' in content
assert f'data-case-id="{primary_case.pk}"' in content