mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
- Broke into per class testcase - Each method tries to test only one aspect of behavior - Use unittest assertions for better error output - Removed non-existant serialize functionality from tests - Test BooleanParameter Conflicts: python/plugins/processing/core/parameters.py
61 lines
2.6 KiB
CMake
61 lines
2.6 KiB
CMake
# Add a python test from a python file
|
|
#
|
|
# Usage:
|
|
# ADD_PYTHON_TEST(PYTHON-TEST test.py)
|
|
#
|
|
# Optionally pass environment variables to your test
|
|
# ADD_PYTHON_TEST(PYTHON-TEST test.py FOO="bar" BAZ="quux")
|
|
#
|
|
# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre@gmail.com>
|
|
#
|
|
# Redistribution and use is allowed according to the terms of the New
|
|
# BSD license.
|
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS
|
|
#
|
|
|
|
# Need python interpreter:
|
|
FIND_PACKAGE(PythonInterp REQUIRED)
|
|
MARK_AS_ADVANCED(PYTHON_EXECUTABLE)
|
|
|
|
MACRO(ADD_PYTHON_TEST TESTNAME FILENAME)
|
|
GET_SOURCE_FILE_PROPERTY(loc ${FILENAME} LOCATION)
|
|
SET(EXTRA_ENVIRONMENT ${ARGN})
|
|
|
|
IF(CMAKE_CONFIGURATION_TYPES)
|
|
ADD_TEST(NAME ${TESTNAME} COMMAND ${PYTHON_EXECUTABLE} ${loc} -D CMAKE_BUILD_TYPE=$<CONFIGURATION>)
|
|
ELSE(CMAKE_CONFIGURATION_TYPES)
|
|
ADD_TEST(NAME ${TESTNAME} COMMAND ${PYTHON_EXECUTABLE} ${loc})
|
|
ENDIF(CMAKE_CONFIGURATION_TYPES)
|
|
|
|
SET(UNIX_TEST_PYTHONPATH "${QGIS_OUTPUT_DIRECTORY}/python:${QGIS_OUTPUT_DIRECTORY}/python/plugins:${CMAKE_SOURCE_DIR}/tests/src/python:$ENV{PYTHONPATH}")
|
|
IF(WIN32)
|
|
# Separate Windows PATHs with semicolons
|
|
STRING(REGEX REPLACE ":" "\\\;" TEST_PYTHONPATH ${UNIX_TEST_PYTHONPATH})
|
|
SET(TEST_QGIS_PREFIX_PATH "${QGIS_OUTPUT_DIRECTORY}/bin/${CMAKE_BUILD_TYPE}")
|
|
SET(TEST_PATH "${QGIS_OUTPUT_DIRECTORY}/bin/${CMAKE_BUILD_TYPE};$ENV{PATH}")
|
|
SET(ENVIRONMENT_VARS "PYTHONPATH=${TEST_PYTHONPATH}" "QGIS_PREFIX_PATH=${TEST_QGIS_PREFIX_PATH}" "PATH=${TEST_PATH}")
|
|
ELSE(WIN32)
|
|
SET(TEST_PYTHONPATH ${UNIX_TEST_PYTHONPATH})
|
|
SET(TEST_QGIS_PREFIX_PATH "${QGIS_OUTPUT_DIRECTORY}")
|
|
SET(TEST_LD_LIBRARY_PATH "${QGIS_OUTPUT_DIRECTORY}/lib:$ENV{LD_LIBRARY_PATH}")
|
|
SET(ENVIRONMENT_VARS "PYTHONPATH=${TEST_PYTHONPATH}" "QGIS_PREFIX_PATH=${TEST_QGIS_PREFIX_PATH}" "LD_LIBRARY_PATH=${TEST_LD_LIBRARY_PATH}")
|
|
ENDIF(WIN32)
|
|
SET(TEST_ENVIRONMENT_VARS ${ENVIRONMENT_VARS} ${EXTRA_ENVIRONMENT})
|
|
|
|
SET_PROPERTY(TEST ${TESTNAME} PROPERTY ENVIRONMENT ${TEST_ENVIRONMENT_VARS})
|
|
# For Debug
|
|
#FOREACH(arg ${TEST_ENVIRONMENT_VARS})
|
|
# MESSAGE("Test ENV: ${arg}")
|
|
#ENDFOREACH()
|
|
ENDMACRO(ADD_PYTHON_TEST)
|
|
|
|
# Byte compile recursively a directory (DIRNAME)
|
|
MACRO(ADD_PYTHON_COMPILEALL_TEST DIRNAME)
|
|
# First get the path:
|
|
GET_FILENAME_COMPONENT(temp_path "${PYTHON_LIBRARIES}" PATH)
|
|
# Find the python script:
|
|
GET_FILENAME_COMPONENT(PYTHON_COMPILE_ALL_PY "${temp_path}/../compileall.py" ABSOLUTE)
|
|
# add test, use DIRNAME to create unique name for the test:
|
|
ADD_TEST(COMPILE_ALL-${DIRNAME} ${PYTHON_EXECUTABLE} "${PYTHON_COMPILE_ALL_PY}" -q ${DIRNAME})
|
|
ENDMACRO(ADD_PYTHON_COMPILEALL_TEST)
|