mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-24 00:26:08 +00:00
PICARD-1332: Deleted tags on tracks get applied to matched files
This commit is contained in:
@@ -175,7 +175,8 @@ class File(QtCore.QObject, Item):
|
||||
deleted_tags = self.metadata.deleted_tags
|
||||
self.metadata.copy(metadata)
|
||||
if preserve_deleted:
|
||||
self.metadata.deleted_tags = deleted_tags
|
||||
for tag in deleted_tags:
|
||||
self.metadata.delete(tag)
|
||||
for tag, values in saved_metadata.items():
|
||||
self.metadata.set(tag, values)
|
||||
|
||||
|
||||
@@ -301,7 +301,7 @@ class Metadata(dict):
|
||||
values = [string_(value) for value in values if value]
|
||||
if len(values):
|
||||
self.set(name, values)
|
||||
else:
|
||||
elif name in self:
|
||||
self.delete(name)
|
||||
|
||||
def add(self, name, value):
|
||||
|
||||
@@ -36,7 +36,7 @@ class MetadataTest(unittest.TestCase):
|
||||
def tearDown(self):
|
||||
pass
|
||||
|
||||
def test_metadata_set(self):
|
||||
def test_metadata_setitem(self):
|
||||
self.assertEqual(["single1-value"], dict.get(self.metadata,"single1"))
|
||||
self.assertEqual(["single2-value"], dict.get(self.metadata,"single2"))
|
||||
self.assertEqual(self.multi1, dict.get(self.metadata,"multi1"))
|
||||
@@ -66,10 +66,31 @@ class MetadataTest(unittest.TestCase):
|
||||
self.assertNotIn("single1", self.metadata)
|
||||
self.assertIn("single1", self.metadata.deleted_tags)
|
||||
|
||||
def test_metadata_implicit_delete(self):
|
||||
self.metadata["single2"] = ""
|
||||
self.assertNotIn("single2", self.metadata)
|
||||
self.assertIn("single2", self.metadata.deleted_tags)
|
||||
|
||||
self.metadata["unknown"] = ""
|
||||
self.assertNotIn("unknown", self.metadata)
|
||||
self.assertNotIn("unknown", self.metadata.deleted_tags)
|
||||
|
||||
def test_metadata_set_explicit_empty(self):
|
||||
self.metadata.delete("single1")
|
||||
self.metadata.set("single1", [])
|
||||
self.assertIn("single1", self.metadata)
|
||||
self.assertNotIn("single1", self.metadata.deleted_tags)
|
||||
self.assertEqual([], self.metadata.getall("single1"))
|
||||
|
||||
def test_metadata_undelete(self):
|
||||
self.metadata.delete("single1")
|
||||
self.assertNotIn("single1", self.metadata)
|
||||
self.assertIn("single1", self.metadata.deleted_tags)
|
||||
|
||||
self.metadata["single1"] = "value1"
|
||||
self.assertIn("single1", self.metadata)
|
||||
self.assertNotIn("single1", self.metadata.deleted_tags)
|
||||
|
||||
def test_metadata_update(self):
|
||||
m = Metadata()
|
||||
m["old"] = "old-value"
|
||||
|
||||
Reference in New Issue
Block a user