mopidy/tests/core/test_actor.py
Jens Luetjen 606e87b1bb Make export/restore state internal
- drop filename parameter
- make save_state/load_state internal
- remove save_state/load_state from docu and RPC.
- remove models load/save from docu
- build the config path
- folder for 'core' state files
- move restore_state-to-coverage-translation into a method
2016-01-14 19:56:38 +01:00

98 lines
2.9 KiB
Python

from __future__ import absolute_import, unicode_literals
import shutil
import tempfile
import unittest
import mock
import pykka
from mopidy.core import Core
from mopidy.internal import versioning
class CoreActorTest(unittest.TestCase):
def setUp(self): # noqa: N802
self.backend1 = mock.Mock()
self.backend1.uri_schemes.get.return_value = ['dummy1']
self.backend1.actor_ref.actor_class.__name__ = b'B1'
self.backend2 = mock.Mock()
self.backend2.uri_schemes.get.return_value = ['dummy2']
self.backend2.actor_ref.actor_class.__name__ = b'B2'
self.core = Core(mixer=None, backends=[self.backend1, self.backend2])
def tearDown(self): # noqa: N802
pykka.ActorRegistry.stop_all()
def test_uri_schemes_has_uris_from_all_backends(self):
result = self.core.uri_schemes
self.assertIn('dummy1', result)
self.assertIn('dummy2', result)
def test_backends_with_colliding_uri_schemes_fails(self):
self.backend2.uri_schemes.get.return_value = ['dummy1', 'dummy2']
self.assertRaisesRegexp(
AssertionError,
'Cannot add URI scheme "dummy1" for B2, '
'it is already handled by B1',
Core, mixer=None, backends=[self.backend1, self.backend2])
def test_version(self):
self.assertEqual(self.core.version, versioning.get_version())
class CoreActorExportRestoreTest(unittest.TestCase):
def setUp(self):
self.temp_dir = tempfile.mkdtemp()
config = {
'core': {
'max_tracklist_length': 10000,
'restore_state': 'last',
'data_dir': self.temp_dir,
}
}
self.core = Core.start(
config=config, mixer=None, backends=[]).proxy()
def tearDown(self): # noqa: N802
pykka.ActorRegistry.stop_all()
shutil.rmtree(self.temp_dir)
def test_export_state(self):
self.core.teardown()
# TODO: implement meaningful test
def test_restore_state(self):
self.core.setup()
# TODO: implement meaningful test
def test_export_coverage_none(self):
result = Core._config_to_coverage(None)
self.assertEqual(result, [])
result = Core._config_to_coverage('off')
self.assertEqual(result, [])
def test_export_coverage(self):
result = Core._config_to_coverage('volume')
self.assertEqual(result, ['volume'])
result = Core._config_to_coverage('load')
target = ['tracklist', 'mode', 'volume', 'history']
self.assertEqual(result, target)
result = Core._config_to_coverage('last')
target = ['tracklist', 'mode', 'play-last', 'volume', 'history']
self.assertEqual(result, target)
result = Core._config_to_coverage('play')
target = ['tracklist', 'mode', 'play-always', 'volume', 'history']
self.assertEqual(result, target)