aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Tilloy <olivier@tilloy.net>2011-08-04 09:10:46 +0200
committerOlivier Tilloy <olivier@tilloy.net>2011-08-04 09:10:46 +0200
commit234dbc462b15365e8909bffadf54b05649e77f3f (patch)
tree92a0c37460c2b141dc07025da175e30611f189cc
parent5d6fc27aa0dee1d9793b027a1215cc4c124cc7c9 (diff)
downloadpyexiv2-234dbc462b15365e8909bffadf54b05649e77f3f.tar.gz
Added some (failing) unit tests for date conversion for dates prior to year 1900.
-rw-r--r--test/exif.py6
-rw-r--r--test/iptc.py16
-rw-r--r--test/xmp.py20
3 files changed, 42 insertions, 0 deletions
diff --git a/test/exif.py b/test/exif.py
index 38e19b7..10646db 100644
--- a/test/exif.py
+++ b/test/exif.py
@@ -79,12 +79,18 @@ class TestExifTag(unittest.TestCase):
'2009:03:01 12:54:28')
self.assertEqual(tag._convert_to_string(datetime.date(2009, 03, 01)),
'2009:03:01 00:00:00')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 29)),
+ '1899:12:31 23:59:59')
+ self.assertEqual(tag._convert_to_string(datetime.date(1899, 12, 31)),
+ '1899:12:31 00:00:00')
# Valid values: dates
tag = ExifTag('Exif.GPSInfo.GPSDateStamp')
self.assertEqual(tag.type, 'Ascii')
self.assertEqual(tag._convert_to_string(datetime.date(2009, 03, 01)),
'2009:03:01')
+ self.assertEqual(tag._convert_to_string(datetime.date(1899, 12, 31)),
+ '1899:12:31')
# Valid values: strings
tag = ExifTag('Exif.Image.Copyright')
diff --git a/test/iptc.py b/test/iptc.py
index ec631cb..c207f5a 100644
--- a/test/iptc.py
+++ b/test/iptc.py
@@ -108,12 +108,18 @@ class TestIptcTag(unittest.TestCase):
self.assertEqual(tag.type, 'Date')
self.assertEqual(tag._convert_to_string(datetime.date(2009, 2, 4)),
'2009-02-04')
+ self.assertEqual(tag._convert_to_string(datetime.date(1899, 12, 31)),
+ '1899-12-31')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13)),
'1999-10-13')
self.assertEqual(tag._convert_to_string(datetime.datetime(2009, 2, 4)),
'2009-02-04')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31)),
+ '1899-12-31')
self.assertEqual(tag._convert_to_string(datetime.datetime(2009, 2, 4, 10, 52, 37)),
'2009-02-04')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59)),
+ '1899-12-31')
# Invalid values
self.failUnlessRaises(IptcValueError, tag._convert_to_string, 'invalid')
@@ -152,14 +158,24 @@ class TestIptcTag(unittest.TestCase):
'10:52:04+05:30')
self.assertEqual(tag._convert_to_string(datetime.time(10, 52, 4, tzinfo=FixedOffset('-', 4, 0))),
'10:52:04-04:00')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59)),
+ '23:59:59+00:00')
self.assertEqual(tag._convert_to_string(datetime.datetime(2007, 2, 7, 10, 52, 4)),
'10:52:04+00:00')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, 999)),
+ '23:59:59+00:00')
self.assertEqual(tag._convert_to_string(datetime.datetime(2007, 2, 7, 10, 52, 4, 478)),
'10:52:04+00:00')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, tzinfo=FixedOffset())),
+ '23:59:59+00:00')
self.assertEqual(tag._convert_to_string(datetime.datetime(2007, 2, 7, 10, 52, 4, tzinfo=FixedOffset())),
'10:52:04+00:00')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, tzinfo=FixedOffset('+', 5, 30))),
+ '23:59:59+05:30')
self.assertEqual(tag._convert_to_string(datetime.datetime(2007, 2, 7, 10, 52, 4, tzinfo=FixedOffset('+', 5, 30))),
'10:52:04+05:30')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, tzinfo=FixedOffset('-', 4, 0))),
+ '23:59:59-04:00')
self.assertEqual(tag._convert_to_string(datetime.datetime(2007, 2, 7, 10, 52, 4, tzinfo=FixedOffset('-', 4, 0))),
'10:52:04-04:00')
diff --git a/test/xmp.py b/test/xmp.py
index 532f1e2..7e7522e 100644
--- a/test/xmp.py
+++ b/test/xmp.py
@@ -134,32 +134,52 @@ class TestXmpTag(unittest.TestCase):
self.assertEqual(tag.type, 'Date')
self.assertEqual(tag._convert_to_string(datetime.date(2009, 2, 4), 'Date'),
'2009-02-04')
+ self.assertEqual(tag._convert_to_string(datetime.date(1899, 12, 31), 'Date'),
+ '1899-12-31')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13), 'Date'),
'1999-10-13')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3), 'Date'),
'1999-10-13T05:03Z')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59), 'Date'),
+ '1899-12-31T23:59Z')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, tzinfo=FixedOffset()), 'Date'),
'1999-10-13T05:03Z')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, tzinfo=FixedOffset()), 'Date'),
+ '1899-12-31T23:59Z')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
'1999-10-13T05:03+05:30')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, tzinfo=FixedOffset('-', 11, 30)), 'Date'),
'1999-10-13T05:03-11:30')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
+ '1899-12-31T23:59+05:30')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27), 'Date'),
'1999-10-13T05:03:27Z')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59), 'Date'),
+ '1899-12-31T23:59:59Z')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, tzinfo=FixedOffset()), 'Date'),
'1999-10-13T05:03:27Z')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, tzinfo=FixedOffset()), 'Date'),
+ '1899-12-31T23:59:59Z')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
'1999-10-13T05:03:27+05:30')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, tzinfo=FixedOffset('-', 11, 30)), 'Date'),
'1999-10-13T05:03:27-11:30')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
+ '1899-12-31T23:59:59+05:30')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300), 'Date'),
'1999-10-13T05:03:27.1243Z')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, 124300), 'Date'),
+ '1899-12-31T23:59:59.1243Z')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300, tzinfo=FixedOffset()), 'Date'),
'1999-10-13T05:03:27.1243Z')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, 124300, tzinfo=FixedOffset()), 'Date'),
+ '1899-12-31T23:59:59.1243Z')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
'1999-10-13T05:03:27.1243+05:30')
self.assertEqual(tag._convert_to_string(datetime.datetime(1999, 10, 13, 5, 3, 27, 124300, tzinfo=FixedOffset('-', 11, 30)), 'Date'),
'1999-10-13T05:03:27.1243-11:30')
+ self.assertEqual(tag._convert_to_string(datetime.datetime(1899, 12, 31, 23, 59, 59, 124300, tzinfo=FixedOffset('+', 5, 30)), 'Date'),
+ '1899-12-31T23:59:59.1243+05:30')
# Invalid values
self.failUnlessRaises(XmpValueError, tag._convert_to_string, 'invalid', 'Date')
self.failUnlessRaises(XmpValueError, tag._convert_to_string, None, 'Date')