Esempio n. 1
0
 def test_delitem(self):
     orig_m2 = Metadata(self.m2)
     mp = MultiMetadataProxy(self.m1, self.m2, self.m3)
     del mp["key2"]
     del mp["key3"]
     self.assertIn("key2", self.m1.deleted_tags)
     self.assertIn("key3", self.m1.deleted_tags)
     self.assertEqual(orig_m2, self.m2)
Esempio n. 2
0
 def test_settitem(self):
     orig_m2 = Metadata(self.m2)
     mp = MultiMetadataProxy(self.m1, self.m2, self.m3)
     mp["key1"] = "foo1"
     mp["key2"] = "foo2"
     mp["key3"] = "foo3"
     mp["key4"] = "foo4"
     mp["key5"] = "foo5"
     self.assertEqual("foo1", self.m1["key1"])
     self.assertEqual("foo2", self.m1["key2"])
     self.assertEqual("foo3", self.m1["key3"])
     self.assertEqual("foo4", self.m1["key4"])
     self.assertEqual("foo5", self.m1["key5"])
     self.assertEqual(orig_m2, self.m2)
Esempio n. 3
0
 def update_file_metadata(self, file):
     if file not in self.linked_files:
         return
     # Run the scripts for the file to allow usage of
     # file specific metadata and variables
     if config.setting["clear_existing_tags"]:
         metadata = Metadata(self.orig_metadata)
         metadata_proxy = MultiMetadataProxy(metadata, file.metadata)
         self.run_scripts(metadata_proxy)
     else:
         metadata = Metadata(file.metadata)
         metadata.update(self.orig_metadata)
         self.run_scripts(metadata)
     # Apply changes to the track's metadata done manually after the scripts ran
     meta_diff = self.metadata.diff(self.scripted_metadata)
     metadata.update(meta_diff)
     # Images are not affected by scripting, always use the tracks current images
     metadata.images = self.metadata.images
     file.copy_metadata(metadata)
     file.update(signal=False)
     self.update()
Esempio n. 4
0
 def test_gettitem(self):
     mp = MultiMetadataProxy(self.m1, self.m2, self.m3)
     self.assertEqual("m1.val1", mp["key1"])
     self.assertEqual("m1.val2", mp["key2"])
     self.assertEqual("m2.val3", mp["key3"])
     self.assertEqual("m3.val4", mp["key4"])
Esempio n. 5
0
 def test_get_attribute(self):
     mp = MultiMetadataProxy(self.m1, self.m2, self.m3)
     self.assertEqual(mp.deleted_tags, self.m1.deleted_tags)
Esempio n. 6
0
 def get_metadata_object():
     return MultiMetadataProxy(Metadata())