mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-19 22:23:59 +00:00
PICARD-2135: Fixed overwriting and deleting WOAR frame
This commit is contained in:
@@ -489,6 +489,7 @@ class ID3File(File):
|
||||
else:
|
||||
tags.add(id3.WCOP(url=values[0]))
|
||||
elif frameid == 'WOAR' and valid_urls:
|
||||
tags.delall('WOAR')
|
||||
for url in values:
|
||||
tags.add(id3.WOAR(url=url))
|
||||
elif frameid.startswith('T') or frameid == 'MVNM':
|
||||
@@ -580,7 +581,7 @@ class ID3File(File):
|
||||
if frame.FrameID == 'POPM' and frame.email == user_email:
|
||||
del tags[key]
|
||||
elif real_name in self.__translate:
|
||||
del tags[real_name]
|
||||
tags.delall(real_name)
|
||||
elif name.lower() in self.__rtranslate_freetext_ci:
|
||||
delall_ci(tags, 'TXXX:' + self.__rtranslate_freetext_ci[name.lower()])
|
||||
elif real_name in self.__translate_freetext:
|
||||
|
||||
@@ -454,6 +454,28 @@ class CommonId3Tests:
|
||||
self.assertIn('http://example.com/1', loaded_licenses)
|
||||
self.assertIn('http://example.com/2', loaded_licenses)
|
||||
|
||||
@skipUnlessTestfile
|
||||
def test_woar_not_duplicated(self):
|
||||
metadata = Metadata({
|
||||
'website': 'http://example.com/1'
|
||||
})
|
||||
loaded_metadata = save_and_load_metadata(self.filename, metadata)
|
||||
self.assertEqual(metadata['website'], loaded_metadata['website'])
|
||||
metadata['website'] = 'http://example.com/2'
|
||||
loaded_metadata = save_and_load_metadata(self.filename, metadata)
|
||||
self.assertEqual(metadata['website'], loaded_metadata['website'])
|
||||
|
||||
@skipUnlessTestfile
|
||||
def test_woar_delete(self):
|
||||
metadata = Metadata({
|
||||
'website': 'http://example.com/1'
|
||||
})
|
||||
loaded_metadata = save_and_load_metadata(self.filename, metadata)
|
||||
self.assertEqual(metadata['website'], loaded_metadata['website'])
|
||||
del metadata['website']
|
||||
loaded_metadata = save_and_load_metadata(self.filename, metadata)
|
||||
self.assertNotIn('website', loaded_metadata)
|
||||
|
||||
|
||||
class MP3Test(CommonId3Tests.Id3TestCase):
|
||||
testfile = 'test.mp3'
|
||||
|
||||
Reference in New Issue
Block a user