Skip to content

Commit 0ece881

Browse files
GOATS-1272: Add Django 5 compatibility to tests while maintaining Django 4 support (#615)
1 parent 0516418 commit 0ece881

3 files changed

Lines changed: 28 additions & 17 deletions

File tree

tests/goats_tom/templatetags/test_tom_overrides.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import pytest
99
from django.template import Context, Template
10-
from django.utils import timezone
10+
from datetime import datetime, timedelta, timezone
1111
from tom_targets.models import Target
1212
from tom_dataproducts.models import ReducedDatum
1313

@@ -278,7 +278,7 @@ def test_spectroscopy_for_target_filters_by_dataproduct_when_provided(
278278
def test_goats_recent_photometry_limit_flag(target, values, expected_limits):
279279
from goats_tom.templatetags.tom_overrides import goats_recent_photometry
280280

281-
now = timezone.now()
281+
now = datetime.now(tz=timezone.utc)
282282
for i, value in enumerate(values):
283283
ReducedDatum.objects.create(
284284
target=target,
@@ -304,7 +304,7 @@ def test_goats_recent_photometry_limit_flag(target, values, expected_limits):
304304
def test_goats_recent_photometry_respects_limit(target, total, limit, expected_count):
305305
from goats_tom.templatetags.tom_overrides import goats_recent_photometry
306306

307-
now = timezone.now()
307+
now = datetime.now(tz=timezone.utc)
308308
for i in range(total):
309309
ReducedDatum.objects.create(
310310
target=target,
@@ -322,7 +322,7 @@ def test_goats_recent_photometry_renders_template(target, expected_string):
322322
ReducedDatum.objects.create(
323323
target=target,
324324
data_type="photometry",
325-
timestamp=timezone.now(),
325+
timestamp=datetime.now(tz=timezone.utc),
326326
value={"magnitude": 18.5, "filter": "i"},
327327
source_name="ANTARES",
328328
)

tests/goats_tom/utils/test_utils.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ def setUp(self):
2929
target_id=self.target.id,
3030
)
3131
self.data_products = DataProductFactory.create_batch(
32-
3, observation_record=self.observation_record,
32+
3,
33+
observation_record=self.observation_record,
3334
)
3435
for data_product in self.data_products:
3536
ReducedDatumFactory.create(data_product=data_product)
@@ -45,16 +46,19 @@ def test_delete_data_products_for_observation_record(self):
4546
)
4647
for data_product in self.data_products:
4748
self.assertEqual(
48-
ReducedDatum.objects.filter(data_product=data_product).count(), 0,
49+
ReducedDatum.objects.filter(data_product=data_product).count(),
50+
0,
4951
)
5052

5153
def test_delete_single_data_product(self):
5254
single_data_product = self.data_products[0]
55+
pk = single_data_product.pk
5356
delete_associated_data_products(single_data_product)
5457

55-
self.assertFalse(DataProduct.objects.filter(pk=single_data_product.pk).exists())
58+
self.assertFalse(DataProduct.objects.filter(pk=pk).exists())
5659
self.assertEqual(
57-
ReducedDatum.objects.filter(data_product=single_data_product).count(), 0,
60+
ReducedDatum.objects.filter(data_product_id=pk).count(),
61+
0,
5862
)
5963

6064
def test_delete_file_and_thumbnail(self):
@@ -70,7 +74,8 @@ def test_delete_file_and_thumbnail(self):
7074
# Check if files and thumbnails are deleted from the disk.
7175
for data_path, thumbnail_path in file_paths:
7276
self.assertFalse(
73-
os.path.exists(data_path), f"Data file {data_path} should be deleted.",
77+
os.path.exists(data_path),
78+
f"Data file {data_path} should be deleted.",
7479
)
7580
self.assertFalse(
7681
os.path.exists(thumbnail_path),
@@ -90,7 +95,8 @@ def test_success_response(self):
9095
response = build_json_response()
9196
self.assertEqual(response.status_code, status.HTTP_200_OK)
9297
self.assertEqual(
93-
response.content.decode(), '{"status": "success", "message": ""}',
98+
response.content.decode(),
99+
'{"status": "success", "message": ""}',
94100
)
95101

96102
def test_error_response_with_custom_message(self):
@@ -108,7 +114,8 @@ def test_error_response_with_custom_status(self):
108114
error_message = "Not found"
109115
error_status = status.HTTP_404_NOT_FOUND
110116
response = build_json_response(
111-
error_message=error_message, error_status=error_status,
117+
error_message=error_message,
118+
error_status=error_status,
112119
)
113120
self.assertEqual(response.status_code, error_status)
114121
self.assertEqual(
@@ -123,7 +130,8 @@ def test_error_response_with_custom_message_and_status(self):
123130
error_message = "Unauthorized access"
124131
error_status = status.HTTP_401_UNAUTHORIZED
125132
response = build_json_response(
126-
error_message=error_message, error_status=error_status,
133+
error_message=error_message,
134+
error_status=error_status,
127135
)
128136
self.assertEqual(response.status_code, error_status)
129137
self.assertEqual(
@@ -135,7 +143,8 @@ def test_error_response_with_custom_message_and_status(self):
135143
@pytest.fixture()
136144
def non_empty_file_list():
137145
return Table(
138-
rows=[("file1", "red1"), ("file2", "red2")], names=("name", "reduction"),
146+
rows=[("file1", "red1"), ("file2", "red2")],
147+
names=("name", "reduction"),
139148
)
140149

141150

tests/goats_tom/views/test_observation_record_delete.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ def setUp(self):
3434
DataProductFactory(observation_record=self.observation_record)
3535

3636
def test_form_valid(self):
37+
observation_record_pk = self.observation_record.pk
38+
3739
# Ensure the ObservationRecord and DataProducts exist.
3840
self.assertIsNotNone(
39-
ObservationRecord.objects.filter(pk=self.observation_record.pk).first(),
41+
ObservationRecord.objects.filter(pk=observation_record_pk).first(),
4042
)
4143
self.assertEqual(
4244
DataProduct.objects.filter(
@@ -50,20 +52,20 @@ def test_form_valid(self):
5052
request.user = self.user
5153
view = ObservationRecordDeleteView()
5254
view.request = request
53-
view.kwargs = {"pk": self.observation_record.pk}
55+
view.kwargs = {"pk": observation_record_pk}
5456
view.object = self.observation_record
5557

5658
# Call the form_valid method
5759
response = view.form_valid(form=MagicMock())
5860

5961
# Test that the ObservationRecord is deleted.
6062
with pytest.raises(ObservationRecord.DoesNotExist):
61-
ObservationRecord.objects.get(pk=self.observation_record.pk)
63+
ObservationRecord.objects.get(pk=observation_record_pk)
6264

6365
# Test that associated DataProducts are deleted
6466
self.assertEqual(
6567
DataProduct.objects.filter(
66-
observation_record=self.observation_record,
68+
observation_record_id=observation_record_pk,
6769
).count(),
6870
0,
6971
)

0 commit comments

Comments
 (0)