コード例 #1
0
    def test_num_handler_add_items(self):
        refs = ThreadingFuture()
        refs.set([Ref(uri='track1'), Ref(uri='track2')])
        self.coreMock.playlists.get_items = MagicMock(return_value=refs)

        self.dispatcher.handleCommand('num9')

        self.coreMock.playlists.get_items.assert_called_with(
            'local:playlist:playlist9.m3u')
        self.coreMock.tracklist.add.assert_called_with(
            uris=['track1', 'track2'])
        self.coreMock.playback.play.assert_called_with()
コード例 #2
0
def test_get_albums(r_get_mock, get_music_root_mock, emby_client):
    expected = [
        Ref(name=u'American Football',
            type='album',
            uri='emby:album:6e4a2da7df0502650bb9b091312c3dbf'),
        Ref(name=u'American Football',
            type='album',
            uri='emby:album:ca498ea939b28593744c051d9f5e74ed'),
        Ref(name=u'American Football',
            type='album',
            uri='emby:album:0db6395ab76b6edbaba3a51ef23d0aa3')
    ]

    with open('tests/data/get_albums0.json', 'r') as f:
        r_get_mock.return_value = json.load(f)

    assert emby_client.get_albums(0) == expected
コード例 #3
0
def browse(c, type=None, order=('type', 'name COLLATE NOCASE'), **kwargs):
    filters, params = _filters(_BROWSE_FILTERS[type], **kwargs)
    sql = _BROWSE_QUERIES[type] % (
        ' AND '.join(filters) or '1',
        ', '.join(order)
    )
    logger.debug('SQLite browse query %r: %s', params, sql)
    return [Ref(**row) for row in c.execute(sql, params)]
コード例 #4
0
def test_get_tracks(r_get_mock, get_music_root_mock, emby_client):
    expected = [
        Ref(name=u'The One With the Tambourine',
            type='track',
            uri='emby:track:eb6c305bdb1e40d3b46909473c22d906'),
        Ref(name=u'Letters and Packages',
            type='track',
            uri='emby:track:7739d3830818c7aacf6c346172384914'),
        Ref(name=u'Five Silent Miles',
            type='track',
            uri='emby:track:f84df9f70e592a3abda82b1d78026608')
    ]

    with open('tests/data/get_tracks0.json', 'r') as f:
        r_get_mock.return_value = json.load(f)

    assert emby_client.get_tracks(0) == expected
コード例 #5
0
def test_get_artists(r_get_mock, get_music_root_mock, emby_client):
    expected = [
        Ref(name=u'Chairlift',
            type='artist',
            uri='emby:artist:e0361aff955c30f5a6dcc6fcf0c9d1cf'),
        Ref(name=u'Hans Zimmer',
            type='artist',
            uri='emby:artist:36de3368f493ebca94a55a411cc87862'),
        Ref(name=u'The Menzingers',
            type='artist',
            uri='emby:artist:21c8f78763231ece7defd07b5f3f56be')
    ]

    with open('tests/data/get_artists0.json', 'r') as f:
        r_get_mock.return_value = json.load(f)

    assert emby_client.get_artists() == expected
コード例 #6
0
def test_playlist():
    from mopidy.m3u.translator import playlist

    assert playlist(b'test.m3u') == Playlist(uri='m3u:test.m3u', name='test')
    assert playlist(b'test.m3u', [Ref(uri='file:///test.mp3')],
                    1) == Playlist(uri='m3u:test.m3u',
                                   name='test',
                                   tracks=[Track(uri='file:///test.mp3')],
                                   last_modified=1000)
コード例 #7
0
 def test_default_folders(self):
     assert self.library.browse("soundcloud:directory") == [
         Ref(
             name="Following",
             type="directory",
             uri="soundcloud:directory:following",
         ),
         Ref(name="Liked",
             type="directory",
             uri="soundcloud:directory:liked"),
         Ref(name="Sets", type="directory",
             uri="soundcloud:directory:sets"),
         Ref(
             name="Stream",
             type="directory",
             uri="soundcloud:directory:stream",
         ),
     ]
コード例 #8
0
 def test_default_folders(self):
     try:
         from mopidy.models import Ref
     except ImportError as e:
         self.skipTest(e.message)
     self.assertEquals(self.library.browse('soundcloud:directory'), [
         Ref(name='Following',
             type='directory',
             uri='soundcloud:directory:following'),
         Ref(name='Liked',
             type='directory',
             uri='soundcloud:directory:liked'),
         Ref(name='Sets', type='directory',
             uri='soundcloud:directory:sets'),
         Ref(name='Stream',
             type='directory',
             uri='soundcloud:directory:stream')
     ])
コード例 #9
0
 def test_add_folder(self):
     try:
         from mopidy.models import Ref
     except ImportError as e:
         self.skipTest(e.message)
     self.assertEquals(
         new_folder('Test', ['test']),
         Ref(name='Test', type='directory',
             uri='soundcloud:directory:test'))
コード例 #10
0
ファイル: playlists.py プロジェクト: zippyy/mopidy_plex
    def as_list(self):
        '''Get a list of the currently available playlists.

        Returns a list of `mopidy.models.Ref` objects referring to the playlists.
        In other words, no information about the playlists’ content is given.'''
        logger.debug('Playlist: as_list')
        audiolists = [l for l in self.plex.playlists() if l.playlistType == 'audio']
        return [Ref(uri='plex:playlist:{}'.format(playlist.ratingKey), 
                    name=playlist.title)
                for playlist in audiolists]
コード例 #11
0
def test_playlist():
    from mopidy.m3u.translator import playlist

    path = pathlib.Path("test.m3u")

    assert playlist(path) == Playlist(uri="m3u:test.m3u", name="test")
    assert playlist(path, [Ref(uri="file:///test.mp3")], 1) == Playlist(
        uri="m3u:test.m3u",
        name="test",
        tracks=[Track(uri="file:///test.mp3")],
        last_modified=1000,
    )
コード例 #12
0
ファイル: test_models.py プロジェクト: zvonimirfras/mopidy
 def test_name(self):
     name = 'a name'
     ref = Ref(name=name)
     self.assertEqual(ref.name, name)
     with self.assertRaises(AttributeError):
         ref.name = None
コード例 #13
0
ファイル: test_models.py プロジェクト: zvonimirfras/mopidy
 def test_uri(self):
     uri = 'an_uri'
     ref = Ref(uri=uri)
     self.assertEqual(ref.uri, uri)
     with self.assertRaises(AttributeError):
         ref.uri = None
コード例 #14
0
 def test_repr_without_results(self):
     assert "Ref(name='foo', type='artist', uri='uri')" == repr(
         Ref(uri="uri", name="foo", type="artist"))
コード例 #15
0
ファイル: test_models.py プロジェクト: zimbatm/mopidy
 def test_name(self):
     name = 'a name'
     ref = Ref(name=name)
     self.assertEqual(ref.name, name)
     self.assertRaises(AttributeError, setattr, ref, 'name', None)
コード例 #16
0
 def track_to_ref(self, track):
     return Ref(uri=track.uri, name=track.name, type=Ref.TRACK)
コード例 #17
0
 def test_uri(self):
     uri = "an_uri"
     ref = Ref(uri=uri)
     assert ref.uri == uri
     with self.assertRaises(AttributeError):
         ref.uri = None
コード例 #18
0
 def test_to_json_and_back(self):
     ref1 = Ref(uri="uri")
     serialized = json.dumps(ref1, cls=ModelJSONEncoder)
     ref2 = json.loads(serialized, object_hook=model_json_decoder)
     assert ref1 == ref2
コード例 #19
0
 def test_serialize_without_results(self):
     self.assertDictEqual({
         "__model__": "Ref",
         "uri": "uri"
     },
                          Ref(uri="uri").serialize())
コード例 #20
0
ファイル: test_models.py プロジェクト: zvonimirfras/mopidy
 def test_del_name(self):
     ref = Ref(name='foo')
     with self.assertRaises(AttributeError):
         del ref.name
コード例 #21
0
 def playlist_to_ref(self, playlist):
     return Ref(uri=playlist.uri, name=playlist.name, type=Ref.PLAYLIST)
コード例 #22
0
ファイル: test_models.py プロジェクト: zvonimirfras/mopidy
 def test_invalid_kwarg(self):
     with self.assertRaises(TypeError):
         Ref(foo='baz')
コード例 #23
0
 def test_name(self):
     name = "a name"
     ref = Ref(name=name)
     assert ref.name == name
     with self.assertRaises(AttributeError):
         ref.name = None
コード例 #24
0
ファイル: test_models.py プロジェクト: zimbatm/mopidy
 def test_uri(self):
     uri = 'an_uri'
     ref = Ref(uri=uri)
     self.assertEqual(ref.uri, uri)
     self.assertRaises(AttributeError, setattr, ref, 'uri', None)
コード例 #25
0
ファイル: test_models.py プロジェクト: zimbatm/mopidy
 def test_serialize_without_results(self):
     self.assertDictEqual({
         '__model__': 'Ref',
         'uri': 'uri'
     },
                          Ref(uri='uri').serialize())
コード例 #26
0
ファイル: test_models.py プロジェクト: zimbatm/mopidy
 def test_repr_without_results(self):
     self.assertEquals("Ref(name=u'foo', type=u'artist', uri=u'uri')",
                       repr(Ref(uri='uri', name='foo', type='artist')))
コード例 #27
0
ファイル: schema.py プロジェクト: orontee/mopidy-local
def browse(c, type=None, order=("type", "name COLLATE NOCASE"), **kwargs):
    filters, params = _filters(_BROWSE_FILTERS[type], **kwargs)
    sql = _BROWSE_QUERIES[type] % (" AND ".join(filters) or "1", ", ".join(order))
    logger.debug("SQLite browse query %r: %s", params, sql)
    return [Ref(**row) for row in c.execute(sql, params)]
コード例 #28
0
ファイル: test_models.py プロジェクト: zimbatm/mopidy
 def test_to_json_and_back(self):
     ref1 = Ref(uri='uri')
     serialized = json.dumps(ref1, cls=ModelJSONEncoder)
     ref2 = json.loads(serialized, object_hook=model_json_decoder)
     self.assertEqual(ref1, ref2)
コード例 #29
0
 def test_add_folder(self):
     assert new_folder("Test",
                       ["test"]) == Ref(name="Test",
                                        type="directory",
                                        uri="soundcloud:directory:test")