40
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\x08' \
41
'\x02\x00\x00\x00\x90wS\xde\x00\x00\x00\x0cIDATx\x9cc```\x00\x00\x00\x04' \
42
'\x00\x01\xf6\x178U\x00\x00\x00\x00IEND\xaeB`\x82'
40
'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x00H\x00\x00\xff\xdb' \
41
'\x00C\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \
42
'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \
43
'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \
44
'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\x0b\x08' \
45
'\x00\x01\x00\x01\x01\x01\x11\x00\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01' \
46
'\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06' \
47
'\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05' \
48
'\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa' \
49
'\x07"q\x142\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0$3br\x82\t\n\x16\x17' \
50
"\x18\x19\x1a%&\'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85" \
51
'\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5' \
52
'\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5' \
53
'\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4' \
54
'\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xda' \
55
'\x00\x08\x01\x01\x00\x00?\x00\x92\xbf\xff\xd9'
45
58
class TestImageMetadata(unittest.TestCase):
48
61
# Create an empty image file
49
fd, self.pathname = tempfile.mkstemp(suffix='.png')
50
os.write(fd, EMPTY_PNG_DATA)
62
fd, self.pathname = tempfile.mkstemp(suffix='.jpg')
63
os.write(fd, EMPTY_JPG_DATA)
52
65
# Write some metadata
53
66
m = ImageMetadata(self.pathname)
58
71
m['Iptc.Application2.DateCreated'] = [datetime.date(2004, 7, 13)]
59
72
m['Xmp.dc.format'] = ('image', 'jpeg')
60
73
m['Xmp.dc.subject'] = ['image', 'test', 'pyexiv2']
74
m.comment = 'Hello World!'
62
76
self.metadata = ImageMetadata(self.pathname)
478
492
self.failUnlessRaises(KeyError, self.metadata.__delitem__, key)
494
##########################
495
# Test the image comment #
496
##########################
498
def test_get_comment(self):
500
self.failUnlessEqual(self.metadata.comment, 'Hello World!')
502
def test_set_comment(self):
504
comment = 'Welcome to the real world.'
505
self.metadata.comment = comment
506
self.failUnlessEqual(self.metadata.comment, comment)
507
self.metadata.comment = None
508
self.failUnlessEqual(self.metadata.comment, '')
510
def test_delete_comment(self):
512
del self.metadata.comment
513
self.failUnlessEqual(self.metadata.comment, '')
480
515
####################
481
516
# Test metadata copy
482
517
####################
484
519
def _set_up_other(self):
485
self.other = ImageMetadata.from_buffer(EMPTY_PNG_DATA)
520
self.other = ImageMetadata.from_buffer(EMPTY_JPG_DATA)
487
522
def test_copy_metadata(self):
488
523
self.metadata.read()