Skip to content
Snippets Groups Projects
Commit 531398d6 authored by Sebastian Hahta's avatar Sebastian Hahta
Browse files

Enable python tests

parent 6982d519
No related branches found
No related tags found
1 merge request!356Enable python tests
Pipeline #33753 passed
...@@ -4,3 +4,6 @@ ...@@ -4,3 +4,6 @@
[submodule "SDK/C++/public/ext/pybind11"] [submodule "SDK/C++/public/ext/pybind11"]
path = SDK/C++/public/ext/pybind11 path = SDK/C++/public/ext/pybind11
url = https://github.com/pybind/pybind11.git url = https://github.com/pybind/pybind11.git
[submodule "SDK/CPP/public/ext/pybind11"]
path = SDK/CPP/public/ext/pybind11
url = https://github.com/pybind/pybind11.git
...@@ -6,10 +6,15 @@ include(GNUInstallDirs) ...@@ -6,10 +6,15 @@ include(GNUInstallDirs)
option(WITH_OPENCV "Build with OpenCV wrapper" ON) option(WITH_OPENCV "Build with OpenCV wrapper" ON)
option(WITH_PYTHON "Build Python module" OFF) option(WITH_PYTHON "Build Python module" OFF)
option(WITH_TESTS "Enable unit tests" ON)
find_package( Eigen3 REQUIRED NO_MODULE ) find_package( Eigen3 REQUIRED NO_MODULE )
find_package( Threads REQUIRED ) find_package( Threads REQUIRED )
if (WITH_TESTS)
enable_testing()
endif()
if (WITH_OPENCV) if (WITH_OPENCV)
find_package( OpenCV REQUIRED ) find_package( OpenCV REQUIRED )
endif() endif()
......
Subproject commit 06b673a0daef1db4f921a19676a51abec6fb13e8
...@@ -32,13 +32,6 @@ target_include_directories(voltu_sdk_py PRIVATE .) ...@@ -32,13 +32,6 @@ target_include_directories(voltu_sdk_py PRIVATE .)
target_link_libraries(voltu_sdk_py PUBLIC voltu_sdk) target_link_libraries(voltu_sdk_py PUBLIC voltu_sdk)
set_target_properties(voltu_sdk_py PROPERTIES OUTPUT_NAME voltu) set_target_properties(voltu_sdk_py PROPERTIES OUTPUT_NAME voltu)
enable_testing() if (WITH_TESTS)
find_package(Python3 COMPONENTS Interpreter) add_subdirectory(tests)
endif()
function(add_python_test TEST_NAME TEST_SCRIPT)
add_test(NAME ${TEST_NAME}
COMMAND Python3::Interpreter -m unittest ${TEST_SCRIPT}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endfunction()
add_python_test(test_load tests/test_load.py)
#include "module.hpp" #include "module.hpp"
#include <voltu/voltu.hpp>
#include <voltu/initialise.hpp> #include <voltu/initialise.hpp>
#include <voltu/types/errors.hpp> #include <voltu/types/errors.hpp>
...@@ -15,6 +16,7 @@ void py_exceptions(pybind11::module& m) { ...@@ -15,6 +16,7 @@ void py_exceptions(pybind11::module& m) {
} }
PYBIND11_MODULE(voltu, m) { PYBIND11_MODULE(voltu, m) {
m.attr("version") = py::make_tuple(VOLTU_VERSION_MAJOR, VOLTU_VERSION_MINOR, VOLTU_VERSION_PATCH);
py_exceptions(m); py_exceptions(m);
py_automatic_bindings(m); py_automatic_bindings(m);
} }
find_package(Python3 COMPONENTS Interpreter)
function(add_python_test TEST_NAME TEST_SCRIPT)
add_test(NAME ${TEST_NAME}
COMMAND Python3::Interpreter -m unittest tests/${TEST_SCRIPT}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
set_tests_properties(${TEST_NAME} PROPERTIES
ENVIRONMENT PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}/..)
endfunction()
add_python_test(TestLoad test_load.py)
import unittest import unittest
import os
import voltu
class LoadLibrary(unittest.TestCase): class LoadLibrary(unittest.TestCase):
def test_get_instance(self): def test_get_instance(self):
import voltu
self.assertIsNotNone(voltu.instance()) self.assertIsNotNone(voltu.instance())
# second call to instance() returns None # second call to instance() returns None; should
# return same instance instead?
# self.assertIsNotNone(voltu.instance()) # self.assertIsNotNone(voltu.instance())
def test_version(self):
major, minor, patch = voltu.version
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment