|
2 | 2 |
|
3 | 3 | import unittest |
4 | 4 | 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 |
6 | 9 |
|
7 | 10 |
|
8 | 11 | class TestFormJson(unittest.TestCase): |
@@ -70,3 +73,25 @@ def test_elements_whitespace_and_case_are_handled(self): |
70 | 73 | ) |
71 | 74 | self.assertEqual(res["id"], self.response["id"]) |
72 | 75 | 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() |
0 commit comments