Skip to content
Snippets Groups Projects
Forked from funkwhale / funkwhale
7940 commits behind the upstream repository.
test_metadata.py 2.21 KiB
import unittest
import os
import datetime
from test_plus.test import TestCase
from funkwhale_api.music import metadata

DATA_DIR = os.path.dirname(os.path.abspath(__file__))


class TestMetadata(TestCase):

    def test_can_get_metadata_from_ogg_file(self, *mocks):
        path = os.path.join(DATA_DIR, 'test.ogg')
        data = metadata.Metadata(path)

        self.assertEqual(
            data.get('title'),
            'Peer Gynt Suite no. 1, op. 46: I. Morning'
        )
        self.assertEqual(
            data.get('artist'),
            'Edvard Grieg'
        )
        self.assertEqual(
            data.get('album'),
            'Peer Gynt Suite no. 1, op. 46'
        )
        self.assertEqual(
            data.get('date'),
            datetime.date(2012, 8, 15),
        )
        self.assertEqual(
            data.get('track_number'),
            1
        )

        self.assertEqual(
            data.get('musicbrainz_albumid'),
            'a766da8b-8336-47aa-a3ee-371cc41ccc75')
        self.assertEqual(
            data.get('musicbrainz_recordingid'),
            'bd21ac48-46d8-4e78-925f-d9cc2a294656')
        self.assertEqual(
            data.get('musicbrainz_artistid'),
            '013c8e5b-d72a-4cd3-8dee-6c64d6125823')

    def test_can_get_metadata_from_id3_mp3_file(self, *mocks):
        path = os.path.join(DATA_DIR, 'test.mp3')
        data = metadata.Metadata(path)

        self.assertEqual(
            data.get('title'),
            'Bend'
        )
        self.assertEqual(
            data.get('artist'),
            'Binärpilot'
        )
        self.assertEqual(
            data.get('album'),
            'You Can\'t Stop Da Funk'
        )
        self.assertEqual(
            data.get('date'),
            datetime.date(2006, 2, 7),
        )
        self.assertEqual(
            data.get('track_number'),
            1
        )

        self.assertEqual(
            data.get('musicbrainz_albumid'),
            'ce40cdb1-a562-4fd8-a269-9269f98d4124')
        self.assertEqual(
            data.get('musicbrainz_recordingid'),
            'f269d497-1cc0-4ae4-a0c4-157ec7d73fcb')
        self.assertEqual(
            data.get('musicbrainz_artistid'),
            '9c6bddde-6228-4d9f-ad0d-03f6fcb19e13')