Skip to content

Commit bdb71f4

Browse files
committed
Fix tests
1 parent feffb6b commit bdb71f4

6 files changed

Lines changed: 106 additions & 65 deletions

File tree

app/tests/algorithms_tests/test_tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ def test_execute_algorithm_job_sets_on_failed_jobs(
558558

559559
# Sanity: task should run till execution
560560
assert len(callbacks) == 1
561-
assert "ComponentJob.execute" in str(callbacks[0])
561+
assert "grandchallenge.components.tasks.provision_job" in str(callbacks[0])
562562

563563
job.refresh_from_db()
564564
assert job.status == Job.PENDING

app/tests/algorithms_tests/test_views.py

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,7 +1684,11 @@ def test_create_job_with_multiple_faulty_existing_image_inputs(
16841684

16851685
@pytest.mark.django_db
16861686
def test_algorithm_image_activate(
1687-
settings, client, algorithm_io_image, mocker
1687+
settings,
1688+
client,
1689+
algorithm_io_image,
1690+
mocker,
1691+
django_capture_on_commit_callbacks,
16881692
):
16891693
mocker.patch.object(
16901694
AlgorithmImage, "calculate_size_in_registry", lambda x: 100
@@ -1711,26 +1715,29 @@ def test_algorithm_image_activate(
17111715
editor, user = UserFactory.create_batch(2)
17121716
alg.add_editor(editor)
17131717

1714-
response = get_view_for_user(
1715-
viewname="algorithms:image-activate",
1716-
client=client,
1717-
method=client.post,
1718-
reverse_kwargs={"slug": alg.slug},
1719-
data={"algorithm_image": i1.pk},
1720-
user=user,
1721-
follow=True,
1722-
)
1718+
with django_capture_on_commit_callbacks(execute=True):
1719+
response = get_view_for_user(
1720+
viewname="algorithms:image-activate",
1721+
client=client,
1722+
method=client.post,
1723+
reverse_kwargs={"slug": alg.slug},
1724+
data={"algorithm_image": i1.pk},
1725+
user=user,
1726+
follow=True,
1727+
)
1728+
17231729
assert response.status_code == 403
17241730

1725-
response2 = get_view_for_user(
1726-
viewname="algorithms:image-activate",
1727-
client=client,
1728-
method=client.post,
1729-
reverse_kwargs={"slug": alg.slug},
1730-
data={"algorithm_image": i1.pk},
1731-
user=editor,
1732-
follow=True,
1733-
)
1731+
with django_capture_on_commit_callbacks(execute=True):
1732+
response2 = get_view_for_user(
1733+
viewname="algorithms:image-activate",
1734+
client=client,
1735+
method=client.post,
1736+
reverse_kwargs={"slug": alg.slug},
1737+
data={"algorithm_image": i1.pk},
1738+
user=editor,
1739+
follow=True,
1740+
)
17341741

17351742
assert response2.status_code == 200
17361743
i1.refresh_from_db()
@@ -1743,15 +1750,17 @@ def test_algorithm_image_activate(
17431750
i2.is_in_registry = False
17441751
i2.save()
17451752

1746-
response4 = get_view_for_user(
1747-
viewname="algorithms:image-activate",
1748-
client=client,
1749-
method=client.post,
1750-
reverse_kwargs={"slug": alg.slug},
1751-
data={"algorithm_image": i2.pk},
1752-
user=editor,
1753-
follow=True,
1754-
)
1753+
with django_capture_on_commit_callbacks(execute=True):
1754+
response4 = get_view_for_user(
1755+
viewname="algorithms:image-activate",
1756+
client=client,
1757+
method=client.post,
1758+
reverse_kwargs={"slug": alg.slug},
1759+
data={"algorithm_image": i2.pk},
1760+
user=editor,
1761+
follow=True,
1762+
)
1763+
17551764
assert response4.status_code == 200
17561765
assert "Image validation and upload to registry in progress." in str(
17571766
response4.content
@@ -1760,15 +1769,18 @@ def test_algorithm_image_activate(
17601769
i2.import_status = ImportStatusChoices.INITIALIZED
17611770
i2.is_desired_version = False
17621771
i2.save()
1763-
response6 = get_view_for_user(
1764-
viewname="algorithms:image-activate",
1765-
client=client,
1766-
method=client.post,
1767-
reverse_kwargs={"slug": alg.slug},
1768-
data={"algorithm_image": i2.pk},
1769-
user=editor,
1770-
follow=True,
1771-
)
1772+
1773+
with django_capture_on_commit_callbacks(execute=True):
1774+
response6 = get_view_for_user(
1775+
viewname="algorithms:image-activate",
1776+
client=client,
1777+
method=client.post,
1778+
reverse_kwargs={"slug": alg.slug},
1779+
data={"algorithm_image": i2.pk},
1780+
user=editor,
1781+
follow=True,
1782+
)
1783+
17721784
assert response6.status_code == 200
17731785
i1.refresh_from_db()
17741786
i2.refresh_from_db()

app/tests/core_tests/test_celery.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from grandchallenge.core.celery import acks_late_micro_short_task
55

66

7+
@pytest.mark.django_db
78
def test_task_errors_raised_when_invoked(
89
settings, django_capture_on_commit_callbacks
910
):
@@ -23,8 +24,10 @@ def test_task():
2324

2425
assert counter == 1
2526

26-
with django_capture_on_commit_callbacks(execute=True):
27-
result = on_commit(test_task.apply_async)
27+
with django_capture_on_commit_callbacks() as callbacks:
28+
on_commit(test_task.apply_async)
29+
30+
result = callbacks[0]()
2831

2932
assert result.status == "SUCCESS"
3033
assert counter == 2

app/tests/evaluation_tests/test_api.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,13 @@ def test_update_successful_external_evaluation(
403403
claimed_eval.submission.creator,
404404
}
405405

406-
def test_timeout(self, client, settings, claimed_external_evaluation):
406+
def test_timeout(
407+
self,
408+
client,
409+
settings,
410+
claimed_external_evaluation,
411+
django_capture_on_commit_callbacks,
412+
):
407413
settings.EXTERNAL_EVALUATION_TIMEOUT_IN_SECONDS = 0
408414
settings.task_eager_propagates = (True,)
409415
settings.task_always_eager = (True,)
@@ -414,15 +420,17 @@ def test_timeout(self, client, settings, claimed_external_evaluation):
414420

415421
claimed_eval = claimed_external_evaluation.evaluation
416422

417-
response = get_view_for_user(
418-
viewname="api:evaluation-update-external-evaluation",
419-
client=client,
420-
method=client.patch,
421-
user=claimed_external_evaluation.external_evaluator,
422-
reverse_kwargs={"pk": claimed_eval.pk},
423-
data={"metrics": "foo-bar", "status": "Succeeded"},
424-
content_type="application/json",
425-
)
423+
with django_capture_on_commit_callbacks(execute=True):
424+
response = get_view_for_user(
425+
viewname="api:evaluation-update-external-evaluation",
426+
client=client,
427+
method=client.patch,
428+
user=claimed_external_evaluation.external_evaluator,
429+
reverse_kwargs={"pk": claimed_eval.pk},
430+
data={"metrics": "foo-bar", "status": "Succeeded"},
431+
content_type="application/json",
432+
)
433+
426434
assert response.status_code == 400
427435
assert response.json() == {
428436
"status": "The evaluation was not updated in time."

app/tests/profiles_tests/test_views.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,12 @@ def test_one_click_unsubscribe_functionality_for_newsletter(
313313
)
314314
@pytest.mark.django_db
315315
def test_one_click_unsubscribe_user_mismatch(
316-
client, settings, viewname, subscription_attr, new_subscription_preference
316+
client,
317+
settings,
318+
viewname,
319+
subscription_attr,
320+
new_subscription_preference,
321+
django_capture_on_commit_callbacks,
317322
):
318323
# Override the celery settings
319324
settings.task_eager_propagates = (True,)
@@ -329,20 +334,25 @@ def test_one_click_unsubscribe_user_mismatch(
329334
token = user.user_profile.unsubscribe_token
330335

331336
other_user = UserFactory()
332-
response = get_view_for_user(
333-
client=client,
334-
method=client.post,
335-
viewname=viewname,
336-
reverse_kwargs={"token": token},
337-
user=other_user,
338-
)
337+
338+
with django_capture_on_commit_callbacks(execute=True):
339+
response = get_view_for_user(
340+
client=client,
341+
method=client.post,
342+
viewname=viewname,
343+
reverse_kwargs={"token": token},
344+
user=other_user,
345+
)
346+
339347
assert response.status_code == 302
340348
user.user_profile.refresh_from_db()
349+
341350
# token owner is unsubscribed
342351
assert (
343352
getattr(user.user_profile, subscription_attr)
344353
== new_subscription_preference
345354
)
355+
346356
# token owner and requesting user are added to a verification user set
347357
user_set = VerificationUserSet.objects.get()
348358
assert user in user_set.users.all()

app/tests/verification_tests/test_forms.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
VerificationForm,
88
)
99
from tests.factories import UserFactory
10+
from tests.utils import get_view_for_user
1011
from tests.verification_tests.factories import VerificationFactory
1112

1213

@@ -172,7 +173,9 @@ def test_user_can_verify(self):
172173

173174
assert form.is_valid()
174175

175-
def test_user_can_not_verify_other_token(self, settings):
176+
def test_user_can_not_verify_other_token(
177+
self, settings, client, django_capture_on_commit_callbacks
178+
):
176179
settings.task_eager_propagates = (True,)
177180
settings.task_always_eager = (True,)
178181

@@ -181,12 +184,17 @@ def test_user_can_not_verify_other_token(self, settings):
181184

182185
u2 = UserFactory()
183186

184-
form = ConfirmEmailForm(
185-
user=u2, token=v1.token, data={"token": v1.token}
186-
)
187-
188-
assert not form.is_valid()
189-
assert ["Token is invalid"] == form.errors["token"]
187+
with django_capture_on_commit_callbacks(execute=True):
188+
response = get_view_for_user(
189+
client=client,
190+
method=client.post,
191+
viewname="verifications:confirm",
192+
reverse_kwargs={"token": v1.token},
193+
user=u2,
194+
)
195+
196+
assert response.status_code == 200
197+
assert ["Token is invalid"] == response.context["form"].errors["token"]
190198

191199
u1.refresh_from_db()
192200
u2.refresh_from_db()

0 commit comments

Comments
 (0)