fix collection ordering

This commit is contained in:
Ross
2024-02-27 08:41:15 +00:00
parent 9d0cf66441
commit 99eb6037d7
5 changed files with 107 additions and 10 deletions
+45 -3
View File
@@ -107,10 +107,52 @@ def create_case(
case.presentation.add(presentation)
case.pathological_process.add(pathological_process)
case.author.add(user)
case.editor.add(user)
return case
@pytest.fixture
def make_case(create_subspecialty, create_condition, create_presentation, create_pathological_process):
def _make_case(
title="Sample Case",
description="Sample description",
history="Sample history",
discussion="Sample discussion",
report="Sample report",
diagnostic_certainty=Case.CertaintyChoices.LIKELY,
verified=True,
created_date=timezone.now(),
published_date=timezone.now(),
archive=False,
open_access=True,
):
subspecialty = create_subspecialty
condition = create_condition
presentation = create_presentation
pathological_process = create_pathological_process
user, _ = get_user_model().objects.get_or_create(
username="Test User 2", password="Test Password", email="test@emai.com")
case = Case.objects.create(
title=title,
description=description,
history=history,
discussion=discussion,
report=report,
diagnostic_certainty=diagnostic_certainty,
verified=verified,
created_date=created_date,
published_date=published_date,
archive=archive,
open_access=open_access,
)
case.subspecialty.add(subspecialty)
case.condition.add(condition)
case.presentation.add(presentation)
case.pathological_process.add(pathological_process)
case.author.add(user)
return case
return _make_case
@pytest.fixture
def create_series(create_modality, create_examination, create_plane, create_contrast, create_user):
@@ -141,12 +183,12 @@ def create_series_image():
@pytest.fixture
def create_series_finding():
return SeriesFinding.objects.create()
return SeriesFinding.objects.create(description="Test Description")
@pytest.fixture
def create_case_collection():
return CaseCollection.objects.create()
return CaseCollection.objects.create(name="Test Collection")
@pytest.fixture
+47 -2
View File
@@ -1,7 +1,7 @@
from django.urls import reverse
import pytest
from atlas.models import Finding, Condition
from atlas.models import CaseCollection, Finding, Condition
#from atlas.views import GenericExamViews
#@pytest.mark.django_db
@@ -80,4 +80,49 @@ def test_create_case(db, create_case):
def test_create_series(db, create_series):
series = create_series
assert series
assert series
def test_collection(db, create_case_collection, create_case, make_case, client):
collection: CaseCollection = create_case_collection
# create some cases
case1 = create_case
case2 = make_case()
case3 = make_case(title="Case 3")
case4 = make_case(title="Case 4")
collection.cases.set([case1, case2, case3, case4])
case5 = make_case(title="Case 5")
assert collection.cases.all().count() == 4
collection.add_case(case5)
assert collection.cases.all().count() == 5
assert collection.get_case_by_index(0) == case1
assert collection.get_case_by_index(1) == case2
assert collection.get_case_by_index(2) == case3
assert collection.get_case_by_index(3) == case4
assert collection.get_case_by_index(4) == case5
assert collection.get_absolute_url() == reverse("atlas:collection_detail", kwargs={"pk": collection.pk})
assert collection.get_take_url() == reverse("atlas:collection_take_start", kwargs={"pk": collection.pk})
new_order = [
case5.pk,
case1.pk,
case2.pk,
case3.pk,
case4.pk
]
response = client.post(reverse("atlas:exam_json_edit", kwargs={"pk":collection.pk} ), json=new_order, follow=True)
# Check that sorting the exam works
assert response.status_code == 200
assert response.content == b"OK"