PICARD-1586: Test proper deletion of case insensitive tags

This commit is contained in:
Philipp Wolfer
2019-09-04 19:33:21 +02:00
parent 9d0e1232c6
commit a7faed5cca
3 changed files with 47 additions and 1 deletions

View File

@@ -8,7 +8,14 @@ from picard.formats import (
ext_to_format,
)
from .common import CommonTests
from .common import (
CommonTests,
load_metadata,
load_raw,
save_metadata,
save_raw,
skipUnlessTestfile,
)
from .coverart import CommonCoverArtTests
@@ -29,6 +36,19 @@ class CommonAsfTests:
for tag in self.replaygain_tags.keys():
self.assertTrue(fmt.supports_tag(tag))
@skipUnlessTestfile
def test_replaygain_tags_not_duplicated(self):
# Ensure values are not duplicated on repeated save
tags = {
'Replaygain_Album_Peak': '-6.48 dB'
}
save_raw(self.filename, tags)
loaded_metadata = load_metadata(self.filename)
save_metadata(self.filename, loaded_metadata)
raw_metadata = load_raw(self.filename)
self.assertFalse('Replaygain_Album_Peak' in raw_metadata)
self.assertTrue('REPLAYGAIN_ALBUM_PEAK' in raw_metadata)
class ASFTest(CommonAsfTests.AsfTestCase):
testfile = 'test.asf'

View File

@@ -211,6 +211,18 @@ class CommonId3Tests:
for (key, value) in self.replaygain_tags.items():
self.assertEqual(loaded_metadata[key], value, '%s: %r != %r' % (key, loaded_metadata[key], value))
@skipUnlessTestfile
def test_replaygain_tags_not_duplicated(self):
# Ensure values are not duplicated on repeated save
tags = mutagen.id3.ID3Tags()
tags.add(mutagen.id3.TXXX(desc='Replaygain_Album_Peak', text='0.978475'))
save_raw(self.filename, tags)
loaded_metadata = load_metadata(self.filename)
save_metadata(self.filename, loaded_metadata)
raw_metadata = load_raw(self.filename)
self.assertFalse('TXXX:Replaygain_Album_Peak' in raw_metadata)
self.assertTrue('TXXX:REPLAYGAIN_ALBUM_PEAK' in raw_metadata)
class MP3Test(CommonId3Tests.Id3TestCase):
testfile = 'test.mp3'

View File

@@ -5,6 +5,8 @@ from picard.formats import ext_to_format
from .common import (
CommonTests,
load_metadata,
load_raw,
save_metadata,
save_raw,
skipUnlessTestfile,
)
@@ -53,6 +55,18 @@ class MP4Test(CommonTests.TagFormatsTestCase):
for (key, value) in self.replaygain_tags.items():
self.assertEqual(loaded_metadata[key], value, '%s: %r != %r' % (key, loaded_metadata[key], value))
@skipUnlessTestfile
def test_replaygain_tags_not_duplicated(self):
# Ensure values are not duplicated on repeated save
tags = mutagen.mp4.MP4Tags()
tags['----:com.apple.iTunes:Replaygain_Album_Peak'] = [b'-6.48 dB']
save_raw(self.filename, tags)
loaded_metadata = load_metadata(self.filename)
save_metadata(self.filename, loaded_metadata)
raw_metadata = load_raw(self.filename)
self.assertFalse('----:com.apple.iTunes:Replaygain_Album_Peak' in raw_metadata)
self.assertTrue('----:com.apple.iTunes:REPLAYGAIN_ALBUM_PEAK' in raw_metadata)
class Mp4CoverArtTest(CommonCoverArtTests.CoverArtTestCase):
testfile = 'test.m4a'