def test_can_correctly_determine_utc_offset(self): # Ensure that the DateTime type really uses the correct UTC offset # depending on the passed datetime value. class SummerWinterTZ(tzinfo): def utcoffset(self, dt): if dt.month in (10, 11, 12, 1, 2, 3): return timedelta(0) return timedelta(hours=1) def dst(self, dt): return timedelta(hours=1) tz = SummerWinterTZ() xsd_dt = xsd.DateTime() assert_equals('2013-11-26T00:00:00+00:00', xsd_dt.xmlvalue(datetime(2013, 11, 26, tzinfo=tz))) assert_equals('2013-07-26T00:00:00+01:00', xsd_dt.xmlvalue(datetime(2013, 7, 26, tzinfo=tz)))
def test_rendering_timezones(self): fake_tz = timezone(timedelta(hours=1, minutes=15)) dt = datetime(2001, 10, 26, 21, 32, 52, tzinfo=fake_tz) rendered_xml = xsd.DateTime().xmlvalue(dt) self.assertEqual('2001-10-26T21:32:52+01:15', rendered_xml)
def test_rendering_timezones(self): fake_tz = FixedOffset(1, 15, 'dummy zone') dt = datetime(2001, 10, 26, 21, 32, 52, tzinfo=fake_tz) rendered_xml = xsd.DateTime().xmlvalue(dt) self.assertEqual('2001-10-26T21:32:52+01:15', rendered_xml)