de79ebc49081d726efabe57d18d2df5d0e288449
[babeltrace.git] / tests / bindings / python / bt2 / test_plugin.py
1 from bt2 import values
2 import unittest
3 import copy
4 import bt2
5 import bt2.plugin
6 import os
7
8
9 _TEST_PLUGIN_PLUGINS_PATH = os.environ['TEST_PLUGIN_PLUGINS_PATH']
10
11
12 class 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
33 class 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
43 class 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
53 class 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 plugin_path = os.path.normcase(self._plugin.path)
65 plugin_path_env = os.path.normcase(_TEST_PLUGIN_PLUGINS_PATH)
66 self.assertTrue(plugin_path.startswith(plugin_path_env))
67
68 def test_author(self):
69 self.assertTrue('Philippe Proulx' in self._plugin.author)
70
71 def test_license(self):
72 self.assertTrue('MIT' in self._plugin.license)
73
74 def test_description(self):
75 self.assertTrue('CTF source and sink support' in self._plugin.description)
76
77 def test_version(self):
78 self.assertIsNone(self._plugin.version)
79
80 def test_source_comp_classes_len(self):
81 self.assertEqual(len(self._plugin.source_component_classes), 2)
82
83 def test_source_comp_classes_getitem(self):
84 self.assertEqual(self._plugin.source_component_classes['fs'].name, 'fs')
85
86 def test_source_comp_classes_getitem_invalid(self):
87 with self.assertRaises(KeyError):
88 self._plugin.source_component_classes['lol']
89
90 def test_source_comp_classes_iter(self):
91 plugins = {}
92
93 for cc_name, cc in self._plugin.source_component_classes.items():
94 plugins[cc_name] = cc
95
96 self.assertTrue('fs' in plugins)
97 self.assertTrue('lttng-live' in plugins)
98 self.assertEqual(plugins['fs'].name, 'fs')
99 self.assertEqual(plugins['lttng-live'].name, 'lttng-live')
100
101 def test_filter_comp_classes_len(self):
102 plugin = bt2.find_plugin('utils')
103 self.assertEqual(len(plugin.filter_component_classes), 2)
104
105 def test_sink_comp_classes_len(self):
106 self.assertEqual(len(self._plugin.sink_component_classes), 1)
This page took 0.030627 seconds and 3 git commands to generate.