Coverage for /home/runner/work/zserio/zserio/compiler/extensions/python/runtime/tests/test_cppbind.py: 100%
21 statements
« prev ^ index » next coverage.py v6.5.0, created at 2024-12-05 10:43 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2024-12-05 10:43 +0000
1import unittest
2import os
4from zserio.cppbind import import_cpp_class
5from zserio.exception import PythonRuntimeException
8class MissingCppClass:
9 pass
12class CppBindTest(unittest.TestCase):
14 def test_invalid_env(self):
15 os.environ["ZSERIO_PYTHON_IMPLEMENTATION"] = "invalid"
16 with self.assertRaises(PythonRuntimeException):
17 import_cpp_class("MissingCppClass")
19 def test_missing_cpp_default(self):
20 os.environ.pop("ZSERIO_PYTHON_IMPLEMENTATION")
21 self.assertIsNone(import_cpp_class("MissingCppClass"))
23 def test_missing_cpp_python(self):
24 os.environ["ZSERIO_PYTHON_IMPLEMENTATION"] = "python"
25 self.assertIsNone(import_cpp_class("MissingCppClass"))
27 def test_missing_cpp_cpp(self):
28 os.environ["ZSERIO_PYTHON_IMPLEMENTATION"] = "cpp"
29 with self.assertRaises(PythonRuntimeException):
30 import_cpp_class("MissingCppClass")