|
3 | 3 | # file 'LICENSE', which is part of this source code package. |
4 | 4 | # |
5 | 5 | from datetime import date, datetime |
| 6 | +from dateutil import parser as du_parser |
| 7 | +import json |
6 | 8 | from python_easy_json import JSONObject |
7 | 9 | from tests.base_test import BaseTestCase |
8 | 10 | from typing import List |
@@ -159,3 +161,21 @@ def test_incomplete_cake_models(self): |
159 | 161 | # are missing in this case. |
160 | 162 | self.assertIsInstance(obj.topping[0].id, str) |
161 | 163 | self.assertEqual(obj.topping[0].id, "5001") |
| 164 | + |
| 165 | + def test_to_dict_datetime_conversion(self): |
| 166 | + """ Test that when using the "to_dict()" method that datetime values are handled correctly. """ |
| 167 | + |
| 168 | + input = json.loads(self.json_data.simple) |
| 169 | + input['field_date'] = du_parser.parse(input['field_date']).date() |
| 170 | + input['field_datetime'] = du_parser.parse(input['field_datetime']) |
| 171 | + |
| 172 | + obj = SimpleModel(input) |
| 173 | + |
| 174 | + # Test that date and datetime values are not converted to string |
| 175 | + data = obj.to_dict(dates_to_str=False) |
| 176 | + self.assertIsInstance(data['field_date'], date) |
| 177 | + self.assertIsInstance(data['field_datetime'], datetime) |
| 178 | + |
| 179 | + data = obj.to_dict(dates_to_str=True) |
| 180 | + self.assertIsInstance(data['field_date'], str) |
| 181 | + self.assertIsInstance(data['field_datetime'], str) |
0 commit comments