Skip to content

Commit e2ca1bf

Browse files
committed
change function name
1 parent 741a23e commit e2ca1bf

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

backend/tests/utils/generic_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def update_contained_resource_field(
9494
)
9595
return json_data
9696

97-
def format_future_dates(dates: List[Union[date, datetime]], mode: str = "auto") -> List[str]:
97+
def format_date_types(dates: List[Union[date, datetime]], mode: str = "auto") -> List[str]:
9898
"""
9999
Accepts a list of date or datetime objects and returns them as strings:
100100
- datetime → ISO 8601 string with timezone if present

backend/tests/utils/test_generic_utils.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
import unittest
44
from src.models.utils.generic_utils import form_json
5-
from tests.utils.generic_utils import load_json_data
5+
from tests.utils.generic_utils import load_json_data, format_date_types
6+
7+
import unittest
8+
from datetime import datetime, date
69

710

811
class TestFormJson(unittest.TestCase):
@@ -70,3 +73,25 @@ def test_elements_whitespace_and_case_are_handled(self):
7073
)
7174
self.assertEqual(res["id"], self.response["id"])
7275
self.assertEqual(res["meta"]["versionId"], self.response["version"])
76+
77+
78+
class TestFormatFutureDates(unittest.TestCase):
79+
def test_date_mode_formats_dates_and_datetimes(self):
80+
inputs = [date(2100, 1, 2), datetime(2100, 1, 3, 12, 0, 0)]
81+
expected = ["2100-01-02", "2100-01-03"]
82+
self.assertEqual(format_date_types(inputs, mode="date"), expected)
83+
84+
def test_datetime_mode_formats_dates_and_datetimes(self):
85+
inputs = [date(2100, 1, 2), datetime(2100, 1, 3, 12, 0, 0)]
86+
expected = ["2100-01-02", "2100-01-03T12:00:00"]
87+
self.assertEqual(format_date_types(inputs, mode="datetime"), expected)
88+
89+
def test_default_auto_mode_is_currently_unsupported(self):
90+
# Current implementation raises TypeError when mode is not 'date' or 'datetime'
91+
inputs = [date(2100, 1, 2)]
92+
with self.assertRaises(TypeError):
93+
format_date_types(inputs) # default mode is 'auto'
94+
95+
96+
if __name__ == "__main__":
97+
unittest.main()

backend/tests/utils/values_for_tests.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from dataclasses import dataclass
44
from decimal import Decimal
5-
from .generic_utils import format_future_dates
5+
from .generic_utils import format_date_types
66
from datetime import datetime, timedelta
77

88

@@ -301,13 +301,13 @@ class InvalidValues:
301301
now + timedelta(days=730)
302302
]
303303

304-
for_future_dates = format_future_dates(sample_inputs, mode = "date")
304+
for_future_dates = format_date_types(sample_inputs, mode = "date")
305305

306306
# Strings which are not in acceptable date time format
307307
for_date_time_string_formats_for_relaxed_timezone = [
308308
"", # Empty string
309309
"invalid", # Invalid format
310-
*format_future_dates(sample_inputs, mode = "datetime"),
310+
*format_date_types(sample_inputs, mode = "datetime"),
311311
"20000101", # Date digits only (i.e. without hypens)
312312
"20000101000000", # Date and time digits only
313313
"200001010000000000", # Date, time and timezone digits only

0 commit comments

Comments
 (0)