Update Python bindings and tests to match the latest API
[babeltrace.git] / tests / bindings / python / bt2 / test_plugin.py
CommitLineData
811644b8
PP
1from bt2 import values
2import unittest
3import copy
4import bt2
5import bt2.plugin
6import os
7
8
9_TEST_PLUGIN_PLUGINS_PATH = os.environ['TEST_PLUGIN_PLUGINS_PATH']
10
11
12class PluginSetTestCase(unittest.TestCase):
13 def test_create(self):
14 pset = bt2.find_plugins(_TEST_PLUGIN_PLUGINS_PATH)
15 self.assertTrue(len(pset) >= 3)
16
17 def test_getitem(self):
18 pset = bt2.find_plugins(_TEST_PLUGIN_PLUGINS_PATH)
19 self.assertTrue(pset[0].path.startswith(_TEST_PLUGIN_PLUGINS_PATH))
20
21 def test_iter(self):
22 pset = bt2.find_plugins(_TEST_PLUGIN_PLUGINS_PATH)
23 names = set()
24
25 for plugin in pset:
26 names.add(plugin.name)
27
28 self.assertTrue('ctf' in names)
29 self.assertTrue('utils' in names)
30 self.assertTrue('text' in names)
31
32
33class FindPluginsTestCase(unittest.TestCase):
34 def test_find_none(self):
35 pset = bt2.find_plugins('/this/does/not/exist/246703df-cb85-46d5-8406-5e8dc4a88b41')
36 self.assertIsNone(pset)
37
38 def test_find_dir(self):
39 pset = bt2.find_plugins(_TEST_PLUGIN_PLUGINS_PATH)
40 self.assertTrue(len(pset) >= 3)
41
42
43class FindPluginTestCase(unittest.TestCase):
44 def test_find_none(self):
45 plugin = bt2.find_plugin('this-does-not-exist-246703df-cb85-46d5-8406-5e8dc4a88b41')
46 self.assertIsNone(plugin)
47
48 def test_find_existing(self):
49 plugin = bt2.find_plugin('ctf')
50 self.assertIsInstance(plugin, bt2.plugin._Plugin)
51
52
53class PluginTestCase(unittest.TestCase):
54 def setUp(self):
55 self._plugin = bt2.find_plugin('ctf')
56
57 def tearDown(self):
58 del self._plugin
59
60 def test_name(self):
61 self.assertEqual(self._plugin.name, 'ctf')
62
63 def test_path(self):
64 self.assertTrue(self._plugin.path.startswith(_TEST_PLUGIN_PLUGINS_PATH))
65
66 def test_author(self):
67 self.assertTrue('Philippe Proulx' in self._plugin.author)
68
69 def test_license(self):
70 self.assertTrue('MIT' in self._plugin.license)
71
72 def test_description(self):
73 self.assertTrue('CTF source and sink support' in self._plugin.description)
74
75 def test_version(self):
76 self.assertIsNone(self._plugin.version)
77
78 def test_source_comp_classes_len(self):
79 self.assertEqual(len(self._plugin.source_component_classes), 2)
80
81 def test_source_comp_classes_getitem(self):
82 self.assertEqual(self._plugin.source_component_classes['fs'].name, 'fs')
83
84 def test_source_comp_classes_getitem_invalid(self):
85 with self.assertRaises(KeyError):
86 self._plugin.source_component_classes['lol']
87
88 def test_source_comp_classes_iter(self):
89 plugins = {}
90
91 for cc_name, cc in self._plugin.source_component_classes.items():
92 plugins[cc_name] = cc
93
94 self.assertTrue('fs' in plugins)
95 self.assertTrue('lttng-live' in plugins)
96 self.assertEqual(plugins['fs'].name, 'fs')
97 self.assertEqual(plugins['lttng-live'].name, 'lttng-live')
98
99 def test_filter_comp_classes_len(self):
100 plugin = bt2.find_plugin('utils')
101 self.assertEqual(len(plugin.filter_component_classes), 2)
102
103 def test_sink_comp_classes_len(self):
104 self.assertEqual(len(self._plugin.sink_component_classes), 1)
This page took 0.026169 seconds and 4 git commands to generate.