diff --git a/mutagen/id3/_id3v1.py b/mutagen/id3/_id3v1.py index a553c692..7e25f338 100644 --- a/mutagen/id3/_id3v1.py +++ b/mutagen/id3/_id3v1.py @@ -175,14 +175,10 @@ def MakeID3v1(id3): text = b"" v1[name] = text + (b"\x00" * (30 - len(text))) - cmnt = b"" if "COMM" in id3: cmnt = id3["COMM"].text[0].encode('latin1', 'replace')[:30] else: - for key, frame in id3.items(): - if key.startswith("COMM:"): - cmnt = frame.text[0].encode('latin1', 'replace')[:30] - break + cmnt = b"" v1["comment"] = cmnt.ljust(30, b"\x00") if "TRCK" in id3: diff --git a/tests/test_id3.py b/tests/test_id3.py index ba27e6d0..ea3a8a8f 100644 --- a/tests/test_id3.py +++ b/tests/test_id3.py @@ -56,6 +56,16 @@ def test_PIC_in_23(self): finally: os.remove(filename) + def test_comm_roundtrip(self): + audio = ID3(self.silence) + filename = get_temp_empty(".mp3") + audio.add(COMM(encoding=0, desc="FOO::quux", text="bar")) + assert len(audio.getall("COMM")) == 1 + audio.save(filename, v1=2) + new = ID3(filename) + assert new.getall("COMM")[0].desc == "FOO::quux" + assert len(new.getall("COMM")) == 1 + def test_bad_tyer(self): audio = ID3(self.bad_tyer) self.failIf("TYER" in audio) @@ -689,12 +699,6 @@ def test_v1_genre(self): v1tag = MakeID3v1(tag) self.failUnlessEqual(ParseID3v1(v1tag)["TCON"].genres, ["Pop"]) - def test_make_comm_from_hashkey(self): - frame = COMM(encoding=0, lang="eng", - desc="ID3v1 Comment", text="hello") - tag = {frame.HashKey: frame} - self.failUnlessEqual(ParseID3v1(MakeID3v1(tag))["COMM"], "hello") - def test_v1_comment(self): written = MakeID3v1({"COMM": COMM(encoding=0, text="abcdefghijklmnopqrstuvwxyzABCDEFG")})