def test_get_metadata_no_tags_invalid_data(tmpdir, invalid_data): flac_dir = tmpdir.mkdir('flac') mp3_dir = tmpdir.mkdir('mp3') flac = flac_dir.join('Artist2 - 2012 - Album - 01 - Title.flac').ensure(file=True) mp3 = mp3_dir.join('Artist2 - 2012 - Album - 01 - Title.mp3').ensure(file=True) if invalid_data: flac.write('\0', 'wb') mp3.write('\0', 'wb') else: with open(os.path.join(os.path.dirname(__file__), '1khz_sine.flac'), 'rb') as f: flac.write(f.read(), 'wb') with open(os.path.join(os.path.dirname(__file__), '1khz_sine.mp3'), 'rb') as f: mp3.write(f.read(), 'wb') song = Song(str(flac), str(flac_dir), str(mp3_dir)) song.get_metadata() assert 1411333042 < song.flac_current_mtime assert 1411333042 < song.mp3_current_mtime if invalid_data: assert 1 == song.flac_current_size assert 1 == song.mp3_current_size else: assert 1000 < song.flac_current_size assert 1000 < song.mp3_current_size assert ['', '', '', '', ''] == [song.flac_artist, song.flac_date, song.flac_album, song.flac_track, song.flac_title] assert [False, False] == [song.flac_has_lyrics, song.flac_has_picture] assert all([song.bad_artist, song.bad_date, song.bad_album, song.bad_track, song.bad_title]) assert all([song.bad_lyrics, song.bad_picture]) assert not song.metadata_ok assert not song.skip_conversion
def test_skip_conversion(tmpdir): flac_dir = tmpdir.mkdir('flac') mp3_dir = tmpdir.mkdir('mp3') flac = flac_dir.join('Artist - 2001 - Album - 01 - Title.flac').ensure(file=True) with open(os.path.join(os.path.dirname(__file__), '1khz_sine.flac'), 'rb') as f: flac.write(f.read(), 'wb') tags = FLAC(str(flac)) tags.update(dict(artist='Artist', date='2001', album='Album', tracknumber='01', title='Title')) tags.save() song = Song(str(flac), str(flac_dir), str(mp3_dir)) song.get_metadata() OPTIONS['--ignore-lyrics'] = True OPTIONS['--ignore-art'] = True assert song.metadata_ok assert not song.skip_conversion mp3 = mp3_dir.join('Artist - 2001 - Album - 01 - Title.mp3').ensure(file=True) with open(os.path.join(os.path.dirname(__file__), '1khz_sine.mp3'), 'rb') as f: mp3.write(f.read(), 'wb') id3 = ID3(str(mp3)) id3.delete() id3.add(COMM(encoding=3, lang='eng', desc='', text=(' ' * PAD_COMMENT))) id3.save(v1=2) comment = json.dumps(dict( flac_mtime=int(flac.mtime()), flac_size=int(flac.size()), mp3_mtime=int(mp3.mtime()), mp3_size=int(mp3.size()) )) id3.add(COMM(encoding=3, lang='eng', desc='', text=comment)) # Now put in real data. id3.save(v1=2) song = Song(str(flac), str(flac_dir), str(mp3_dir)) song.get_metadata() assert song.metadata_ok assert song.skip_conversion
def test_get_metadata(tmpdir): flac_dir = tmpdir.mkdir('flac') mp3_dir = '/tmp/mp3_dir' flac = flac_dir.join('Artist - 2001 - Album (Disc 1) - 01 - Title.flac').ensure(file=True) with open(os.path.join(os.path.dirname(__file__), '1khz_sine.flac'), 'rb') as f: flac.write(f.read(), 'wb') tags = FLAC(str(flac)) tags.update(dict(artist='Artist', date='2001', album='Album', discnumber='1', tracknumber='01', title='Title', unsyncedlyrics='L')) image = Picture() image.type, image.mime = 3, 'image/jpeg' with open(os.path.join(os.path.dirname(__file__), '1_album_art.jpg'), 'rb') as f: image.data = f.read() tags.add_picture(image) tags.save() song = Song(str(flac), str(flac_dir), mp3_dir) song.get_metadata() assert dict() == OPTIONS assert ['Artist', '2001', 'Album'] == [song.flac_artist, song.flac_date, song.flac_album] assert ['01', 'Title'] == [song.flac_track, song.flac_title] assert [True, True] == [song.flac_has_lyrics, song.flac_has_picture] assert song.metadata_ok