def test_get_all_metadata_at_once(): path = os.path.join(DATA_DIR, "test.ogg") data = metadata.Metadata(path) expected = { "title": "Peer Gynt Suite no. 1, op. 46: I. Morning", "artist": "Edvard Grieg", "album_artist": "Edvard Grieg", "album": "Peer Gynt Suite no. 1, op. 46", "date": datetime.date(2012, 8, 15), "track_number": 1, "musicbrainz_albumid": uuid.UUID("a766da8b-8336-47aa-a3ee-371cc41ccc75"), "musicbrainz_recordingid": uuid.UUID("bd21ac48-46d8-4e78-925f-d9cc2a294656"), "musicbrainz_artistid": uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"), "musicbrainz_albumartistid": uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"), } assert data.all() == expected
def test_can_get_pictures(name): path = os.path.join(DATA_DIR, name) data = metadata.Metadata(path) pictures = data.get("pictures") assert len(pictures) == 1 cover_data = data.get_picture("cover_front") assert cover_data["mimetype"].startswith("image/") assert len(cover_data["content"]) > 0 assert type(cover_data["content"]) == bytes assert type(cover_data["description"]) == str
def test_track_metadata_serializer(path, expected, mocker): path = os.path.join(DATA_DIR, path) data = metadata.Metadata(path) get_picture = mocker.patch.object(data, "get_picture") expected["album"]["cover_data"] = get_picture.return_value serializer = metadata.TrackMetadataSerializer(data=data) assert serializer.is_valid(raise_exception=True) is True assert serializer.validated_data == expected get_picture.assert_called_once_with("cover_front", "other")
def test_metadata_fallback_ogg_theora(mocker): path = os.path.join(DATA_DIR, "with_cover.ogg") data = metadata.Metadata(path) assert isinstance(data._file, mutagen.oggtheora.OggTheora) assert isinstance(data.fallback, metadata.Metadata) assert isinstance(data.fallback._file, mutagen.oggvorbis.OggVorbis) expected_result = data.fallback.get("pictures") fallback_get = mocker.spy(data.fallback, "get") assert expected_result is not None assert data.get("pictures", "default") == expected_result fallback_get.assert_called_once_with("pictures", "default")
def test_can_get_metadata_all(): path = os.path.join(DATA_DIR, "test.ogg") data = metadata.Metadata(path) expected = { "title": "Peer Gynt Suite no. 1, op. 46: I. Morning", "artist": "Edvard Grieg", "album_artist": "Edvard Grieg; Musopen Symphony Orchestra", "artists": "Edvard Grieg; Musopen Symphony Orchestra", "album": "Peer Gynt Suite no. 1, op. 46", "date": "2012-08-15", "position": "1", "disc_number": "1", "musicbrainz_albumid": "a766da8b-8336-47aa-a3ee-371cc41ccc75", "mbid": "bd21ac48-46d8-4e78-925f-d9cc2a294656", "musicbrainz_artistid": "013c8e5b-d72a-4cd3-8dee-6c64d6125823", "musicbrainz_albumartistid": "013c8e5b-d72a-4cd3-8dee-6c64d6125823;5b4d7d2d-36df-4b38-95e3-a964234f520f", "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/", "copyright": "Someone", "genre": "Classical", "comment": "Hello there", } assert data.all() == expected
def test_can_get_metadata_from_opus_file(field, value): path = os.path.join(DATA_DIR, "test.opus") data = metadata.Metadata(path) assert data.get(field) == value
def test_can_get_metadata_from_flac_file_not_crash_if_empty(): path = os.path.join(DATA_DIR, "sample.flac") data = metadata.Metadata(path) with pytest.raises(metadata.TagNotFound): data.get("test")
def test_can_get_metadata_from_flac_file(field, value): path = os.path.join(DATA_DIR, "sample.flac") data = metadata.Metadata(path) assert data.get(field) == value
def test_can_get_metadata_from_id3_mp3_file(field, value): path = os.path.join(DATA_DIR, "test.mp3") data = metadata.Metadata(path) assert str(data.get(field)) == value