Fix: tests: conditionally skip Python bindings test that requires Python plugins...
[babeltrace.git] / tests / bindings / python / bt2 / test_trace_collection_message_iterator.py
index c9a6ebd73eda11c15715555e7871328bd755fa2a..53d838fc7a99a4783837094c9861208cd7de4d77 100644 (file)
@@ -3,12 +3,12 @@
 # Copyright (C) 2019 EfficiOS Inc.
 #
 
-import unittest
-import datetime
-import bt2
 import os
 import os.path
+import datetime
+import unittest
 
+import bt2
 
 _BT_TESTS_DATADIR = os.environ["BT_TESTS_DATADIR"]
 _BT_CTF_TRACES_PATH = os.environ["BT_CTF_TRACES_PATH"]
@@ -26,6 +26,11 @@ _AUTO_SOURCE_DISCOVERY_PARAMS_LOG_LEVEL_PATH = os.path.join(
     _BT_TESTS_DATADIR, "auto-source-discovery", "params-log-level"
 )
 
+_METADATA_SYNTAX_ERROR_TRACE_PATH = os.path.join(
+    _BT_CTF_TRACES_PATH, "fail", "metadata-syntax-error"
+)
+_BT_ENABLE_PYTHON_PLUGINS = os.environ["BT_TESTS_ENABLE_PYTHON_PLUGINS"] == "1"
+
 
 class _SomeSource(
     bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
@@ -403,6 +408,10 @@ class _TestAutoDiscoverSourceComponentSpecs(unittest.TestCase):
         os.environ["BABELTRACE_PLUGIN_PATH"] = self._saved_babeltrace_plugin_path
 
 
+@unittest.skipUnless(
+    _BT_ENABLE_PYTHON_PLUGINS,
+    "Support for Python plugins is disabled",
+)
 class TestAutoDiscoverSourceComponentSpecsGrouping(
     _TestAutoDiscoverSourceComponentSpecs
 ):
@@ -428,6 +437,10 @@ class TestAutoDiscoverSourceComponentSpecsGrouping(
         self.assertEqual(msgs[7].stream.name, "TestSourceSomeDir: some-dir")
 
 
+@unittest.skipUnless(
+    _BT_ENABLE_PYTHON_PLUGINS,
+    "Support for Python plugins is disabled",
+)
 class TestAutoDiscoverSourceComponentSpecsParamsObjLogLevel(
     _TestAutoDiscoverSourceComponentSpecs
 ):
@@ -709,5 +722,15 @@ class TestAutoDiscoverSourceComponentSpecsParamsObjLogLevel(
         self.assertEqual(msgs[1].stream.name, "TestSourceB: deore")
 
 
+class TestAutoDiscoverFailures(unittest.TestCase):
+    def test_metadata_syntax_error(self):
+        with self.assertRaisesRegex(
+            bt2._Error,
+            'At line 3 in metadata stream: syntax error, unexpected CTF_RSBRAC: token="]"',
+        ):
+            specs = [bt2.AutoSourceComponentSpec(_METADATA_SYNTAX_ERROR_TRACE_PATH)]
+            bt2.TraceCollectionMessageIterator(specs)
+
+
 if __name__ == "__main__":
     unittest.main()
This page took 0.026145 seconds and 4 git commands to generate.