Пример #1
0
    def test_get_album_list(self):
        self._make_request('getAlbumList', error=10)
        self._make_request('getAlbumList', {'type': 'kraken'}, error=0)
        self._make_request('getAlbumList', {
            'type': 'random',
            'size': 'huge'
        },
                           error=0)
        self._make_request('getAlbumList', {
            'type': 'newest',
            'offset': 'minus one'
        },
                           error=0)

        types = [
            'random', 'newest', 'highest', 'frequent', 'recent',
            'alphabeticalByName', 'alphabeticalByArtist', 'starred'
        ]
        for t in types:
            self._make_request('getAlbumList', {'type': t},
                               tag='albumList',
                               skip_post=True)

        rv, child = self._make_request('getAlbumList', {'type': 'random'},
                                       tag='albumList',
                                       skip_post=True)

        with db_session:
            Folder.get().delete()
        rv, child = self._make_request('getAlbumList', {'type': 'random'},
                                       tag='albumList')
        self.assertEqual(len(child), 0)
Пример #2
0
    def setUp(self):
        super().setUp()

        with db_session:
            root = Folder(name="Root", root=True, path="tests")
            folder = Folder(name="Folder", path="tests/assets", parent=root)
            artist = Artist(name="Artist")
            album = Album(name="Album", artist=artist)

            # Populate folder ids
            root = Folder.get(name="Root")
            folder = Folder.get(name="Folder")

            track = Track(
                title="Track",
                album=album,
                artist=artist,
                disc=1,
                number=1,
                path="tests/assets/empty",
                folder=folder,
                root_folder=root,
                duration=2,
                bitrate=320,
                last_modification=0,
            )

            self.folderid = folder.id
            self.artistid = artist.id
            self.albumid = album.id
            self.trackid = track.id
            self.user = User.get(name="alice")
Пример #3
0
    def test_get_album_list(self):
        self._make_request("getAlbumList", error=10)
        self._make_request("getAlbumList", {"type": "kraken"}, error=0)
        self._make_request("getAlbumList", {"type": "random", "size": "huge"}, error=0)
        self._make_request(
            "getAlbumList", {"type": "newest", "offset": "minus one"}, error=0
        )

        types = [
            "random",
            "newest",
            "highest",
            "frequent",
            "recent",
            "alphabeticalByName",
            "alphabeticalByArtist",
            "starred",
        ]
        for t in types:
            self._make_request(
                "getAlbumList", {"type": t}, tag="albumList", skip_post=True
            )

        rv, child = self._make_request(
            "getAlbumList", {"type": "random"}, tag="albumList", skip_post=True
        )

        with db_session:
            Folder.get().delete()
        rv, child = self._make_request(
            "getAlbumList", {"type": "random"}, tag="albumList"
        )
        self.assertEqual(len(child), 0)
Пример #4
0
    def test_get_random_songs(self):
        self._make_request("getRandomSongs", {"size": "8 floors"}, error=0)
        self._make_request("getRandomSongs", {"fromYear": "year"}, error=0)
        self._make_request("getRandomSongs", {"toYear": "year"}, error=0)
        self._make_request("getRandomSongs", {"musicFolderId": "idid"},
                           error=0)
        self._make_request("getRandomSongs", {"musicFolderId": 1234567890},
                           error=70)

        rv, child = self._make_request("getRandomSongs",
                                       tag="randomSongs",
                                       skip_post=True)

        with db_session:
            fid = Folder.get().id
        self._make_request(
            "getRandomSongs",
            {
                "fromYear": -52,
                "toYear": "1984",
                "genre": "some cryptic subgenre youve never heard of",
                "musicFolderId": fid,
            },
            tag="randomSongs",
        )
Пример #5
0
    def test_get_indexes(self):
        self._make_request("getIndexes", {"musicFolderId": "abcdef"}, error=0)
        self._make_request("getIndexes", {"musicFolderId": 1234567890},
                           error=70)
        self._make_request("getIndexes", {"ifModifiedSince": "quoi"}, error=0)

        rv, child = self._make_request(
            "getIndexes",
            {"ifModifiedSince": int(time.time() * 1000 + 1000)},
            tag="indexes",
        )
        self.assertEqual(len(child), 0)

        with db_session:
            fid = Folder.get(name="Empty root").id
        rv, child = self._make_request("getIndexes",
                                       {"musicFolderId": str(fid)},
                                       tag="indexes")
        self.assertEqual(len(child), 0)

        rv, child = self._make_request("getIndexes", tag="indexes")
        self.assertEqual(len(child), 3)
        for i, letter in enumerate(["A", "B", "C"]):
            self.assertEqual(child[i].get("name"), letter)
            self.assertEqual(len(child[i]), 1)
            self.assertEqual(child[i][0].get("name"), letter + "rtist")
Пример #6
0
    def test_get_album_list(self):
        self._make_request('getAlbumList', error = 10)
        self._make_request('getAlbumList', { 'type': 'kraken' }, error = 0)
        self._make_request('getAlbumList', { 'type': 'random', 'size': 'huge' }, error = 0)
        self._make_request('getAlbumList', { 'type': 'newest', 'offset': 'minus one' }, error = 0)

        types = [ 'random', 'newest', 'highest', 'frequent', 'recent', 'alphabeticalByName',
            'alphabeticalByArtist', 'starred' ]
        for t in types:
            self._make_request('getAlbumList', { 'type': t }, tag = 'albumList', skip_post = True)

        rv, child = self._make_request('getAlbumList', { 'type': 'random' }, tag = 'albumList', skip_post = True)

        with db_session:
            Folder.get().delete()
        rv, child = self._make_request('getAlbumList', { 'type': 'random' }, tag = 'albumList')
        self.assertEqual(len(child), 0)
Пример #7
0
    def test_get_random_songs(self):
        self._make_request('getRandomSongs', { 'size': '8 floors' }, error = 0)
        self._make_request('getRandomSongs', { 'fromYear': 'year' }, error = 0)
        self._make_request('getRandomSongs', { 'toYear': 'year' }, error = 0)
        self._make_request('getRandomSongs', { 'musicFolderId': 'idid' }, error = 0)
        self._make_request('getRandomSongs', { 'musicFolderId': uuid.uuid4() }, error = 70)

        rv, child = self._make_request('getRandomSongs', tag = 'randomSongs', skip_post = True)

        with db_session:
            fid = Folder.get().id
        self._make_request('getRandomSongs', { 'fromYear': -52, 'toYear': '1984', 'genre': 'some cryptic subgenre youve never heard of', 'musicFolderId': fid }, tag = 'randomSongs')
Пример #8
0
    def setUp(self):
        super().setUp()

        with db_session:
            folder = Folder(
                name="Root",
                path=os.path.abspath("tests/assets"),
                root=True,
                cover_art="cover.jpg",
            )
            folder = Folder.get(name="Root")
            self.folderid = folder.id

            artist = Artist(name="Artist")
            album = Album(artist=artist, name="Album")

            track = Track(
                title="23bytes",
                number=1,
                disc=1,
                artist=artist,
                album=album,
                path=os.path.abspath("tests/assets/23bytes"),
                root_folder=folder,
                folder=folder,
                duration=2,
                bitrate=320,
                last_modification=0,
            )
            self.trackid = track.id

            self.formats = ["mp3", "flac", "ogg", "m4a"]
            for i in range(len(self.formats)):
                track_embeded_art = Track(
                    title="[silence]",
                    number=1,
                    disc=1,
                    artist=artist,
                    album=album,
                    path=os.path.abspath(
                        "tests/assets/formats/silence.{}".format(
                            self.formats[i])),
                    root_folder=folder,
                    folder=folder,
                    duration=2,
                    bitrate=320,
                    last_modification=0,
                )
                self.formats[i] = track_embeded_art.id
Пример #9
0
    def test_get_indexes(self):
        self._make_request('getIndexes', { 'musicFolderId': 'abcdef' }, error = 0)
        self._make_request('getIndexes', { 'musicFolderId': str(uuid.uuid4()) }, error = 70)
        self._make_request('getIndexes', { 'ifModifiedSince': 'quoi' }, error = 0)

        rv, child = self._make_request('getIndexes', { 'ifModifiedSince': int(time.time() * 1000 + 1000) }, tag = 'indexes')
        self.assertEqual(len(child), 0)

        with db_session:
            fid = Folder.get(name = 'Empty root').id
        rv, child = self._make_request('getIndexes', { 'musicFolderId': str(fid) }, tag = 'indexes')
        self.assertEqual(len(child), 0)

        rv, child = self._make_request('getIndexes', tag = 'indexes')
        self.assertEqual(len(child), 3)
        for i, letter in enumerate([ 'A', 'B', 'C' ]):
            self.assertEqual(child[i].get('name'), letter)
            self.assertEqual(len(child[i]), 1)
            self.assertEqual(child[i][0].get('name'), letter + 'rtist')
Пример #10
0
    def test_get_indexes(self):
        self._make_request('getIndexes', { 'musicFolderId': 'abcdef' }, error = 0)
        self._make_request('getIndexes', { 'musicFolderId': str(uuid.uuid4()) }, error = 70)
        self._make_request('getIndexes', { 'ifModifiedSince': 'quoi' }, error = 0)

        rv, child = self._make_request('getIndexes', { 'ifModifiedSince': int(time.time() * 1000 + 1000) }, tag = 'indexes')
        self.assertEqual(len(child), 0)

        with db_session:
            fid = Folder.get(name = 'Empty root').id
        rv, child = self._make_request('getIndexes', { 'musicFolderId': str(fid) }, tag = 'indexes')
        self.assertEqual(len(child), 0)

        rv, child = self._make_request('getIndexes', tag = 'indexes')
        self.assertEqual(len(child), 3)
        for i, letter in enumerate([ 'A', 'B', 'C' ]):
            self.assertEqual(child[i].get('name'), letter)
            self.assertEqual(len(child[i]), 1)
            self.assertEqual(child[i][0].get('name'), letter + 'rtist')
Пример #11
0
    def test_get_random_songs(self):
        self._make_request('getRandomSongs', {'size': '8 floors'}, error=0)
        self._make_request('getRandomSongs', {'fromYear': 'year'}, error=0)
        self._make_request('getRandomSongs', {'toYear': 'year'}, error=0)
        self._make_request('getRandomSongs', {'musicFolderId': 'idid'},
                           error=0)
        self._make_request('getRandomSongs', {'musicFolderId': uuid.uuid4()},
                           error=70)

        rv, child = self._make_request('getRandomSongs',
                                       tag='randomSongs',
                                       skip_post=True)

        with db_session:
            fid = Folder.get().id
        self._make_request('getRandomSongs', {
            'fromYear': -52,
            'toYear': '1984',
            'genre': 'some cryptic subgenre youve never heard of',
            'musicFolderId': fid
        },
                           tag='randomSongs')
Пример #12
0
    def test_get_album_list(self):
        self._make_request("getAlbumList", error=10)
        self._make_request("getAlbumList", {"type": "kraken"}, error=0)
        self._make_request("getAlbumList", {
            "type": "random",
            "size": "huge"
        },
                           error=0)
        self._make_request("getAlbumList", {
            "type": "newest",
            "offset": "minus one"
        },
                           error=0)
        self._make_request("getAlbumList", {"type": "byYear"}, error=10)
        self._make_request(
            "getAlbumList",
            {
                "type": "byYear",
                "fromYear": "Epoch",
                "toYear": "EOL"
            },
            error=0,
        )
        self._make_request("getAlbumList", {"type": "byGenre"}, error=10)

        types_and_count = [
            ("random", 1),
            ("newest", 1),
            ("highest", 1),
            ("frequent", 1),
            ("recent", 0),  # never played
            ("alphabeticalByName", 1),
            (
                "alphabeticalByArtist",
                0,  # somehow expected due to funky "album" definition on this endpoint
            ),
            ("starred", 0),  # nothing's starred
        ]
        for t, c in types_and_count:
            rv, child = self._make_request("getAlbumList", {"type": t},
                                           tag="albumList",
                                           skip_post=t == "random")
            self.assertEqual(len(child), c)

        rv, child = self._make_request(
            "getAlbumList",
            {
                "type": "byYear",
                "fromYear": 100,
                "toYear": 200
            },
            tag="albumList",
        )
        self.assertEqual(len(child), 1)
        rv, child = self._make_request(
            "getAlbumList",
            {
                "type": "byYear",
                "fromYear": 200,
                "toYear": 300
            },
            tag="albumList",
        )
        self.assertEqual(len(child), 0)
        # Need more data to properly test ordering
        rv, child = self._make_request(
            "getAlbumList",
            {
                "type": "byYear",
                "fromYear": 200,
                "toYear": 100
            },
            tag="albumList",
        )
        self.assertEqual(len(child), 1)

        rv, child = self._make_request("getAlbumList", {
            "type": "byGenre",
            "genre": "FARTS"
        },
                                       tag="albumList")
        self.assertEqual(len(child), 0)

        rv, child = self._make_request("getAlbumList", {
            "type": "byGenre",
            "genre": "Lampshade"
        },
                                       tag="albumList")
        self.assertEqual(len(child), 1)

        with db_session:
            Folder.get().delete()
        rv, child = self._make_request("getAlbumList", {"type": "random"},
                                       tag="albumList")
        self.assertEqual(len(child), 0)