Skip to content

Commit 1a2a6bc

Browse files
ronaldoussorenGlyphack
authored andcommitted
* pythongh-53502: Fixes for tests in pythongh-113363 * Use 32-bit compatible date in test_dump_naive_datetime_with_aware_datetime_option * Saving non-aware datetimes will use the old behaviour regardless of the aware_datimetime setting
1 parent 783f83c commit 1a2a6bc

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

Lib/plistlib.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def _date_from_string(s, aware_datetime):
155155

156156

157157
def _date_to_string(d, aware_datetime):
158-
if aware_datetime:
158+
if aware_datetime and d.tzinfo is not None:
159159
d = d.astimezone(datetime.UTC)
160160
return '%04d-%02d-%02dT%02d:%02d:%02dZ' % (
161161
d.year, d.month, d.day,
@@ -791,7 +791,7 @@ def _write_object(self, value):
791791
self._fp.write(struct.pack('>Bd', 0x23, value))
792792

793793
elif isinstance(value, datetime.datetime):
794-
if self._aware_datetime:
794+
if self._aware_datetime and value.tzinfo is not None:
795795
dt = value.astimezone(datetime.UTC)
796796
offset = dt - datetime.datetime(2001, 1, 1, tzinfo=datetime.UTC)
797797
f = offset.total_seconds()

Lib/test/test_plistlib.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -881,12 +881,11 @@ def test_dump_naive_datetime_with_aware_datetime_option(self):
881881
# Save a naive datetime with aware_datetime set to true. This will lead
882882
# to having different time as compared to the current machine's
883883
# timezone, which is UTC.
884-
dt = datetime.datetime(2345, 6, 7, 8, tzinfo=None)
884+
dt = datetime.datetime(2003, 6, 7, 8, tzinfo=None)
885885
for fmt in ALL_FORMATS:
886886
s = plistlib.dumps(dt, fmt=fmt, aware_datetime=True)
887887
parsed = plistlib.loads(s, aware_datetime=False)
888-
expected = dt + datetime.timedelta(seconds=time.timezone)
889-
self.assertEqual(parsed, expected)
888+
self.assertEqual(parsed, dt)
890889

891890

892891
class TestBinaryPlistlib(unittest.TestCase):

0 commit comments

Comments
 (0)