pytest-cmake 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
File without changes
@@ -0,0 +1,29 @@
1
+ import argparse
2
+ from pathlib import Path
3
+ import sys
4
+ import sysconfig
5
+
6
+
7
+ def main(argv=None) -> int:
8
+ parser = argparse.ArgumentParser(
9
+ prog="pytest-cmake",
10
+ description="Utility commands for pytest-cmake packaging.",
11
+ )
12
+ parser.add_argument(
13
+ "--cmake_dir", "--cmake-dir",
14
+ action="store_true",
15
+ help="Print the CMake config directory path and exit.",
16
+ )
17
+ args = parser.parse_args(argv)
18
+
19
+ if args.cmake_dir:
20
+ data_root = Path(sysconfig.get_path("data"))
21
+ print(data_root / "share" / "Pytest" / "cmake")
22
+ return 0
23
+
24
+ parser.print_help()
25
+ return 0
26
+
27
+
28
+ if __name__ == "__main__":
29
+ sys.exit(main())
@@ -0,0 +1,181 @@
1
+ # Discover required Pytest target.
2
+ #
3
+ # This module defines the following imported targets:
4
+ # Pytest::Pytest
5
+ #
6
+ # It also exposes the 'pytest_discover_tests' function, which adds CTest
7
+ # test for each Pytest test. The "BUNDLE_PYTHON_TESTS" environment variable
8
+ # can be used to run all discovered tests together.
9
+ #
10
+ # Usage:
11
+ # find_package(Pytest)
12
+ # find_package(Pytest REQUIRED)
13
+ # find_package(Pytest 4.6.11 REQUIRED)
14
+ #
15
+ # Note:
16
+ # The Pytest_ROOT environment variable or CMake variable can be used to
17
+ # prepend a custom search path.
18
+ # (https://cmake.org/cmake/help/latest/policy/CMP0074.html)
19
+
20
+ cmake_minimum_required(VERSION 3.20...4.2)
21
+
22
+ include(FindPackageHandleStandardArgs)
23
+
24
+ find_program(PYTEST_EXECUTABLE NAMES pytest)
25
+ mark_as_advanced(PYTEST_EXECUTABLE)
26
+
27
+ if(PYTEST_EXECUTABLE)
28
+ execute_process(
29
+ COMMAND "${PYTEST_EXECUTABLE}" --version
30
+ OUTPUT_VARIABLE _version
31
+ ERROR_VARIABLE _version
32
+ OUTPUT_STRIP_TRAILING_WHITESPACE
33
+ )
34
+
35
+ if (_version MATCHES "pytest (version )?([0-9]+\\.[0-9]+\\.[0-9]+)")
36
+ set(PYTEST_VERSION "${CMAKE_MATCH_2}")
37
+ endif()
38
+ endif()
39
+
40
+ find_package_handle_standard_args(
41
+ Pytest
42
+ REQUIRED_VARS
43
+ PYTEST_EXECUTABLE
44
+ VERSION_VAR
45
+ PYTEST_VERSION
46
+ HANDLE_COMPONENTS
47
+ HANDLE_VERSION_RANGE
48
+ )
49
+
50
+ if (Pytest_FOUND AND NOT TARGET Pytest::Pytest)
51
+ add_executable(Pytest::Pytest IMPORTED)
52
+ set_target_properties(Pytest::Pytest
53
+ PROPERTIES
54
+ IMPORTED_LOCATION "${PYTEST_EXECUTABLE}")
55
+
56
+ # Function to discover pytest tests and add them to CTest.
57
+ function(pytest_discover_tests NAME)
58
+ set(_BOOL_ARGS
59
+ STRIP_PARAM_BRACKETS
60
+ INCLUDE_FILE_PATH
61
+ BUNDLE_TESTS
62
+ )
63
+
64
+ set(_SINGLE_VALUE_ARGS
65
+ WORKING_DIRECTORY
66
+ TRIM_FROM_NAME
67
+ TRIM_FROM_FULL_NAME
68
+ )
69
+
70
+ set(_MULTI_VALUE_ARGS
71
+ TEST_PATHS
72
+ LIBRARY_PATH_PREPEND
73
+ PYTHON_PATH_PREPEND
74
+ ENVIRONMENT
75
+ PROPERTIES
76
+ DEPENDS
77
+ EXTRA_ARGS
78
+ DISCOVERY_EXTRA_ARGS
79
+ )
80
+
81
+ cmake_parse_arguments(
82
+ PARSE_ARGV 1 ""
83
+ "${_BOOL_ARGS}"
84
+ "${_SINGLE_VALUE_ARGS}"
85
+ "${_MULTI_VALUE_ARGS}"
86
+ )
87
+
88
+ # Set platform-specific library path environment variable.
89
+ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
90
+ set(LIBRARY_ENV_NAME PATH)
91
+ elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin)
92
+ set(LIBRARY_ENV_NAME DYLD_LIBRARY_PATH)
93
+ else()
94
+ set(LIBRARY_ENV_NAME LD_LIBRARY_PATH)
95
+ endif()
96
+
97
+ # Convert paths to CMake-friendly format.
98
+ if(DEFINED ENV{${LIBRARY_ENV_NAME}})
99
+ cmake_path(CONVERT "$ENV{${LIBRARY_ENV_NAME}}" TO_CMAKE_PATH_LIST LIBRARY_PATH)
100
+ else()
101
+ set(LIBRARY_PATH "")
102
+ endif()
103
+ if(DEFINED ENV{PYTHONPATH})
104
+ cmake_path(CONVERT "$ENV{PYTHONPATH}" TO_CMAKE_PATH_LIST PYTHON_PATH)
105
+ else()
106
+ set(PYTHON_PATH "")
107
+ endif()
108
+
109
+ # Prepend specified paths to the library and Python paths.
110
+ if (_LIBRARY_PATH_PREPEND)
111
+ list(REVERSE _LIBRARY_PATH_PREPEND)
112
+ foreach (_path ${_LIBRARY_PATH_PREPEND})
113
+ set(LIBRARY_PATH "${_path}" "${LIBRARY_PATH}")
114
+ endforeach()
115
+ endif()
116
+
117
+ if (_PYTHON_PATH_PREPEND)
118
+ list(REVERSE _PYTHON_PATH_PREPEND)
119
+ foreach (_path ${_PYTHON_PATH_PREPEND})
120
+ set(PYTHON_PATH "${_path}" "${PYTHON_PATH}")
121
+ endforeach()
122
+ endif()
123
+
124
+ # Set default working directory if none is specified.
125
+ if (NOT _WORKING_DIRECTORY)
126
+ set(_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
127
+ endif()
128
+
129
+ get_filename_component(_WORKING_DIRECTORY "${_WORKING_DIRECTORY}" REALPATH)
130
+
131
+ # Override option by environment variable if available.
132
+ if (DEFINED ENV{BUNDLE_PYTHON_TESTS})
133
+ set(_BUNDLE_TESTS $ENV{BUNDLE_PYTHON_TESTS})
134
+ endif()
135
+
136
+ # Define file paths for generated CMake include files.
137
+ set(_include_file "${CMAKE_CURRENT_BINARY_DIR}/${NAME}_include.cmake")
138
+ set(_tests_file "${CMAKE_CURRENT_BINARY_DIR}/${NAME}_tests.cmake")
139
+
140
+ add_custom_command(
141
+ VERBATIM
142
+ OUTPUT "${_tests_file}"
143
+ DEPENDS ${_DEPENDS}
144
+ COMMAND ${CMAKE_COMMAND}
145
+ -D "PYTEST_EXECUTABLE=${PYTEST_EXECUTABLE}"
146
+ -D "TEST_PATHS=${_TEST_PATHS}"
147
+ -D "TEST_GROUP_NAME=${NAME}"
148
+ -D "BUNDLE_TESTS=${_BUNDLE_TESTS}"
149
+ -D "LIBRARY_ENV_NAME=${LIBRARY_ENV_NAME}"
150
+ -D "LIBRARY_PATH=${LIBRARY_PATH}"
151
+ -D "PYTHON_PATH=${PYTHON_PATH}"
152
+ -D "TRIM_FROM_NAME=${_TRIM_FROM_NAME}"
153
+ -D "TRIM_FROM_FULL_NAME=${_TRIM_FROM_FULL_NAME}"
154
+ -D "STRIP_PARAM_BRACKETS=${_STRIP_PARAM_BRACKETS}"
155
+ -D "INCLUDE_FILE_PATH=${_INCLUDE_FILE_PATH}"
156
+ -D "WORKING_DIRECTORY=${_WORKING_DIRECTORY}"
157
+ -D "ENVIRONMENT=${_ENVIRONMENT}"
158
+ -D "TEST_PROPERTIES=${_PROPERTIES}"
159
+ -D "CTEST_FILE=${_tests_file}"
160
+ -D "EXTRA_ARGS=${_EXTRA_ARGS}"
161
+ -D "DISCOVERY_EXTRA_ARGS=${_DISCOVERY_EXTRA_ARGS}"
162
+ -P "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/PytestAddTests.cmake")
163
+
164
+ # Create a custom target to run the tests.
165
+ add_custom_target(${NAME} ALL DEPENDS ${_tests_file})
166
+
167
+ file(WRITE "${_include_file}"
168
+ "if(EXISTS \"${_tests_file}\")\n"
169
+ " include(\"${_tests_file}\")\n"
170
+ "else()\n"
171
+ " add_test(${NAME}_NOT_BUILT ${NAME}_NOT_BUILT)\n"
172
+ "endif()\n"
173
+ )
174
+
175
+ # Register the include file to be processed for tests.
176
+ set_property(DIRECTORY
177
+ APPEND PROPERTY TEST_INCLUDE_FILES "${_include_file}")
178
+
179
+ endfunction()
180
+
181
+ endif()
@@ -0,0 +1,174 @@
1
+ # Wrapper used to create individual CTest tests from Pytest tests.
2
+ cmake_minimum_required(VERSION 3.20...4.2)
3
+
4
+ if(CMAKE_SCRIPT_MODE_FILE)
5
+
6
+ # Initialize content for the CMake test file.
7
+ set(_content "")
8
+
9
+ # Convert library and Python paths to native format.
10
+ cmake_path(CONVERT "${LIBRARY_PATH}" TO_NATIVE_PATH_LIST LIBRARY_PATH)
11
+ cmake_path(CONVERT "${PYTHON_PATH}" TO_NATIVE_PATH_LIST PYTHON_PATH)
12
+
13
+ # Serialize path values separated by semicolons (required on Windows).
14
+ string(REPLACE [[;]] [[\\;]] LIBRARY_PATH "${LIBRARY_PATH}")
15
+ string(REPLACE [[;]] [[\\;]] PYTHON_PATH "${PYTHON_PATH}")
16
+
17
+ # Set up the encoded environment with required paths.
18
+ set(ENCODED_ENVIRONMENT
19
+ "${LIBRARY_ENV_NAME}=${LIBRARY_PATH}"
20
+ "PYTHONPATH=${PYTHON_PATH}"
21
+ )
22
+
23
+ # Serialize additional environment variables if any are provided.
24
+ foreach(env ${ENVIRONMENT})
25
+ string(REPLACE [[;]] [[\\;]] env "${env}")
26
+ list(APPEND ENCODED_ENVIRONMENT "${env}")
27
+ endforeach()
28
+
29
+ # Handle EXTRA_ARGS for individual tests
30
+ if(BUNDLE_TESTS)
31
+ list(PREPEND EXTRA_ARGS ${DISCOVERY_EXTRA_ARGS})
32
+ endif()
33
+
34
+ set(EXTRA_ARGS_WRAPPED)
35
+ foreach(arg IN LISTS EXTRA_ARGS)
36
+ list(APPEND EXTRA_ARGS_WRAPPED "[==[${arg}]==]")
37
+ endforeach()
38
+ list(JOIN EXTRA_ARGS_WRAPPED " " EXTRA_ARGS_STR)
39
+
40
+ # Macro to create individual tests with optional test properties.
41
+ macro(create_test NAME IDENTIFIERS)
42
+ string(APPEND _content "add_test([==[${NAME}]==] \"${PYTEST_EXECUTABLE}\"")
43
+
44
+ foreach(identifier ${IDENTIFIERS})
45
+ string(APPEND _content " [==[${identifier}]==]")
46
+ endforeach()
47
+
48
+ string(APPEND _content " ${EXTRA_ARGS_STR} )\n")
49
+
50
+ # Prepare the properties for the test, including the environment settings.
51
+ set(args "PROPERTIES ENVIRONMENT [==[${ENCODED_ENVIRONMENT}]==]")
52
+
53
+ # Add working directory
54
+ string(APPEND args " WORKING_DIRECTORY [==[${WORKING_DIRECTORY}]==]")
55
+
56
+ # Append any additional properties, escaping complex characters if necessary.
57
+ foreach(property ${TEST_PROPERTIES})
58
+ if(property MATCHES "[^-./:a-zA-Z0-9_]")
59
+ string(APPEND args " [==[${property}]==]")
60
+ else()
61
+ string(APPEND args " ${property}")
62
+ endif()
63
+ endforeach()
64
+
65
+ # Append the test properties to the content.
66
+ string(APPEND _content "set_tests_properties([==[${NAME}]==] ${args})\n")
67
+ endmacro()
68
+
69
+ # If tests are bundled together, create a single test group.
70
+ if (BUNDLE_TESTS)
71
+ create_test("\${TEST_GROUP_NAME}" "\${TEST_PATHS}")
72
+
73
+ else()
74
+ # Set environment variables for collecting tests.
75
+ set(ENV{${LIBRARY_ENV_NAME}} "${LIBRARY_PATH}")
76
+ set(ENV{PYTHONPATH} "${PYTHON_PATH}")
77
+ set(ENV{PYTHONWARNINGS} "ignore")
78
+
79
+ set(_command
80
+ "${PYTEST_EXECUTABLE}" --collect-only -q
81
+ "--rootdir=${WORKING_DIRECTORY}"
82
+ ${DISCOVERY_EXTRA_ARGS}
83
+ )
84
+
85
+ foreach(test_path IN LISTS TEST_PATHS)
86
+ list(APPEND _command "${test_path}")
87
+ endforeach()
88
+
89
+ # Collect tests.
90
+ execute_process(
91
+ COMMAND ${_command}
92
+ OUTPUT_VARIABLE _output_lines
93
+ ERROR_VARIABLE _output_lines
94
+ OUTPUT_STRIP_TRAILING_WHITESPACE
95
+ WORKING_DIRECTORY ${WORKING_DIRECTORY}
96
+ )
97
+
98
+ # Check for errors during test collection.
99
+ string(REGEX MATCH "(=+ ERRORS =+|ERROR:).*" _error "${_output_lines}")
100
+
101
+ if (_error)
102
+ message(${_error})
103
+ message(FATAL_ERROR "An error occurred during the collection of Python tests.")
104
+ endif()
105
+
106
+ # Convert the collected output into a list of lines.
107
+ string(REPLACE [[;]] [[\;]] _output_lines "${_output_lines}")
108
+ string(REPLACE "\n" ";" _output_lines "${_output_lines}")
109
+
110
+ # Regex pattern to identify pytest test identifiers.
111
+ set(test_pattern "([^:]+)\.py(::([^:]+))?::([^:]+)")
112
+
113
+ # Iterate through each line to identify and process tests.
114
+ foreach(line ${_output_lines})
115
+ string(REGEX MATCHALL ${test_pattern} matching "${line}")
116
+
117
+ # Skip lines that are not identified as tests.
118
+ if (NOT matching)
119
+ continue()
120
+ endif()
121
+
122
+ # Extract file, class, and function names from the test pattern.
123
+ set(_file ${CMAKE_MATCH_1})
124
+ set(_class ${CMAKE_MATCH_3})
125
+ set(_func ${CMAKE_MATCH_4})
126
+
127
+ # Optionally trim parts of the class or function name.
128
+ if (TRIM_FROM_NAME)
129
+ string(REGEX REPLACE "${TRIM_FROM_NAME}" "" _class "${_class}")
130
+ string(REGEX REPLACE "${TRIM_FROM_NAME}" "" _func "${_func}")
131
+ endif()
132
+
133
+ # Form the test name using class and function.
134
+ if (_class)
135
+ set(test_name "${_class}.${_func}")
136
+ else()
137
+ set(test_name "${_func}")
138
+ endif()
139
+
140
+ # Optionally strip parameter brackets from the test name.
141
+ if (STRIP_PARAM_BRACKETS)
142
+ string(REGEX REPLACE "\\[(.+)\\]$" ".\\1" test_name "${test_name}")
143
+ endif()
144
+
145
+ # Optionally include the file path in the test name.
146
+ if (INCLUDE_FILE_PATH)
147
+ cmake_path(CONVERT "${_file}" TO_CMAKE_PATH_LIST _file)
148
+ string(REGEX REPLACE "/" "." _file "${_file}")
149
+ set(test_name "${_file}.${test_name}")
150
+ endif()
151
+
152
+ # Optionally trim parts of the full test name.
153
+ if (TRIM_FROM_FULL_NAME)
154
+ string(REGEX REPLACE "${TRIM_FROM_FULL_NAME}" "" test_name "${test_name}")
155
+ endif()
156
+
157
+ # Prefix the test name with the test group name.
158
+ set(test_name "${TEST_GROUP_NAME}.${test_name}")
159
+ set(test_case "${line}")
160
+
161
+ # Create the test for CTest.
162
+ create_test("\${test_name}" "\${test_case}")
163
+ endforeach()
164
+
165
+ # Warn if no tests were discovered.
166
+ if(NOT _content)
167
+ message(WARNING "No Python tests have been discovered.")
168
+ endif()
169
+ endif()
170
+
171
+ # Write the generated test content to the specified CTest file.
172
+ file(WRITE ${CTEST_FILE} ${_content})
173
+
174
+ endif()
@@ -0,0 +1 @@
1
+ include(${CMAKE_CURRENT_LIST_DIR}/FindPytest.cmake)
@@ -0,0 +1,2 @@
1
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
2
+ set(PACKAGE_VERSION_EXACT TRUE)
@@ -0,0 +1,98 @@
1
+ Metadata-Version: 2.4
2
+ Name: pytest-cmake
3
+ Version: 1.3.0
4
+ Summary: Provide CMake module for Pytest
5
+ Project-URL: Documentation, https://python-cmake.github.io/pytest-cmake
6
+ Project-URL: Repository, https://github.com/python-cmake/pytest-cmake
7
+ Project-URL: Issues, https://github.com/python-cmake/pytest-cmake/issues
8
+ Project-URL: Changelog, https://python-cmake.github.io/pytest-cmake/release/release_notes.html
9
+ Author-email: Jeremy Retailleau <jeremy.retailleau@gmail.com>
10
+ License: MIT License
11
+
12
+ Copyright (c) 2022 Jeremy Retailleau
13
+
14
+ Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ of this software and associated documentation files (the "Software"), to deal
16
+ in the Software without restriction, including without limitation the rights
17
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ copies of the Software, and to permit persons to whom the Software is
19
+ furnished to do so, subject to the following conditions:
20
+
21
+ The above copyright notice and this permission notice shall be included in all
22
+ copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ SOFTWARE.
31
+ License-File: LICENSE
32
+ Keywords: cmake,development,pytest
33
+ Classifier: Intended Audience :: Developers
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3.7
37
+ Classifier: Programming Language :: Python :: 3.8
38
+ Classifier: Programming Language :: Python :: 3.9
39
+ Classifier: Programming Language :: Python :: 3.10
40
+ Classifier: Programming Language :: Python :: 3.11
41
+ Classifier: Programming Language :: Python :: 3.12
42
+ Classifier: Programming Language :: Python :: 3.13
43
+ Classifier: Programming Language :: Python :: 3.14
44
+ Classifier: Topic :: Software Development :: Build Tools
45
+ Requires-Python: <4,>=3.7
46
+ Requires-Dist: pytest<10,>=4
47
+ Description-Content-Type: text/markdown
48
+
49
+ # Pytest CMake
50
+
51
+ [![PyPi version](https://img.shields.io/pypi/v/pytest-cmake.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.python.org/pypi/pytest-cmake)
52
+ [![CMake](https://img.shields.io/badge/CMake-3.20...4.2-blue.svg?logo=CMake&logoColor=blue)](https://cmake.org)
53
+ [![Test](https://github.com/python-cmake/pytest-cmake/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/python-cmake/pytest-cmake/actions/workflows/test.yml)
54
+ [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
55
+
56
+ This project provides convenient ways to use [Pytest](https://docs.pytest.org/)
57
+ within a [CMake](https://cmake.org/) project. The package can be discovered from a specific range of
58
+ versions on Linux, macOS or Windows using the
59
+ [find_package](https://cmake.org/cmake/help/latest/command/find_package.html)
60
+ function:
61
+
62
+ ```cmake
63
+ find_package(Pytest 8.2.1 REQUIRED)
64
+ ```
65
+
66
+ A ``pytest_discover_tests`` function is provided to simplify automatic
67
+ testing for C++ projects with Python bindings. It can create CTest tests
68
+ for each Python test collected within a controlled environment:
69
+
70
+ ```cmake
71
+ pytest_discover_tests(
72
+ PythonTest
73
+ LIBRARY_PATH_PREPEND
74
+ $<TARGET_FILE_DIR:MyLibrary>
75
+ PYTHON_PATH_PREPEND
76
+ $<TARGET_FILE_DIR:MyLibrary>
77
+ TRIM_FROM_NAME "^test_"
78
+ DEPENDS MyLibrary
79
+ )
80
+ ```
81
+
82
+ Running the tests will display the status for each test collected as follows:
83
+
84
+ ```console
85
+ Start 1: PythonTest.greet_world
86
+ 1/4 Test #1: PythonTest.greet_world ........... Passed 0.47 sec
87
+ Start 2: PythonTest.greet_john
88
+ 2/4 Test #2: PythonTest.greet_john ............ Passed 0.47 sec
89
+ Start 3: PythonTest.greet_julia
90
+ 3/4 Test #3: PythonTest.greet_julia ........... Passed 0.47 sec
91
+ Start 4: PythonTest.greet_michael
92
+ 4/4 Test #4: PythonTest.greet_michael ......... Passed 0.54 sec
93
+ ```
94
+
95
+ ## Documentation
96
+
97
+ Full documentation, including installation and setup guides, can be found at
98
+ https://python-cmake.github.io/pytest-cmake/
@@ -0,0 +1,11 @@
1
+ pytest_cmake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ pytest_cmake/__main__.py,sha256=VvjZ0QSrkDeE5WcJQpDSvOa15PjvA1ljSXNr8clXiys,675
3
+ pytest_cmake-1.3.0.data/data/share/Pytest/cmake/FindPytest.cmake,sha256=tHYL0K6FaEoY04A8x3lSeCNHT3rHYFuBY2e8Dm6sxQU,5898
4
+ pytest_cmake-1.3.0.data/data/share/Pytest/cmake/PytestAddTests.cmake,sha256=sSlJF_4CzqhSRbT_1kWaty8SaValWsEQ4rbpoe9QsRs,6337
5
+ pytest_cmake-1.3.0.data/data/share/Pytest/cmake/PytestConfig.cmake,sha256=mjY07j10zOr9ChuCWxaFcVddtZtUuCzgbsXNqkjXWV0,52
6
+ pytest_cmake-1.3.0.data/data/share/Pytest/cmake/PytestConfigVersion.cmake,sha256=TRP8QeDuZBDb2XcQt6puOti7APCjC2rLsJQcAvPGUP0,69
7
+ pytest_cmake-1.3.0.dist-info/METADATA,sha256=G-iou5qRWWZ1fz772-8gpverqsOz1o3T6D02K5Wzsls,4483
8
+ pytest_cmake-1.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
+ pytest_cmake-1.3.0.dist-info/entry_points.txt,sha256=5DF8oST81fUiAixoL9GQqrlj6I8yyiVwggL4R3RdxGc,60
10
+ pytest_cmake-1.3.0.dist-info/licenses/LICENSE,sha256=T7t6Q9Wwnz_iCCF4eC1F6Ug1ouqNV4BlsenOE_6Rpdc,1073
11
+ pytest_cmake-1.3.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ pytest-cmake = pytest_cmake.__main__:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Jeremy Retailleau
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.