def set_metadata(doc, set_list): meta = doc.get_meta() for set_info in set_list: if '=' not in set_info: printerr('Bad argument -s "%s" (must be "name=value")' % set_info) exit(1) name, value = set_info.split('=', 1) name = name.lower().strip() value = value.strip() if name in ("title", "subject", "initial_creator", "keywords", "generator", "description"): value = value.decode(stdin.encoding) func = meta.__getattribute__('set_' + name) func(value) elif name == "language": meta.set_language(value) elif name in ("modification_date", "creation_date"): try: if 'T' in value: date = DateTime.decode(value) else: date = Date.decode(value) except ValueError, error: printerr('Bad argument -s "%s": %s' % (set_info, error)) exit(1) func = meta.__getattribute__('set_' + name) func(date) else: printerr('Unknown metadata name "%s", please choose: ' % name) printerr(" title, subject, initial_creator, keywords, " "generator, description, modification_date or " "creation_date") exit(1)
def test_get_modification_date(self): meta = self.meta date = meta.get_modification_date() expected = DateTime.decode('2009-07-31T15:59:13') self.assertEqual(date, expected)
def test_decode(self): date = '2009-06-29T14:33:21' expected = datetime(2009, 6, 29, 14, 33, 21) self.assertEqual(DateTime.decode(date), expected)
def test_encode(self): date = datetime(2009, 06, 26, 11, 9, 36) expected = '2009-06-26T11:09:36' self.assertEqual(DateTime.encode(date), expected)