Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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")
Exemplo n.º 4
0
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")
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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")
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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