diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -1,5 +1,10 @@ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test) +find_package(PythonInterp) +set_package_properties(PythonInterp PROPERTIES DESCRIPTION "Python Interpreter" + URL "https://www.python.org" TYPE OPTIONAL + PURPOSE "Python interpreter is needed to execute test for external extractors or writers") + remove_definitions(-DQT_NO_CAST_FROM_ASCII) configure_file(indexerextractortestsconfig.h.in @@ -112,10 +117,15 @@ endif() -ecm_add_test(externalextractortest.cpp ../src/externalextractor.cpp - TEST_NAME "externalextractortest" - LINK_LIBRARIES Qt5::Test KF5::FileMetaData KF5::I18n -) +if(PYTHONINTERP_FOUND) + configure_file(samplefiles/testexternalextractor/main.py samplefiles/testexternalextractor/main.py) + configure_file(samplefiles/testexternalextractor/manifest.json samplefiles/testexternalextractor/manifest.json COPYONLY) + + ecm_add_test(externalextractortest.cpp ../src/externalextractor.cpp + TEST_NAME "externalextractortest" + LINK_LIBRARIES Qt5::Test KF5::FileMetaData KF5::I18n + ) +endif() # # Collection @@ -146,7 +156,12 @@ ) endif() -ecm_add_test(externalwritertest.cpp ../src/externalwriter.cpp - TEST_NAME "externalwritertest" - LINK_LIBRARIES Qt5::Test KF5::FileMetaData KF5::I18n -) +if(PYTHONINTERP_FOUND) + configure_file(samplefiles/testexternalwriter/main.py samplefiles/testexternalwriter/main.py) + configure_file(samplefiles/testexternalwriter/manifest.json samplefiles/testexternalwriter/manifest.json COPYONLY) + + ecm_add_test(externalwritertest.cpp ../src/externalwriter.cpp + TEST_NAME "externalwritertest" + LINK_LIBRARIES Qt5::Test KF5::FileMetaData KF5::I18n + ) +endif() diff --git a/autotests/externalextractortest.cpp b/autotests/externalextractortest.cpp --- a/autotests/externalextractortest.cpp +++ b/autotests/externalextractortest.cpp @@ -33,7 +33,7 @@ QString ExternalExtractorTest::testFilePath(const QString& fileName) const { - return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QDir::separator() + fileName; + return QLatin1String(INDEXER_TESTS_SAMPLE_CONFIGURED_FILES_PATH) + QDir::separator() + fileName; } void ExternalExtractorTest::test() diff --git a/autotests/externalwritertest.cpp b/autotests/externalwritertest.cpp --- a/autotests/externalwritertest.cpp +++ b/autotests/externalwritertest.cpp @@ -33,7 +33,7 @@ QString ExternalWriterTest::testFilePath(const QString& fileName) const { - return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QDir::separator() + fileName; + return QLatin1String(INDEXER_TESTS_SAMPLE_CONFIGURED_FILES_PATH) + QDir::separator() + fileName; } void ExternalWriterTest::test() diff --git a/autotests/indexerextractortestsconfig.h.in b/autotests/indexerextractortestsconfig.h.in --- a/autotests/indexerextractortestsconfig.h.in +++ b/autotests/indexerextractortestsconfig.h.in @@ -23,5 +23,6 @@ #define INDEXEREXTRACTORTESTSCONFIG_H #define INDEXER_TESTS_SAMPLE_FILES_PATH "@CMAKE_CURRENT_SOURCE_DIR@/samplefiles" +#define INDEXER_TESTS_SAMPLE_CONFIGURED_FILES_PATH "@CMAKE_CURRENT_BINARY_DIR@/samplefiles" #endif diff --git a/autotests/samplefiles/testexternalextractor/main.py b/autotests/samplefiles/testexternalextractor/main.py --- a/autotests/samplefiles/testexternalextractor/main.py +++ b/autotests/samplefiles/testexternalextractor/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!@PYTHON_EXECUTABLE@ import sys import json diff --git a/autotests/samplefiles/testexternalwriter/main.py b/autotests/samplefiles/testexternalwriter/main.py --- a/autotests/samplefiles/testexternalwriter/main.py +++ b/autotests/samplefiles/testexternalwriter/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!@PYTHON_EXECUTABLE@ import sys import json