diff options
author | Iikka Eklund <iikka.eklund@qt.io> | 2021-09-30 08:56:20 +0300 |
---|---|---|
committer | Iikka Eklund <iikka.eklund@qt.io> | 2021-11-04 08:02:00 +0000 |
commit | 14213d33c3243d7ba175845868b64868bf3a5331 (patch) | |
tree | 975fe6d2b935e512c7d65379ac77a00ec32bad13 | |
parent | 95258383c0985a33501ecfe4214a44fb7e65b63c (diff) |
Run mypy, black, flake8 and isort and update Pipfile
Add mypy, types-pyyaml and isort to Pipenv.
Run the linters and fix/clean found issues.
Change-Id: I3a197491f92ff53ff99c7516956ac1dc3311b311
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
-rw-r--r-- | Pipfile | 3 | ||||
-rw-r--r-- | Pipfile.lock | 171 | ||||
-rw-r--r-- | conanfile.py | 38 | ||||
-rw-r--r-- | mypy.ini | 10 | ||||
-rw-r--r-- | test/test_conanfile.py | 65 |
5 files changed, 200 insertions, 87 deletions
@@ -6,6 +6,9 @@ name = "pypi" [packages] ddt = "*" conan = "*" +mypy = "*" +types-pyyaml = "*" +isort = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index eed4725..9867cc7 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "e0ee0791c92c49dc9b73f2d6ac1273e5fc38e9e742db6ed56c9e1d5595e825a0" + "sha256": "98bd7a4d1af64d3913602e991f373b239c83dd24c85b612290a747c49f7addf7" }, "pipfile-spec": 6, "requires": { @@ -32,11 +32,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b", - "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3" + "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6", + "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f" ], "markers": "python_version >= '3'", - "version": "==2.0.4" + "version": "==2.0.6" }, "colorama": { "hashes": [ @@ -48,32 +48,25 @@ }, "conan": { "hashes": [ - "sha256:7f1fa90578f84d5801e53cce6aa7c98ed97a99fb2b38b3f12a5d9784722340e0" + "sha256:2dde4e484261f588167a2789874d26f518f13dab3217062d5cecd89f106cd181" ], "index": "pypi", - "version": "==1.39.0" + "version": "==1.40.2" }, "ddt": { "hashes": [ - "sha256:39a8bfe0a8a75ebd209a5abd0da7895532548c9f6d7bd97714d2d5d2bfa6d844", - "sha256:64a67366a2715e636b88694cc6075cc02db292f01098b8e385397c894d395378" + "sha256:03d78d31c135f5fa3d0121dee96775c6c15390c6888fc5a3cb69f3895831ebce", + "sha256:9c14f2c6dc63203b4dc4b0138ee0c1cb5d2545605ee6270bb8e90fd47b74b7f1" ], "index": "pypi", - "version": "==1.4.2" - }, - "deprecation": { - "hashes": [ - "sha256:c0392f676a6146f0238db5744d73e786a43510d54033f80994ef2f4c9df192ed", - "sha256:dc9b4f252b7aca8165ce2764a71da92a653b5ffbf7a389461d7a640f6536ecb2" - ], - "version": "==2.0.7" + "version": "==1.4.3" }, "distro": { "hashes": [ - "sha256:0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92", - "sha256:df74eed763e18d10d0da624258524ae80486432cd17392d9c3d96f5e83cd2799" + "sha256:83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424", + "sha256:c8713330ab31a034623a9515663ed87696700b55f04556b97c39cd261aa70dc7" ], - "version": "==1.5.0" + "version": "==1.6.0" }, "fasteners": { "hashes": [ @@ -97,6 +90,14 @@ "markers": "python_version >= '3'", "version": "==3.2" }, + "isort": { + "hashes": [ + "sha256:9c2ea1e62d871267b78307fe511c0838ba0da28698c5732d54e2790bf3ba9899", + "sha256:e17d6e2b81095c9db0a03a8025a957f334d6ea30b26f9ec70805411e5c7c81f2" + ], + "index": "pypi", + "version": "==5.9.3" + }, "jinja2": { "hashes": [ "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", @@ -165,6 +166,42 @@ "markers": "python_version >= '3.6'", "version": "==2.0.1" }, + "mypy": { + "hashes": [ + "sha256:088cd9c7904b4ad80bec811053272986611b84221835e079be5bcad029e79dd9", + "sha256:0aadfb2d3935988ec3815952e44058a3100499f5be5b28c34ac9d79f002a4a9a", + "sha256:119bed3832d961f3a880787bf621634ba042cb8dc850a7429f643508eeac97b9", + "sha256:1a85e280d4d217150ce8cb1a6dddffd14e753a4e0c3cf90baabb32cefa41b59e", + "sha256:3c4b8ca36877fc75339253721f69603a9c7fdb5d4d5a95a1a1b899d8b86a4de2", + "sha256:3e382b29f8e0ccf19a2df2b29a167591245df90c0b5a2542249873b5c1d78212", + "sha256:42c266ced41b65ed40a282c575705325fa7991af370036d3f134518336636f5b", + "sha256:53fd2eb27a8ee2892614370896956af2ff61254c275aaee4c230ae771cadd885", + "sha256:704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150", + "sha256:7df1ead20c81371ccd6091fa3e2878559b5c4d4caadaf1a484cf88d93ca06703", + "sha256:866c41f28cee548475f146aa4d39a51cf3b6a84246969f3759cb3e9c742fc072", + "sha256:a155d80ea6cee511a3694b108c4494a39f42de11ee4e61e72bc424c490e46457", + "sha256:adaeee09bfde366d2c13fe6093a7df5df83c9a2ba98638c7d76b010694db760e", + "sha256:b6fb13123aeef4a3abbcfd7e71773ff3ff1526a7d3dc538f3929a49b42be03f0", + "sha256:b94e4b785e304a04ea0828759172a15add27088520dc7e49ceade7834275bedb", + "sha256:c0df2d30ed496a08de5daed2a9ea807d07c21ae0ab23acf541ab88c24b26ab97", + "sha256:c6c2602dffb74867498f86e6129fd52a2770c48b7cd3ece77ada4fa38f94eba8", + "sha256:ceb6e0a6e27fb364fb3853389607cf7eb3a126ad335790fa1e14ed02fba50811", + "sha256:d9dd839eb0dc1bbe866a288ba3c1afc33a202015d2ad83b31e875b5905a079b6", + "sha256:e4dab234478e3bd3ce83bac4193b2ecd9cf94e720ddd95ce69840273bf44f6de", + "sha256:ec4e0cd079db280b6bdabdc807047ff3e199f334050db5cbb91ba3e959a67504", + "sha256:ecd2c3fe726758037234c93df7e98deb257fd15c24c9180dacf1ef829da5f921", + "sha256:ef565033fa5a958e62796867b1df10c40263ea9ded87164d67572834e57a174d" + ], + "index": "pypi", + "version": "==0.910" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], + "version": "==0.4.3" + }, "node-semver": { "hashes": [ "sha256:4016f7c1071b0493f18db69ea02d3763e98a633606d7c7beca811e53b5ac66b7", @@ -172,14 +209,6 @@ ], "version": "==0.6.1" }, - "packaging": { - "hashes": [ - "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7", - "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14" - ], - "markers": "python_version >= '3.6'", - "version": "==21.0" - }, "patch-ng": { "hashes": [ "sha256:627abc5bd723c8b481e96849b9734b10065426224d4d22cd44137004ac0d4ace" @@ -207,14 +236,6 @@ ], "version": "==1.7.1" }, - "pyparsing": { - "hashes": [ - "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", - "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" - ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.4.7" - }, "python-dateutil": { "hashes": [ "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", @@ -268,27 +289,87 @@ }, "six": { "hashes": [ - "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", - "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.15.0" + "version": "==1.16.0" + }, + "toml": { + "hashes": [ + "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", + "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.2" }, "tqdm": { "hashes": [ - "sha256:80aead664e6c1672c4ae20dc50e1cdc5e20eeff9b14aa23ecd426375b28be588", - "sha256:a4d6d112e507ef98513ac119ead1159d286deab17dffedd96921412c2d236ff5" + "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c", + "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==4.62.2" + "version": "==4.62.3" + }, + "typed-ast": { + "hashes": [ + "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace", + "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff", + "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266", + "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528", + "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6", + "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808", + "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4", + "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363", + "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341", + "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04", + "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41", + "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e", + "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3", + "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899", + "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805", + "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c", + "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c", + "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39", + "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a", + "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3", + "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7", + "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f", + "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075", + "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0", + "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40", + "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428", + "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927", + "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3", + "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f", + "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65" + ], + "markers": "python_version < '3.8'", + "version": "==1.4.3" + }, + "types-pyyaml": { + "hashes": [ + "sha256:1d9e431e9f1f78a65ea957c558535a3b15ad67ea4912bce48a6c1b613dcf81ad", + "sha256:f1d1357168988e45fa20c65aecb3911462246a84809015dd889ebf8b1db74124" + ], + "index": "pypi", + "version": "==5.4.10" + }, + "typing-extensions": { + "hashes": [ + "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e", + "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7", + "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34" + ], + "version": "==3.10.0.2" }, "urllib3": { "hashes": [ - "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2", - "sha256:f5321fbe4bf3fefa0efd0bfe7fb14e90909eb62a48ccda331726b4319897dd5e" + "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece", + "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", - "version": "==1.25.11" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4.0'", + "version": "==1.26.7" } }, "develop": {} diff --git a/conanfile.py b/conanfile.py index 93783cf..1e3ab09 100644 --- a/conanfile.py +++ b/conanfile.py @@ -26,14 +26,15 @@ ## ############################################################################# -from conans import ConanFile, tools, Options -from abc import ABCMeta, abstractmethod import os import re -import yaml +from abc import ABCMeta, abstractmethod from functools import lru_cache from pathlib import Path -from typing import List, Dict, Optional, Tuple, Callable, Any +from typing import Any, Callable, Dict, List, Optional, Tuple + +import yaml +from conans import ConanFile, tools class QtConanError(Exception): @@ -41,12 +42,17 @@ class QtConanError(Exception): def build_leaf_qt_module(conan_file: ConanFile): - run_qt_configure_module_with_additional_packages_prefix(conan_file, build_func=run_qt_configure_module) + run_qt_configure_module_with_additional_packages_prefix( + conan_file, build_func=run_qt_configure_module + ) -def run_qt_configure_module_with_additional_packages_prefix(conan_file: ConanFile, build_func: Callable): - prefixes = "".join([conan_file.deps_cpp_info[d].rootpath + ";" - for d in conan_file.deps_cpp_info.deps]) +def run_qt_configure_module_with_additional_packages_prefix( + conan_file: ConanFile, build_func: Callable +): + prefixes = "".join( + [conan_file.deps_cpp_info[d].rootpath + ";" for d in conan_file.deps_cpp_info.deps] + ) conan_file.output.info(f"Using QT_ADDITIONAL_PACKAGES_PREFIX_PATH: {prefixes}") with tools.environment_append({"QT_ADDITIONAL_PACKAGES_PREFIX_PATH": prefixes}): build_env_wrap(conan_file, build_func) @@ -62,7 +68,11 @@ def build_env_wrap(conan_file: ConanFile, build_func: Callable): def run_qt_configure_module(conan_file: ConanFile): # We use the Qt's 'bin/qt-configure-module' directly - script = Path("qt-configure-module.bat") if tools.os_info.is_windows else Path("qt-configure-module") + script = ( + Path("qt-configure-module.bat") + if tools.os_info.is_windows + else Path("qt-configure-module") + ) qt_configure_module = Path(conan_file.deps_cpp_info["qtbase"].rootpath) / "bin" / script qt_module_features, cmake_args = parse_qt_leaf_module_options(conan_file) cmd = " ".join( @@ -73,14 +83,14 @@ def run_qt_configure_module(conan_file: ConanFile): "--", f"-DQT_BUILD_SINGLE_REPO_TARGET_SET={conan_file.name}", f"-DCMAKE_INSTALL_PREFIX={conan_file.package_folder}", - f"{' '.join(cmake_args)}" if cmake_args else "" + f"{' '.join(cmake_args)}" if cmake_args else "", ] ) conan_file.output.info(f"Calling: {cmd}") conan_file.run(cmd, run_environment=True) - # Qt qt-configure-module would direct the install to qtbase's -prefix which we do not want, we need - # to direct the install to this packages '/package' directory + # Qt qt-configure-module would direct the install to qtbase's -prefix which we do not want, + # we need to direct the install to this packages '/package' directory Path(conan_file.package_folder).mkdir(parents=True) cmd = " ".join(["cmake", "--build", "."]) conan_file.output.info(f"Calling: {cmd}") @@ -97,7 +107,7 @@ def parse_qt_leaf_module_options(conan_file: ConanFile) -> Tuple[List[str], List continue elif option_name == "cmake_args_leaf_module": # replace multiple white space with one, strip ' and " characters - cmake_args = (' '.join(option_value.split())).strip("\'\"").split(" ") + cmake_args = (" ".join(option_value.split())).strip("'\"").split(" ") elif not conan_file.is_qt_module_feature(option_name): # this option is not intended to be passed to 'qt-configure-module.bat' continue @@ -153,7 +163,7 @@ def parse_qt_version_by_key(source_folder: Path, key: str) -> str: def parse_module_dependencies(source_folder: Path) -> List[str]: with open(source_folder / "dependencies.yaml") as f: dep_list = yaml.load(f, Loader=yaml.FullLoader) - return [d.split("/")[-1] for d in dep_list.get('dependencies', {}).keys()] + return [d.split("/")[-1] for d in dep_list.get("dependencies", {}).keys()] def filter_cmake_args_for_package_id(cmake_args: Optional[str]) -> Optional[str]: diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 0000000..34c2c32 --- /dev/null +++ b/mypy.ini @@ -0,0 +1,10 @@ +[mypy] +python_version = 3.8 +cache_fine_grained = True +warn_unused_ignores = True +ignore_missing_imports = True +warn_no_return = True +incremental = True +warn_unreachable = True +follow_imports=error + diff --git a/test/test_conanfile.py b/test/test_conanfile.py index 2147c86..8ffeb26 100644 --- a/test/test_conanfile.py +++ b/test/test_conanfile.py @@ -29,19 +29,26 @@ ## ############################################################################# import unittest -from ddt import ddt, data from pathlib import Path -from conanfile import parse_module_dependencies, parse_qt_version_by_key,\ - filter_cmake_args_for_package_id +from typing import List, Tuple + +from ddt import data, ddt + +from conanfile import (filter_cmake_args_for_package_id, + parse_module_dependencies, parse_qt_version_by_key) @ddt class TestConanFile(unittest.TestCase): - - @data(("data/qtwebengine", ["qtdeclarative", "qtlocation", "qtquickcontrols2", "qttools", "qtwebchannel"]), - ("data/qt3d", ["qtbase", "qtdeclarative", "qtshadertools"]), - ("data/qtbase", [])) - def test_parse_module_dependencies(self, data: str) -> None: + @data( + ( + "data/qtwebengine", + ["qtdeclarative", "qtlocation", "qtquickcontrols2", "qttools", "qtwebchannel"], + ), + ("data/qt3d", ["qtbase", "qtdeclarative", "qtshadertools"]), + ("data/qtbase", []), + ) + def test_parse_module_dependencies(self, data: Tuple[str, List[str]]) -> None: test_data_path, expected_result = data tmp = Path(Path(__file__).parent / test_data_path).resolve() self.assertEqual(set(parse_module_dependencies(tmp)), set(expected_result)) @@ -56,10 +63,7 @@ class TestConanFile(unittest.TestCase): ), ( "data/qt3d", - { - "QT_REPO_MODULE_VERSION": "6.2.0", - "QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT": "", - }, + {"QT_REPO_MODULE_VERSION": "6.2.0", "QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT": ""}, ), ( "data/qtbase", @@ -75,22 +79,27 @@ class TestConanFile(unittest.TestCase): for key in expected_result.keys(): self.assertEqual(parse_qt_version_by_key(path, key), expected_result[key]) - @data(("\"-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DFOO=bar\"", - "\"-DFOO=bar\""), - ("\"-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache", - None), - (" \"-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DFOO=bar\" ", - "\"-DFOO=bar\""), - ("\"-DFEATURE_headersclean=ON -DPostgreSQL_ROOT=/foo/bar -DFOO=bar\"", - "\"-DFOO=bar\""), - ("\"-DOPENSSL_ROOT_DIR=/foo/path -DFOO=bar -DBAR=foo -DFOO2=bar2 \"", - "\"-DFOO=bar -DBAR=foo -DFOO2=bar2\""), - ("\"-DLLVM_INSTALL_DIR=/foo/path -DFOO=bar -DBAR=foo -DFOO2=bar2\"", - "\"-DFOO=bar -DBAR=foo -DFOO2=bar2\""), - ("\"-DLLVM_INSTALL_DIR=/foo/path -DFOO=bar -DODBC_ROOT=/usr/local/opt/libiodbc\"", - "\"-DFOO=bar\""), - ("", - None)) + @data( + ( + '"-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DFOO=bar"', + '"-DFOO=bar"', + ), + ('"-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', None), + ( + ' "-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DFOO=bar" ', + '"-DFOO=bar"', + ), + ('"-DFEATURE_headersclean=ON -DPostgreSQL_ROOT=/foo/bar -DFOO=bar"', '"-DFOO=bar"'), + ( + '"-DOPENSSL_ROOT_DIR=/foo/path -DFOO=bar -DBAR=foo -DFOO2=bar2 "', + '"-DFOO=bar -DBAR=foo -DFOO2=bar2"', + ), + ( + '"-DLLVM_INSTALL_DIR=/foo/path -DFOO=bar -DBAR=foo -DFOO2=bar2"', + '"-DFOO=bar -DBAR=foo -DFOO2=bar2"', + ), + ("", None), + ) def test_filter_cmake_args_for_package_id(self, data) -> None: self.assertEqual(filter_cmake_args_for_package_id(data[0]), data[1]) |