58 lines
1.8 KiB
Python
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 |