1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
import unittest
import os
import util
import tempfile
import logging
import constants
import glib
try:
from gi.repository import Grl
except:
logging.warning("Unable to import Grilo's introspection bindings")
exit()
class TestRegistry(unittest.TestCase):
EXISTING_LIBRARY_PATH = None
NONEXISTING_LIBRARY_PATH = 'NONEXISTING_LIBRARY.so'
INVALID_LIBRARY_PATH = os.path.join(util.PREFIX,
util.GRL_LIB_NAME)
NONEXISTING_SOURCE = 'NON_EXISTING_SOURCE'
def __init__(self, method_name):
super(TestRegistry, self).__init__(method_name)
Grl.init([])
self.registry = Grl.Registry.get_default()
plugin_paths = util.GRL_PLUGIN_PATH.split(':')
for path in plugin_paths:
if path:
entries = os.listdir(path)
self.EXISTING_LIBRARY_PATH = os.path.join(path,
entries[0])
break
print self.EXISTING_LIBRARY_PATH
def setUp(self):
pass
def tearDown(self):
pass
def test_get_default_not_null(self):
registry = Grl.Registry.get_default()
self.assertTrue(registry)
def test_get_default_singleton(self):
registry1 = Grl.Registry.get_default()
registry2 = Grl.Registry.get_default()
self.assertEquals(registry1, registry2)
def test_add_directory(self):
pass
def test_load_existing(self):
# skipping since this is likely to have been loaded by another test
return None
if not self.registry.load(self.EXISTING_LIBRARY_PATH):
self.fail()
def test_load_unexisting(self):
self.assertRaises(glib.GError, self.registry.load, self.NONEXISTING_LIBRARY_PATH)
def test_load_invalid(self):
self.assertRaises(glib.GError, self.registry.load, self.INVALID_LIBRARY_PATH)
def test_load_directory_nonexisting(self):
self.assertRaises(glib.GError, self.registry.load_directory, '')
def test_load_directory_existing(self):
if not self.registry.load_directory(os.getcwd()):
self.fail()
def test_unload(self):
pass
def test_load_all(self):
self.assertTrue(self.registry.load_all())
def test_register_source(self):
pass
def test_unregister_source(self):
self.registry.load_all()
sources = self.registry.get_sources(False)
for source in sources:
self.registry.unregister_source(source)
sources = self.registry.get_sources(False)
self.assertEqual(len(sources), 0)
def test_lookup_source(self):
self.registry.load_all()
sources = self.registry.get_sources(False)
if sources:
expected = sources[0]
search_id = expected.get_id()
found = self.registry.lookup_source(search_id)
self.assertEqual(expected, found)
def test_lookup_source_nonexisting(self):
self.registry.load_all()
found = self.registry.lookup_source(self.NONEXISTING_SOURCE)
self.assertFalse(found)
def test_get_sources(self):
sources = self.registry.get_sources(False)
self.assertEqual(len(sources), 0)
self.registry.load_all()
sources = self.registry.get_sources(False)
self.assertNotEqual(len(sources), 0)
def test_get_sources_ordering(self):
self.registry.load_all()
ordered_sources = self.registry.get_sources(True)
unordered_sources = self.registry.get_sources(False)
unordered_sources.sort(key=Grl.MediaPlugin.get_rank)
self.assertEquals(ordered_sources, unordered_sources)
def test_get_sources_by_operations_supported_ops(self):
self.registry.load_all()
for op in constants.SUPPORTED_OPS:
if op != Grl.SupportedOps.NONE:
sources = self.registry.get_sources_by_operations(op, False)
if sources:
supported_operations = sources[0].supported_operations()
self.assertTrue(supported_operations & op)
def test_register_metadata_key(self):
pass
def test_lookup_metadata_key_existing_key(self):
existing_key = self.registry.lookup_metadata_key(constants.KEY_ID)
self.assertTrue(existing_key)
def test_lookup_metadata_key_nonexisting_key(self):
nonexisting_key = self.registry.lookup_metadata_key(constants.KEY_NONEXISTING)
self.assertTrue(nonexisting_key == Grl.METADATA_KEY_INVALID)
def test_lookup_metadata_key_singleton(self):
a_key = self.registry.lookup_metadata_key(constants.KEY_ID)
another_key = self.registry.lookup_metadata_key(constants.KEY_ID)
self.assertEquals(a_key, another_key)
def test_get_metadata_keys_contains(self):
registered_key = self.registry.lookup_metadata_key(constants.KEY_ARTIST)
metadata_keys = self.registry.get_metadata_keys()
self.assertTrue(registered_key in metadata_keys)
def test_get_metadata_keys_all_keys(self):
registered_keys = []
for k in constants.REGISTERED_KEYS:
registered_keys.append(self.registry.lookup_metadata_key(k))
metadata_keys = self.registry.get_metadata_keys()
self.assertEquals(registered_keys.sort(), metadata_keys.sort())
def test_add_config(self):
pass
|