core: Mark get_playlists and filter as deprecated

This commit is contained in:
Thomas Adamcik 2015-03-26 23:12:26 +01:00
parent 5a3fb64250
commit a54551d985
3 changed files with 106 additions and 60 deletions

View File

@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals
import logging
import urlparse
import warnings
import pykka
@ -80,6 +81,9 @@ class PlaylistsController(object):
.. deprecated:: 1.0
Use :meth:`as_list` and :meth:`get_items` instead.
"""
warnings.warn(
'playlists.get_playlists() is deprecated', DeprecationWarning)
playlist_refs = self.as_list()
if include_tracks:
@ -166,6 +170,8 @@ class PlaylistsController(object):
.. deprecated:: 1.0
Use :meth:`as_list` and filter yourself.
"""
warnings.warn('playlists.filter() is deprecated', DeprecationWarning)
criteria = criteria or kwargs
matches = self.playlists
for (key, value) in criteria.iteritems():

View File

@ -1,6 +1,7 @@
from __future__ import absolute_import, unicode_literals
import unittest
import warnings
import mock
@ -83,30 +84,6 @@ class PlaylistsTest(unittest.TestCase):
self.assertFalse(self.sp1.delete.called)
self.assertFalse(self.sp2.delete.called)
def test_get_playlists_combines_result_from_backends(self):
result = self.core.playlists.get_playlists()
self.assertIn(self.pl1a, result)
self.assertIn(self.pl1b, result)
self.assertIn(self.pl2a, result)
self.assertIn(self.pl2b, result)
def test_get_playlists_includes_tracks_by_default(self):
result = self.core.playlists.get_playlists()
self.assertEqual(result[0].name, 'A')
self.assertEqual(len(result[0].tracks), 1)
self.assertEqual(result[1].name, 'B')
self.assertEqual(len(result[1].tracks), 1)
def test_get_playlist_can_strip_tracks_from_returned_playlists(self):
result = self.core.playlists.get_playlists(include_tracks=False)
self.assertEqual(result[0].name, 'A')
self.assertEqual(len(result[0].tracks), 0)
self.assertEqual(result[1].name, 'B')
self.assertEqual(len(result[1].tracks), 0)
def test_create_without_uri_scheme_uses_first_backend(self):
playlist = Playlist()
self.sp1.create().get.return_value = playlist
@ -164,16 +141,6 @@ class PlaylistsTest(unittest.TestCase):
self.assertFalse(self.sp1.delete.called)
self.assertFalse(self.sp2.delete.called)
def test_filter_returns_matching_playlists(self):
result = self.core.playlists.filter(name='A')
self.assertEqual(2, len(result))
def test_filter_accepts_dict_instead_of_kwargs(self):
result = self.core.playlists.filter({'name': 'A'})
self.assertEqual(2, len(result))
def test_lookup_selects_the_dummy1_backend(self):
self.core.playlists.lookup('dummy1:a')
@ -259,3 +226,62 @@ class PlaylistsTest(unittest.TestCase):
self.assertIsNone(result)
self.assertFalse(self.sp1.save.called)
self.assertFalse(self.sp2.save.called)
class DeprecatedFilterPlaylistsTest(BasePlaylistsTest):
def setUp(self): # noqa: N802
super(DeprecatedFilterPlaylistsTest, self).setUp()
self._warnings_filters = warnings.filters
warnings.filters = warnings.filters[:]
warnings.filterwarnings('ignore', '.*filter.*')
warnings.filterwarnings('ignore', '.*get_playlists.*')
def tearDown(self): # noqa: N802
super(DeprecatedFilterPlaylistsTest, self).tearDown()
warnings.filters = self._warnings_filters
def test_filter_returns_matching_playlists(self):
result = self.core.playlists.filter(name='A')
self.assertEqual(2, len(result))
def test_filter_accepts_dict_instead_of_kwargs(self):
result = self.core.playlists.filter({'name': 'A'})
self.assertEqual(2, len(result))
class DeprecatedGetPlaylistsTest(BasePlaylistsTest):
def setUp(self): # noqa: N802
super(DeprecatedGetPlaylistsTest, self).setUp()
self._warnings_filters = warnings.filters
warnings.filters = warnings.filters[:]
warnings.filterwarnings('ignore', '.*get_playlists.*')
def tearDown(self): # noqa: N802
super(DeprecatedGetPlaylistsTest, self).tearDown()
warnings.filters = self._warnings_filters
def test_get_playlists_combines_result_from_backends(self):
result = self.core.playlists.get_playlists()
self.assertIn(self.pl1a, result)
self.assertIn(self.pl1b, result)
self.assertIn(self.pl2a, result)
self.assertIn(self.pl2b, result)
def test_get_playlists_includes_tracks_by_default(self):
result = self.core.playlists.get_playlists()
self.assertEqual(result[0].name, 'A')
self.assertEqual(len(result[0].tracks), 1)
self.assertEqual(result[1].name, 'B')
self.assertEqual(len(result[1].tracks), 1)
def test_get_playlist_can_strip_tracks_from_returned_playlists(self):
result = self.core.playlists.get_playlists(include_tracks=False)
self.assertEqual(result[0].name, 'A')
self.assertEqual(len(result[0].tracks), 0)
self.assertEqual(result[1].name, 'B')
self.assertEqual(len(result[1].tracks), 0)

View File

@ -4,6 +4,7 @@ import os
import shutil
import tempfile
import unittest
import warnings
import pykka
@ -141,8 +142,8 @@ class M3UPlaylistsProviderTest(unittest.TestCase):
def test_create_adds_playlist_to_playlists_collection(self):
playlist = self.core.playlists.create('test')
self.assert_(self.core.playlists.playlists)
self.assertIn(playlist, self.core.playlists.playlists)
playlists = self.core.playlists.as_list()
self.assertIn(playlist.uri, [ref.uri for ref in playlists])
def test_as_list_empty_to_start_with(self):
self.assertEqual(len(self.core.playlists.as_list()), 0)
@ -171,30 +172,6 @@ class M3UPlaylistsProviderTest(unittest.TestCase):
self.core.playlists.delete(playlist.uri)
self.assertIsNone(self.core.playlists.lookup(playlist.uri))
def test_filter_without_criteria(self):
self.assertEqual(
self.core.playlists.get_playlists(), self.core.playlists.filter())
def test_filter_with_wrong_criteria(self):
self.assertEqual([], self.core.playlists.filter(name='foo'))
def test_filter_with_right_criteria(self):
playlist = self.core.playlists.create('test')
playlists = self.core.playlists.filter(name='test')
self.assertEqual([playlist], playlists)
def test_filter_by_name_returns_single_match(self):
self.core.playlists.create('a')
playlist = self.core.playlists.create('b')
self.assertEqual([playlist], self.core.playlists.filter(name='b'))
def test_filter_by_name_returns_no_matches(self):
self.core.playlists.create('a')
self.core.playlists.create('b')
self.assertEqual([], self.core.playlists.filter(name='c'))
def test_lookup_finds_playlist_by_uri(self):
original_playlist = self.core.playlists.create('test')
@ -292,3 +269,40 @@ class M3UPlaylistsProviderTest(unittest.TestCase):
item_refs = self.core.playlists.get_items('dummy:unknown')
self.assertIsNone(item_refs)
class DeprecatedM3UPlaylistsProviderTest(M3UPlaylistsProviderTest):
def setUp(self): # noqa: N802
super(DeprecatedM3UPlaylistsProviderTest, self).setUp()
self._warnings_filters = warnings.filters
warnings.filters = warnings.filters[:]
warnings.filterwarnings('ignore', '.*filter.*')
warnings.filterwarnings('ignore', '.*get_playlists.*')
def tearDown(self): # noqa: N802
super(DeprecatedM3UPlaylistsProviderTest, self).tearDown()
warnings.filters = self._warnings_filters
def test_filter_without_criteria(self):
self.assertEqual(self.core.playlists.get_playlists(),
self.core.playlists.filter())
def test_filter_with_wrong_criteria(self):
self.assertEqual([], self.core.playlists.filter(name='foo'))
def test_filter_with_right_criteria(self):
playlist = self.core.playlists.create('test')
playlists = self.core.playlists.filter(name='test')
self.assertEqual([playlist], playlists)
def test_filter_by_name_returns_single_match(self):
self.core.playlists.create('a')
playlist = self.core.playlists.create('b')
self.assertEqual([playlist], self.core.playlists.filter(name='b'))
def test_filter_by_name_returns_no_matches(self):
self.core.playlists.create('a')
self.core.playlists.create('b')
self.assertEqual([], self.core.playlists.filter(name='c'))