diff --git a/picard/metadata.py b/picard/metadata.py index cea33f598..39b2c4d33 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -123,6 +123,8 @@ class Metadata(MutableMapping): ('album', 12), ('tracknumber', 6), ('totaltracks', 5), + ('discnumber', 5), + ('totaldiscs', 4), ] multi_valued_joiner = MULTI_VALUED_JOINER @@ -172,7 +174,7 @@ class Metadata(MutableMapping): a = self[name] b = other[name] if a and b: - if name in ('tracknumber', 'totaltracks'): + if name in ('tracknumber', 'totaltracks', 'discnumber', 'totaldiscs'): try: ia = int(a) ib = int(b) diff --git a/test/test_metadata.py b/test/test_metadata.py index 1d4d45014..b0c544741 100644 --- a/test/test_metadata.py +++ b/test/test_metadata.py @@ -280,7 +280,20 @@ class MetadataTest(PicardTestCase): m1["tracknumber"] = "1" m2 = Metadata() m2["tracknumber"] = "2" + m3 = Metadata() + m3["tracknumber"] = "2" self.assertEqual(m1.compare(m2), 0) + self.assertEqual(m2.compare(m3), 1) + + def test_compare_discnumber_difference(self): + m1 = Metadata() + m1["discnumber"] = "1" + m2 = Metadata() + m2["discnumber"] = "2" + m3 = Metadata() + m3["discnumber"] = "2" + self.assertEqual(m1.compare(m2), 0) + self.assertEqual(m2.compare(m3), 1) def test_compare_deleted(self): m1 = Metadata()