mirror of
https://github.com/fergalmoran/picard.git
synced 2026-03-22 21:25:14 +00:00
PICARD-1412: Consider deleted tags as changed
This commit is contained in:
committed by
Philipp Wolfer
parent
e2fc809ed9
commit
c8cd00fd7e
@@ -501,7 +501,7 @@ class File(QtCore.QObject, Item):
|
||||
for name in names:
|
||||
if not name.startswith('~') and self.supports_tag(name):
|
||||
new_values = new_metadata.getall(name)
|
||||
if not (new_values or clear_existing_tags):
|
||||
if not (new_values or clear_existing_tags or new_metadata.deleted_tags):
|
||||
continue
|
||||
orig_values = self.orig_metadata.getall(name)
|
||||
if orig_values != new_values:
|
||||
|
||||
@@ -126,7 +126,9 @@ class Metadata(dict):
|
||||
else:
|
||||
score = similarity2(a, b)
|
||||
parts.append((score, weight))
|
||||
|
||||
elif (a and name in other.deleted_tags
|
||||
or b and name in self.deleted_tags):
|
||||
parts.append((0, weight))
|
||||
return linear_combination_of_weights(parts)
|
||||
|
||||
def compare_to_release(self, release, weights):
|
||||
|
||||
@@ -152,3 +152,38 @@ class MetadataTest(PicardTestCase):
|
||||
actual = Metadata.length_score(a, b)
|
||||
self.assertAlmostEqual(expected, actual,
|
||||
msg="a={a}, b={b}".format(a=a, b=b))
|
||||
|
||||
def test_compare_is_equal(self):
|
||||
m1 = Metadata()
|
||||
m1["title"] = "title1"
|
||||
m1["tracknumber"] = "2"
|
||||
m1.length = 360
|
||||
m2 = Metadata()
|
||||
m2["title"] = "title1"
|
||||
m2["tracknumber"] = "2"
|
||||
m2.length = 360
|
||||
self.assertEqual(m1.compare(m2), m2.compare(m1))
|
||||
self.assertEqual(m1.compare(m2), 1)
|
||||
|
||||
def test_compare_lengths(self):
|
||||
m1 = Metadata()
|
||||
m1.length = 360
|
||||
m2 = Metadata()
|
||||
m2.length = 300
|
||||
self.assertAlmostEqual(m1.compare(m2), 0.998)
|
||||
|
||||
def test_compare_tracknumber_difference(self):
|
||||
m1 = Metadata()
|
||||
m1["tracknumber"] = "1"
|
||||
m2 = Metadata()
|
||||
m2["tracknumber"] = "2"
|
||||
self.assertEqual(m1.compare(m2), 0)
|
||||
|
||||
def test_compare_deleted(self):
|
||||
m1 = Metadata()
|
||||
m1["artist"] = "TheArtist"
|
||||
m1["title"] = "title1"
|
||||
m2 = Metadata()
|
||||
m2["artist"] = "TheArtist"
|
||||
m2.delete("title")
|
||||
self.assertTrue(m1.compare(m2) < 1)
|
||||
|
||||
Reference in New Issue
Block a user