116 lines
3.5 KiB
Python
116 lines
3.5 KiB
Python
import platform
|
|
|
|
import pygst
|
|
pygst.require('0.10')
|
|
import gst
|
|
import pykka
|
|
|
|
try:
|
|
import dbus
|
|
except ImportError:
|
|
dbus = False
|
|
|
|
try:
|
|
import pylast
|
|
except ImportError:
|
|
pylast = False
|
|
|
|
try:
|
|
import serial
|
|
except ImportError:
|
|
serial = False
|
|
|
|
try:
|
|
import spotify
|
|
except ImportError:
|
|
spotify = False
|
|
|
|
from mopidy.utils import deps
|
|
|
|
from tests import unittest
|
|
|
|
|
|
class DepsTest(unittest.TestCase):
|
|
def test_format_dependency_list(self):
|
|
adapters = [
|
|
lambda: dict(name='Python', version='FooPython 2.7.3'),
|
|
lambda: dict(name='Platform', version='Loonix 4.0.1'),
|
|
lambda: dict(name='Pykka', path='/foo/bar/baz.py', other='Quux')
|
|
]
|
|
|
|
result = deps.format_dependency_list(adapters)
|
|
|
|
self.assertIn('Python: FooPython 2.7.3', result)
|
|
self.assertIn('Platform: Loonix 4.0.1', result)
|
|
self.assertIn('Pykka: not found', result)
|
|
self.assertIn('Imported from: /foo/bar', result)
|
|
self.assertNotIn('/baz.py', result)
|
|
self.assertIn('Quux', result)
|
|
|
|
def test_platform_info(self):
|
|
result = deps.platform_info()
|
|
|
|
self.assertEquals('Platform', result['name'])
|
|
self.assertIn(platform.platform(), result['version'])
|
|
|
|
def test_python_info(self):
|
|
result = deps.python_info()
|
|
|
|
self.assertEquals('Python', result['name'])
|
|
self.assertIn(platform.python_implementation(), result['version'])
|
|
self.assertIn(platform.python_version(), result['version'])
|
|
self.assertIn('python', result['path'])
|
|
|
|
def test_gstreamer_info(self):
|
|
result = deps.gstreamer_info()
|
|
|
|
self.assertEquals('GStreamer', result['name'])
|
|
self.assertEquals(
|
|
'.'.join(map(str, gst.get_gst_version())), result['version'])
|
|
self.assertIn('gst', result['path'])
|
|
self.assertIn('Python wrapper: gst-python', result['other'])
|
|
self.assertIn(
|
|
'.'.join(map(str, gst.get_pygst_version())), result['other'])
|
|
self.assertIn('Relevant elements:', result['other'])
|
|
|
|
def test_pykka_info(self):
|
|
result = deps.pykka_info()
|
|
|
|
self.assertEquals('Pykka', result['name'])
|
|
self.assertEquals(pykka.__version__, result['version'])
|
|
self.assertIn('pykka', result['path'])
|
|
|
|
@unittest.skipUnless(spotify, 'pyspotify not found')
|
|
def test_pyspotify_info(self):
|
|
result = deps.pyspotify_info()
|
|
|
|
self.assertEquals('pyspotify', result['name'])
|
|
self.assertEquals(spotify.__version__, result['version'])
|
|
self.assertIn('spotify', result['path'])
|
|
self.assertIn('Built for libspotify API version', result['other'])
|
|
self.assertIn(str(spotify.api_version), result['other'])
|
|
|
|
@unittest.skipUnless(pylast, 'pylast not found')
|
|
def test_pylast_info(self):
|
|
result = deps.pylast_info()
|
|
|
|
self.assertEquals('pylast', result['name'])
|
|
self.assertEquals(pylast.__version__, result['version'])
|
|
self.assertIn('pylast', result['path'])
|
|
|
|
@unittest.skipUnless(dbus, 'dbus not found')
|
|
def test_dbus_info(self):
|
|
result = deps.dbus_info()
|
|
|
|
self.assertEquals('dbus-python', result['name'])
|
|
self.assertEquals(dbus.__version__, result['version'])
|
|
self.assertIn('dbus', result['path'])
|
|
|
|
@unittest.skipUnless(serial, 'serial not found')
|
|
def test_serial_info(self):
|
|
result = deps.serial_info()
|
|
|
|
self.assertEquals('pyserial', result['name'])
|
|
self.assertEquals(serial.VERSION, result['version'])
|
|
self.assertIn('serial', result['path'])
|