131
137
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13), 'Date'),
139
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3), 'Date'),
133
141
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, tzinfo=FixedOffset()), 'Date'),
134
142
'1999-10-13T05:03Z')
135
143
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
136
144
'1999-10-13T05:03+05:30')
137
145
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, tzinfo=FixedOffset('-', 11, 30)), 'Date'),
138
146
'1999-10-13T05:03-11:30')
147
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27), 'Date'),
148
'1999-10-13T05:03:27Z')
139
149
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, tzinfo=FixedOffset()), 'Date'),
140
150
'1999-10-13T05:03:27Z')
141
151
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
142
152
'1999-10-13T05:03:27+05:30')
143
153
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, tzinfo=FixedOffset('-', 11, 30)), 'Date'),
144
154
'1999-10-13T05:03:27-11:30')
155
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300), 'Date'),
156
'1999-10-13T05:03:27.1243Z')
145
157
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300, tzinfo=FixedOffset()), 'Date'),
146
158
'1999-10-13T05:03:27.1243Z')
147
159
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
152
164
self.failUnlessRaises(XmpValueError, tag._convert_to_string, 'invalid', 'Date')
153
165
self.failUnlessRaises(XmpValueError, tag._convert_to_string, None, 'Date')
167
@unittest.skipIf(pytz is None, 'install python-tz to run this test')
168
def test_convert_to_string_date_with_real_timezones(self):
169
tag = XmpTag('Xmp.xmp.CreateDate')
170
self.assertEqual(tag.type, 'Date')
171
t = pytz.timezone('UTC').localize(datetime.datetime(2011, 2, 2, 10, 52, 4))
172
self.assertEqual(tag._convert_to_string(t, 'Date'), '2011-02-02T10:52:04Z')
173
t = pytz.timezone('CET').localize(datetime.datetime(2011, 2, 2, 10, 52, 4))
174
self.assertEqual(tag._convert_to_string(t, 'Date'), '2011-02-02T10:52:04+01:00')
155
176
def test_convert_to_python_integer(self):
157
178
tag = XmpTag('Xmp.xmpMM.SaveID')