summaryrefslogtreecommitdiffstats
path: root/bindings/test
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-02-17 14:29:56 +0100
committerDavid Robillard <d@drobilla.net>2020-02-17 14:29:56 +0100
commit1381b2790dc90fb9d90e87645b2c38e68d4cff86 (patch)
tree3fb4a31cc6236c201db10374a816561e52ea51d8 /bindings/test
parent8014748967fb64e539cfca9069b563e6ead3bc7f (diff)
downloadlilv-1381b2790dc90fb9d90e87645b2c38e68d4cff86.tar.gz
lilv-1381b2790dc90fb9d90e87645b2c38e68d4cff86.tar.bz2
lilv-1381b2790dc90fb9d90e87645b2c38e68d4cff86.zip
Allow passing strings for URIs in Python API when unambiguous
Diffstat (limited to 'bindings/test')
-rw-r--r--bindings/test/python/test_api.py58
1 files changed, 57 insertions, 1 deletions
diff --git a/bindings/test/python/test_api.py b/bindings/test/python/test_api.py
index 652ccd8..62ab6c2 100644
--- a/bindings/test/python/test_api.py
+++ b/bindings/test/python/test_api.py
@@ -125,6 +125,7 @@ class PluginClassesTests(unittest.TestCase):
self.assertIsNotNone(pclass)
self.assertTrue(pclass in classes)
self.assertTrue(pclass.get_uri() in classes)
+ self.assertTrue("http://lv2plug.in/ns/lv2core#Plugin" in classes)
self.assertGreater(len(classes), 1)
self.assertIsNotNone(classes[0])
self.assertIsNotNone(classes[pclass.get_uri()])
@@ -145,7 +146,14 @@ class LoadTests(unittest.TestCase):
plugin = plugins.get(plugins.begin())
self.world.load_resource(plugin)
self.world.unload_resource(plugin)
+ self.world.load_resource(plugin.get_uri())
+ self.world.unload_resource(plugin.get_uri())
+ self.world.load_resource(str(plugin.get_uri()))
+ self.world.unload_resource(str(plugin.get_uri()))
self.world.unload_bundle(self.bundle_uri)
+ self.world.unload_bundle(str(self.bundle_uri))
+ with self.assertRaises(ValueError):
+ self.world.unload_bundle(4)
class PluginTests(unittest.TestCase):
@@ -164,7 +172,9 @@ class PluginTests(unittest.TestCase):
self.assertTrue(self.plugin.verify())
self.assertTrue(self.plugin in self.plugins)
self.assertTrue(self.plugin.get_uri() in self.plugins)
+ self.assertTrue(str(self.plugin.get_uri()) in self.plugins)
self.assertEqual(self.plugins[self.plugin.get_uri()], self.plugin)
+ self.assertEqual(self.plugins[str(self.plugin.get_uri())], self.plugin)
with self.assertRaises(KeyError):
self.plugins["http://example.org/notaplugin"].get_uri()
@@ -181,6 +191,9 @@ class PluginTests(unittest.TestCase):
self.lv2_OutputPort = self.world.new_uri(lilv.LILV_URI_OUTPUT_PORT)
self.lv2_AudioPort = self.world.new_uri(lilv.LILV_URI_AUDIO_PORT)
self.lv2_ControlPort = self.world.new_uri(lilv.LILV_URI_CONTROL_PORT)
+ self.params_amplitude = self.world.new_uri(
+ "http://lv2plug.in/ns/ext/parameters#amplitude"
+ )
def testGetters(self):
self.assertEqual(
@@ -197,6 +210,10 @@ class PluginTests(unittest.TestCase):
licenses = self.plugin.get_value(self.world.ns.doap.license)
features = self.plugin.get_value(self.world.ns.lv2.optionalFeature)
self.assertEqual(len(licenses), 1)
+ self.assertEqual(
+ self.plugin.get_value("http://usefulinc.com/ns/doap#license")[0],
+ licenses[0],
+ )
self.assertTrue(licenses[0] in licenses)
with self.assertRaises(IndexError):
self.assertIsNone(licenses[len(licenses)])
@@ -211,6 +228,11 @@ class PluginTests(unittest.TestCase):
self.assertTrue(
self.plugin.has_feature(self.world.ns.lv2.hardRTCapable)
)
+ self.assertTrue(
+ self.plugin.has_feature(
+ "http://lv2plug.in/ns/lv2core#hardRTCapable"
+ )
+ )
self.assertEqual(len(self.plugin.get_supported_features()), 1)
self.assertEqual(len(self.plugin.get_optional_features()), 1)
self.assertEqual(len(self.plugin.get_required_features()), 0)
@@ -219,6 +241,9 @@ class PluginTests(unittest.TestCase):
self.world.new_uri("http://example.org/nope")
)
)
+ self.assertFalse(
+ self.plugin.has_extension_data("http://example.org/nope")
+ )
self.assertEqual(len(self.plugin.get_extension_data()), 0)
self.assertEqual(len(self.plugin.get_extension_data()), 0)
self.assertFalse(self.plugin.has_latency())
@@ -246,6 +271,12 @@ class PluginTests(unittest.TestCase):
self.lv2_OutputPort, self.params_amplitude
)
)
+ self.assertIsNotNone(
+ self.plugin.get_port_by_designation(
+ "http://lv2plug.in/ns/lv2core#OutputPort",
+ "http://lv2plug.in/ns/ext/parameters#amplitude",
+ )
+ )
self.assertIsNone(self.plugin.get_project())
self.assertIsNone(self.plugin.get_author_name())
self.assertIsNone(self.plugin.get_author_email())
@@ -260,6 +291,9 @@ class PluginTests(unittest.TestCase):
),
)
self.assertEqual(
+ 0, len(self.plugin.get_related("http://example.org/Type")),
+ )
+ self.assertEqual(
1,
self.plugin.get_num_ports_of_class(
self.lv2_InputPort, self.lv2_AudioPort
@@ -269,10 +303,20 @@ class PluginTests(unittest.TestCase):
self.assertEqual(self.world.get_symbol(port), "input")
self.assertTrue(port.get_node().is_blank())
self.assertEqual(0, port.get(self.world.ns.lv2.index))
+ self.assertEqual(0, port.get("http://lv2plug.in/ns/lv2core#index"))
self.assertEqual(1, len(port.get_value(self.world.ns.lv2.symbol)))
+ self.assertEqual(
+ 1, len(port.get_value("http://lv2plug.in/ns/lv2core#symbol"))
+ )
self.assertEqual(port.get_value(self.world.ns.lv2.symbol)[0], "input")
self.assertFalse(port.has_property(self.world.ns.lv2.latency))
+ self.assertFalse(
+ port.has_property("http://lv2plug.in/ns/lv2core#latency")
+ )
self.assertFalse(port.supports_event(self.world.ns.midi.MidiEvent))
+ self.assertFalse(
+ port.supports_event("http://lv2plug.in/ns/ext/midi#MidiEvent")
+ )
self.assertEqual(0, port.get_index())
self.assertEqual("input", port.get_symbol())
self.assertEqual("Input", port.get_name())
@@ -284,6 +328,7 @@ class PluginTests(unittest.TestCase):
sorted(list(map(str, port.get_classes()))),
)
self.assertTrue(port.is_a(self.world.ns.lv2.ControlPort))
+ self.assertTrue(port.is_a("http://lv2plug.in/ns/lv2core#ControlPort"))
self.assertFalse(port.is_a(self.world.ns.lv2.AudioPort))
self.assertEqual((0.5, 0.0, 1.0), port.get_range())
self.assertEqual(0, len(port.get_properties()))
@@ -323,6 +368,13 @@ class PluginTests(unittest.TestCase):
self.lv2_InputPort, self.lv2_ControlPort
),
)
+ self.assertEqual(
+ 1,
+ self.plugin.get_num_ports_of_class(
+ "http://lv2plug.in/ns/lv2core#InputPort",
+ "http://lv2plug.in/ns/lv2core#ControlPort",
+ ),
+ )
class QueryTests(unittest.TestCase):
@@ -365,7 +417,7 @@ class InstanceTests(unittest.TestCase):
def setUp(self):
self.world = lilv.World()
self.bundle_uri = self.world.new_uri(location)
- self.world.load_bundle(self.bundle_uri)
+ self.world.load_bundle(str(self.bundle_uri))
self.plugins = self.world.get_all_plugins()
self.plugin = self.plugins[0]
self.instance = lilv.Instance(self.plugin, 48000)
@@ -424,7 +476,11 @@ class UITests(unittest.TestCase):
uis[0].get_binary_uri(), str(self.bundle_uri) + "TODO"
)
self.assertEqual(uis[uis[0].get_uri()], uis[0])
+ self.assertEqual(uis[str(ui_uri)], uis[0])
self.assertTrue(uis[0].is_a(self.world.ns.ui.GtkUI))
+ self.assertTrue(
+ uis[0].is_a("http://lv2plug.in/ns/extensions/ui#GtkUI")
+ )
self.assertTrue(uis[0] in uis)
self.assertTrue(uis[0].get_uri() in uis)
self.assertEqual([self.world.ns.ui.GtkUI], list(uis[0].get_classes()))