diff --git a/bindings/pybind11/tests/CMakeLists.txt b/bindings/pybind11/tests/CMakeLists.txt index 93912d0be4..ba784ad741 100644 --- a/bindings/pybind11/tests/CMakeLists.txt +++ b/bindings/pybind11/tests/CMakeLists.txt @@ -2,14 +2,15 @@ add_test (NAME pybind11_idyntree_test COMMAND ${Python3_EXECUTABLE} -B -m unittest discover -s ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/pybind11 ) + +get_filename_component(PARENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" DIRECTORY) + if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.22") set_property(TEST pybind11_idyntree_test PROPERTY ENVIRONMENT_MODIFICATION - "PYTHONPATH=path_list_append:${PROJECT_BINARY_DIR}/bindings" - "PYTHONPATH=path_list_append:${PROJECT_BINARY_DIR}/bindings/pybind11" - "PYTHONPATH=path_list_append:${PROJECT_BINARY_DIR}/bindings/python") + "PYTHONPATH=path_list_append:${PARENT_BINARY_DIR}") else() set_tests_properties(pybind11_idyntree_test PROPERTIES ENVIRONMENT - "PYTHONPATH=${PROJECT_BINARY_DIR}/bindings:${PROJECT_BINARY_DIR}/bindings/pybind11:${PROJECT_BINARY_DIR}/bindings/python:$ENV{PYTHONPATH}") + "PYTHONPATH=${PARENT_BINARY_DIR}:$ENV{PYTHONPATH}") endif() diff --git a/bindings/pybind11/tests/test_idyntree_core.py b/bindings/pybind11/tests/test_idyntree_core.py index e37f521f9b..bdb691eccf 100644 --- a/bindings/pybind11/tests/test_idyntree_core.py +++ b/bindings/pybind11/tests/test_idyntree_core.py @@ -4,11 +4,7 @@ from pathlib import Path import unittest -ROOT = Path(__file__).resolve().parents[3] -PYBIND_DIR = ROOT / "build" / "bindings" / "pybind11" / "idyntree" -sys.path.insert(0, str(PYBIND_DIR)) - -import pybind as iDynTree +import idyntree.pybind as iDynTree import numpy as np diff --git a/bindings/pybind11/tests/test_idyntree_high_level.py b/bindings/pybind11/tests/test_idyntree_high_level.py index 034d6d1183..6937ac6f53 100644 --- a/bindings/pybind11/tests/test_idyntree_high_level.py +++ b/bindings/pybind11/tests/test_idyntree_high_level.py @@ -5,11 +5,7 @@ from pathlib import Path import unittest -ROOT = Path(__file__).resolve().parents[3] -PYBIND_DIR = ROOT / "build" / "bindings" / "pybind11" / "idyntree" -sys.path.insert(0, str(PYBIND_DIR)) - -import pybind as iDynTree +import idyntree.pybind as iDynTree import numpy as np diff --git a/bindings/pybind11/tests/test_idyntree_model.py b/bindings/pybind11/tests/test_idyntree_model.py index d089dc1038..8631cd79da 100644 --- a/bindings/pybind11/tests/test_idyntree_model.py +++ b/bindings/pybind11/tests/test_idyntree_model.py @@ -4,12 +4,7 @@ from pathlib import Path import unittest -ROOT = Path(__file__).resolve().parents[3] -PYBIND_DIR = ROOT / "build" / "bindings" / "pybind11" / "idyntree" -sys.path.insert(0, str(PYBIND_DIR)) - -import pybind as iDynTree - +import idyntree.pybind as iDynTree class IDynTreeMaterialTest(unittest.TestCase): diff --git a/bindings/pybind11/tests/test_idyntree_modelio_urdf.py b/bindings/pybind11/tests/test_idyntree_modelio_urdf.py index 49aca2917f..b99cb6a64c 100644 --- a/bindings/pybind11/tests/test_idyntree_modelio_urdf.py +++ b/bindings/pybind11/tests/test_idyntree_modelio_urdf.py @@ -5,11 +5,7 @@ from pathlib import Path import unittest -ROOT = Path(__file__).resolve().parents[3] -PYBIND_DIR = ROOT / "build" / "bindings" / "pybind11" / "idyntree" -sys.path.insert(0, str(PYBIND_DIR)) - -import pybind as iDynTree +import idyntree.pybind as iDynTree SPHERICAL_COMPATIBLE_URDF = """ diff --git a/bindings/pybind11/tests/test_idyntree_sensors.py b/bindings/pybind11/tests/test_idyntree_sensors.py index 755ad72b6c..1ef4efe6a3 100644 --- a/bindings/pybind11/tests/test_idyntree_sensors.py +++ b/bindings/pybind11/tests/test_idyntree_sensors.py @@ -4,12 +4,7 @@ from pathlib import Path import unittest -ROOT = Path(__file__).resolve().parents[3] -PYBIND_DIR = ROOT / "build" / "bindings" / "pybind11" / "idyntree" -sys.path.insert(0, str(PYBIND_DIR)) - -import pybind as iDynTree - +import idyntree.pybind as iDynTree class IDynTreeSensorsTest(unittest.TestCase): diff --git a/bindings/python/tests/CMakeLists.txt b/bindings/python/tests/CMakeLists.txt index ef362d10db..8b033134a2 100644 --- a/bindings/python/tests/CMakeLists.txt +++ b/bindings/python/tests/CMakeLists.txt @@ -4,12 +4,6 @@ add_custom_command(TARGET copy_python_tests_in_build PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -set(IDYNTREE_PYTHON_TEST_PYTHONPATH - "PYTHONPATH=path_list_append:${CMAKE_BINARY_DIR}/bindings/python" - "PYTHONPATH=path_list_append:${CMAKE_BINARY_DIR}/bindings/pybind11" - "PYTHONPATH=path_list_append:${CMAKE_BINARY_DIR}/bindings" - "PYTHONPATH=path_list_append:${CMAKE_BINARY_DIR}/lib/python") - add_test(NAME PythonGeometryTests COMMAND ${Python3_EXECUTABLE} geometry.py) add_test(NAME PythonJointTests COMMAND ${Python3_EXECUTABLE} joints.py) add_test(NAME PythonHelperTests COMMAND ${Python3_EXECUTABLE} helpers.py) @@ -17,23 +11,24 @@ add_test(NAME PythonModelLoaderTests COMMAND ${Python3_EXECUTABLE} modelloader.p add_test(NAME PythonExtWrenchesAndJointTorquesEstimatorUnitTest COMMAND ${Python3_EXECUTABLE} ExtWrenchesAndJointTorquesEstimatorUnitTest.py) add_test(NAME PythonInverseKinematicsTests COMMAND ${Python3_EXECUTABLE} invkin.py) -if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.22") - set_tests_properties( +set(IDYNTREE_PYTHON_TESTS PythonGeometryTests PythonJointTests PythonHelperTests PythonModelLoaderTests PythonExtWrenchesAndJointTorquesEstimatorUnitTest PythonInverseKinematicsTests - PROPERTIES ENVIRONMENT_MODIFICATION "${IDYNTREE_PYTHON_TEST_PYTHONPATH}") + ) + +get_filename_component(PARENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" DIRECTORY) + +if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.22") + set_tests_properties( + ${IDYNTREE_PYTHON_TESTS} + PROPERTIES ENVIRONMENT_MODIFICATION "PYTHONPATH=path_list_append:${PARENT_BINARY_DIR}") else() set_tests_properties( - PythonGeometryTests - PythonJointTests - PythonHelperTests - PythonModelLoaderTests - PythonExtWrenchesAndJointTorquesEstimatorUnitTest - PythonInverseKinematicsTests + ${IDYNTREE_PYTHON_TESTS} PROPERTIES ENVIRONMENT - "PYTHONPATH=${CMAKE_BINARY_DIR}/bindings/python:${CMAKE_BINARY_DIR}/bindings/pybind11:${CMAKE_BINARY_DIR}/bindings:${CMAKE_BINARY_DIR}/lib/python:$ENV{PYTHONPATH}") + "PYTHONPATH=${PARENT_BINARY_DIR}:$ENV{PYTHONPATH}") endif() diff --git a/bindings/python/tests/ExtWrenchesAndJointTorquesEstimatorUnitTest.py b/bindings/python/tests/ExtWrenchesAndJointTorquesEstimatorUnitTest.py index df3122c493..82b8824eee 100644 --- a/bindings/python/tests/ExtWrenchesAndJointTorquesEstimatorUnitTest.py +++ b/bindings/python/tests/ExtWrenchesAndJointTorquesEstimatorUnitTest.py @@ -1,14 +1,9 @@ -import sys -from pathlib import Path - -# Prefer the freshly built SWIG module from the build tree. -THIS_DIR = Path(__file__).resolve().parent -SWIG_DIR = THIS_DIR.parent / "idyntree" -sys.path.insert(0, str(SWIG_DIR)) - -import os -import unittest -import swig as iDynTree; +import sys +from pathlib import Path + +import os +import unittest +import idyntree.swig as iDynTree; import numpy as np import random diff --git a/bindings/python/tests/dyncomp.py b/bindings/python/tests/dyncomp.py index 4a856c0585..223726af94 100644 --- a/bindings/python/tests/dyncomp.py +++ b/bindings/python/tests/dyncomp.py @@ -3,10 +3,6 @@ ''' import os -# This test is mean to be executed from the build, -# so we add in PYTHONPATH the location of iDynTree.py and _iDynTree.so -os.environ["PYTHONPATH"] = os.environ["PYTHONPATH"] + ":../:../../../lib/python/" - import unittest import idyntree.swig as iDynTree; import numpy as np diff --git a/bindings/python/tests/geometry.py b/bindings/python/tests/geometry.py index e075608840..6a782ebd78 100644 --- a/bindings/python/tests/geometry.py +++ b/bindings/python/tests/geometry.py @@ -6,13 +6,8 @@ from pathlib import Path -# Prefer the freshly built SWIG module from the build tree. -THIS_DIR = Path(__file__).resolve().parent -SWIG_DIR = THIS_DIR.parent / "idyntree" -sys.path.insert(0, str(SWIG_DIR)) - import unittest -import swig as iDynTree +import idyntree.swig as iDynTree; import random class PositionTest(unittest.TestCase): diff --git a/bindings/python/tests/helpers.py b/bindings/python/tests/helpers.py index ce41a70d8b..70a33b4450 100644 --- a/bindings/python/tests/helpers.py +++ b/bindings/python/tests/helpers.py @@ -5,14 +5,9 @@ import sys from pathlib import Path -# Prefer the freshly built SWIG module from the build tree. -THIS_DIR = Path(__file__).resolve().parent -SWIG_DIR = THIS_DIR.parent / "idyntree" -sys.path.insert(0, str(SWIG_DIR)) - import unittest import numpy as np -import swig as iDynTree +import idyntree.swig as iDynTree; import random class HelpersTest(unittest.TestCase): diff --git a/bindings/python/tests/invkin.py b/bindings/python/tests/invkin.py index 8aa0ed400b..eb86a69042 100644 --- a/bindings/python/tests/invkin.py +++ b/bindings/python/tests/invkin.py @@ -2,13 +2,8 @@ import sys from pathlib import Path -# Prefer the freshly built SWIG module from the build tree. -THIS_DIR = Path(__file__).resolve().parent -SWIG_DIR = THIS_DIR.parent / "idyntree" -sys.path.insert(0, str(SWIG_DIR)) - import unittest -import swig as iDynTree; +import idyntree.swig as iDynTree; import numpy as np import random diff --git a/bindings/python/tests/joints.py b/bindings/python/tests/joints.py index 28625e7549..d2ce4f083c 100644 --- a/bindings/python/tests/joints.py +++ b/bindings/python/tests/joints.py @@ -6,13 +6,8 @@ from pathlib import Path -# Prefer the freshly built SWIG module from the build tree. -THIS_DIR = Path(__file__).resolve().parent -SWIG_DIR = THIS_DIR.parent / "idyntree" -sys.path.insert(0, str(SWIG_DIR)) - import unittest -import swig as iDynTree +import idyntree.swig as iDynTree; import random class JointTest(unittest.TestCase): diff --git a/bindings/python/tests/modelloader.py b/bindings/python/tests/modelloader.py index fcfa59002d..cb3312ef17 100644 --- a/bindings/python/tests/modelloader.py +++ b/bindings/python/tests/modelloader.py @@ -1,14 +1,9 @@ import sys from pathlib import Path -# Prefer the freshly built SWIG module from the build tree. -THIS_DIR = Path(__file__).resolve().parent -SWIG_DIR = THIS_DIR.parent / "idyntree" -sys.path.insert(0, str(SWIG_DIR)) - import unittest import numpy as np -import swig as iDynTree +import idyntree.swig as iDynTree import random class ModelLoaderTest(unittest.TestCase):