From 26ec554a5332f51d04227b2fa06fcc851908690f Mon Sep 17 00:00:00 2001 From: Jan Kadlec Date: Thu, 8 Oct 2026 09:13:43 +0200 Subject: [PATCH 1/2] build: bump vulnerable dependencies `uv audit` reported 46 advisories in pyjwt, urllib3, virtualenv, werkzeug, sh and wasmtime. This fixes all that can be fixed from this repo; sh (pinned to 1.x by gitlint) and wasmtime (no fix released, comes via gooddata-code-convertors) remain. User-facing changes: - gooddata-api-client now requires urllib3 >=2.8.0 (was >=2.6.1), fixing HTTPS proxy TLS config being ignored, a chunked deflate infinite loop and unbounded chunk-size line buffering. - gooddata-api-client now requires Python >=3.10 (was >=3.6). urllib3 2.7+ dropped Python 3.9, so the old marker was no longer accurate. - gooddata-sdk now requires python-dotenv >=1.2.2 (was >=1.0.0). - gooddata-pipelines now requires requests >=2.33.0 (was >=2.32.3). - Behavior change when connecting through an HTTPS proxy (an `https://` proxy URL): urllib3 2.8 no longer applies the destination TLS settings (`ssl_ca_cert`, `cert_file`, `key_file`) to the TLS handshake with the proxy itself. If the proxy certificate was trusted only through `ssl_ca_cert`, add its CA to the system trust store. Plain `http://` proxies and direct connections are unaffected. - Environments where another package caps urllib3 below 2.8 will now report a dependency conflict at install time. Internal: test-group urllib3 pins move to `~=2.8`; lock upgrades for pyjwt 2.15.1 (via msal/azure-identity in pipelines), virtualenv 21.14.5 and werkzeug 3.1.9. The urllib3 and Python requirements are changed in the openapi-generator templates too so regeneration keeps them. --- .../custom_templates/requirements.mustache | 2 +- .../custom_templates/setup.mustache | 4 +- gooddata-api-client/requirements.txt | 2 +- gooddata-api-client/setup.py | 4 +- packages/gooddata-fdw/pyproject.toml | 2 +- packages/gooddata-pandas/pyproject.toml | 2 +- packages/gooddata-pipelines/pyproject.toml | 2 +- packages/gooddata-sdk/pyproject.toml | 4 +- uv.lock | 40 ++++++++++--------- 9 files changed, 32 insertions(+), 30 deletions(-) diff --git a/.openapi-generator/custom_templates/requirements.mustache b/.openapi-generator/custom_templates/requirements.mustache index 230bff3ba..2580f6ddf 100644 --- a/.openapi-generator/custom_templates/requirements.mustache +++ b/.openapi-generator/custom_templates/requirements.mustache @@ -1,3 +1,3 @@ python_dateutil >= 2.5.3 setuptools >= 21.0.0 -urllib3 ~= 2.6.1 +urllib3 ~= 2.8 diff --git a/.openapi-generator/custom_templates/setup.mustache b/.openapi-generator/custom_templates/setup.mustache index 46a76c426..f792ebadc 100644 --- a/.openapi-generator/custom_templates/setup.mustache +++ b/.openapi-generator/custom_templates/setup.mustache @@ -19,7 +19,7 @@ VERSION = "{{packageVersion}}" # http://pypi.python.org/pypi/setuptools REQUIRES = [ - "urllib3 >= 2.6.1", + "urllib3 >= 2.8.0", "python-dateutil", {{#asyncio}} "aiohttp >= 3.0.0", @@ -41,7 +41,7 @@ setup( author_email="{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}", url="{{packageUrl}}", keywords=["OpenAPI", "OpenAPI-Generator", "{{{appName}}}"], - python_requires=">=3.6", + python_requires=">=3.10", install_requires=REQUIRES, packages=find_packages(exclude=["test", "tests"]), include_package_data=True, diff --git a/gooddata-api-client/requirements.txt b/gooddata-api-client/requirements.txt index 230bff3ba..2580f6ddf 100644 --- a/gooddata-api-client/requirements.txt +++ b/gooddata-api-client/requirements.txt @@ -1,3 +1,3 @@ python_dateutil >= 2.5.3 setuptools >= 21.0.0 -urllib3 ~= 2.6.1 +urllib3 ~= 2.8 diff --git a/gooddata-api-client/setup.py b/gooddata-api-client/setup.py index 4f8a9fdfb..7b4e1aa20 100644 --- a/gooddata-api-client/setup.py +++ b/gooddata-api-client/setup.py @@ -25,7 +25,7 @@ # http://pypi.python.org/pypi/setuptools REQUIRES = [ - "urllib3 >= 2.6.1", + "urllib3 >= 2.8.0", "python-dateutil", ] @@ -37,7 +37,7 @@ author_email="support@gooddata.com", url="", keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI definition"], - python_requires=">=3.6", + python_requires=">=3.10", install_requires=REQUIRES, packages=find_packages(exclude=["test", "tests"]), include_package_data=True, diff --git a/packages/gooddata-fdw/pyproject.toml b/packages/gooddata-fdw/pyproject.toml index 8facc2758..036ed60d0 100644 --- a/packages/gooddata-fdw/pyproject.toml +++ b/packages/gooddata-fdw/pyproject.toml @@ -54,7 +54,7 @@ test = [ "pytest-json-report==1.5.0", "vcrpy~=8.3.0", # TODO - Bump the version together with bumping the version of openapi generator - "urllib3~=2.7.0", + "urllib3~=2.8", "pyyaml", "tests_support", ] diff --git a/packages/gooddata-pandas/pyproject.toml b/packages/gooddata-pandas/pyproject.toml index 6edadb0bf..79a290cc9 100644 --- a/packages/gooddata-pandas/pyproject.toml +++ b/packages/gooddata-pandas/pyproject.toml @@ -61,7 +61,7 @@ test = [ "pytest-snapshot==0.9.0", "pytest-order~=1.5.0", "vcrpy~=8.3.0", - "urllib3~=2.7.0", + "urllib3~=2.8", "python-dotenv~=1.2.3", "pyyaml", "tests_support", diff --git a/packages/gooddata-pipelines/pyproject.toml b/packages/gooddata-pipelines/pyproject.toml index bda8b239e..9918cfcb7 100644 --- a/packages/gooddata-pipelines/pyproject.toml +++ b/packages/gooddata-pipelines/pyproject.toml @@ -9,7 +9,7 @@ readme = "README.md" requires-python = ">=3.10" dependencies = [ "pydantic (>=2.9.2,<3.0.0)", - "requests (>=2.32.3,<3.0.0)", + "requests (>=2.33.0,<3.0.0)", "types-requests (>1.0.0,<3.0.0)", "gooddata-sdk~=1.76.0", "boto3 (>=1.39.3,<2.0.0)", diff --git a/packages/gooddata-sdk/pyproject.toml b/packages/gooddata-sdk/pyproject.toml index 0a89fa56a..89d1728cf 100644 --- a/packages/gooddata-sdk/pyproject.toml +++ b/packages/gooddata-sdk/pyproject.toml @@ -33,7 +33,7 @@ dependencies = [ "cattrs>=22.1.0,<=26.1.0", "brotli==1.2.0", "requests>=2.33.0,<3.0.0", - "python-dotenv>=1.0.0,<2.0.0", + "python-dotenv>=1.2.2,<2.0.0", "gooddata-code-convertors>=11.57.0", ] classifiers = [ @@ -68,7 +68,7 @@ test = [ "pytest-snapshot==0.9.0", "pytest-order~=1.5.0", "vcrpy~=8.3.0", - "urllib3~=2.7.0", + "urllib3~=2.8", "python-dotenv~=1.2.3", "deepdiff~=9.1.0", "tests_support", diff --git a/uv.lock b/uv.lock index 0b0fa65a6..5e8492921 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 5 requires-python = ">=3.10, <4.0" resolution-markers = [ "python_full_version >= '3.14'", @@ -998,7 +998,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "python-dateutil" }, - { name = "urllib3", specifier = ">=2.6.1" }, + { name = "urllib3", specifier = ">=2.8.0" }, ] [[package]] @@ -1134,7 +1134,7 @@ test = [ { name = "pytest-json-report", specifier = "==1.5.0" }, { name = "pyyaml" }, { name = "tests-support", editable = "packages/tests-support" }, - { name = "urllib3", specifier = "~=2.7.0" }, + { name = "urllib3", specifier = "~=2.8" }, { name = "vcrpy", specifier = "~=8.3.0" }, ] @@ -1268,7 +1268,7 @@ test = [ { name = "python-dotenv", specifier = "~=1.2.3" }, { name = "pyyaml" }, { name = "tests-support", editable = "packages/tests-support" }, - { name = "urllib3", specifier = "~=2.7.0" }, + { name = "urllib3", specifier = "~=2.8" }, { name = "vcrpy", specifier = "~=8.3.0" }, ] @@ -1306,7 +1306,7 @@ requires-dist = [ { name = "boto3-stubs", specifier = ">=1.39.3,<2.0.0" }, { name = "gooddata-sdk", editable = "packages/gooddata-sdk" }, { name = "pydantic", specifier = ">=2.9.2,<3.0.0" }, - { name = "requests", specifier = ">=2.32.3,<3.0.0" }, + { name = "requests", specifier = ">=2.33.0,<3.0.0" }, { name = "types-pyyaml", specifier = ">=6.0.12.20250326,<7.0.0" }, { name = "types-requests", specifier = ">1.0.0,<3.0.0" }, ] @@ -1325,6 +1325,7 @@ test = [ name = "gooddata-python-sdk-workspace" version = "1.76.0" source = { virtual = "." } +default-groups = ["dev", "lint", "test", "tox", "type"] dependencies = [ { name = "gooddata-api-client" }, { name = "gooddata-dbt" }, @@ -1471,7 +1472,7 @@ requires-dist = [ { name = "gooddata-code-convertors", specifier = ">=11.57.0" }, { name = "pyarrow", marker = "extra == 'arrow'", specifier = ">=23.0.1" }, { name = "python-dateutil", specifier = ">=2.5.3" }, - { name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" }, + { name = "python-dotenv", specifier = ">=1.2.2,<2.0.0" }, { name = "pyyaml", specifier = ">=6.0" }, { name = "requests", specifier = ">=2.33.0,<3.0.0" }, ] @@ -1488,7 +1489,7 @@ test = [ { name = "pytest-snapshot", specifier = "==0.9.0" }, { name = "python-dotenv", specifier = "~=1.2.3" }, { name = "tests-support", editable = "packages/tests-support" }, - { name = "urllib3", specifier = "~=2.7.0" }, + { name = "urllib3", specifier = "~=2.8" }, { name = "vcrpy", specifier = "~=8.3.0" }, ] @@ -2616,14 +2617,14 @@ wheels = [ [[package]] name = "pyjwt" -version = "2.13.0" +version = "2.15.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/ea/5194e52748b0da83d71e082d75496eaec6e58f419f5e184786ded517e6a9/pyjwt-2.15.1.tar.gz", hash = "sha256:4f259e80cdfb6b3fc18a7de51fd1ef9ec79652f25019bae68975ca2468a34df8", size = 121252, upload-time = "2026-09-28T18:40:42.598Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" }, + { url = "https://files.pythonhosted.org/packages/50/ca/44de4e75f8aadc457f0634be3b542815078ded46dca30efb960edeecad6e/pyjwt-2.15.1-py3-none-any.whl", hash = "sha256:42d59d631f7768a1028a64c7ff581a9bf7519804daf91fc5b6c56e30eec5e193", size = 33860, upload-time = "2026-09-28T18:40:41.429Z" }, ] [package.optional-dependencies] @@ -3514,11 +3515,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] [[package]] @@ -3536,18 +3537,19 @@ wheels = [ [[package]] name = "virtualenv" -version = "21.7.8" +version = "21.14.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "distlib" }, { name = "filelock" }, + { name = "packaging" }, { name = "platformdirs" }, { name = "python-discovery" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/08/1c/69faa2e6a83484e2a8227bce5cfaa183941c5720f99c48f204931d286b07/virtualenv-21.7.8.tar.gz", hash = "sha256:1dc49c790072a9072cb1803f9bd62aa69cd583077cada32390f75505cdc64c9b", size = 5347580, upload-time = "2026-09-01T13:36:13.894Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/f9/f323b3b6058cff3853b31cf6a49c0425ed797bf9611572ec10d065e08bac/virtualenv-21.14.5.tar.gz", hash = "sha256:c4cb6c13e46b57225a999c7e22a09b163393878facc7ac4c059a57f46faa1647", size = 5467127, upload-time = "2026-10-02T17:42:25.613Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/34/88d507d4a4030fa559788de9c690a214f9a4053aa1d91cfb60e9b36127c2/virtualenv-21.7.8-py3-none-any.whl", hash = "sha256:3040eb3cbf5d32b10ffd57d167e6a162237ad82ba7d8cf1400a1efed593d85ac", size = 5324617, upload-time = "2026-09-01T13:36:11.248Z" }, + { url = "https://files.pythonhosted.org/packages/df/93/084f10ebbecdedf7902ed68fbecc903f0e9c5742155bfffb05eccbc071da/virtualenv-21.14.5-py3-none-any.whl", hash = "sha256:b0651e0174982bba17cc6f0aaa2ef496730cb85a3f35eb5d1119d1c904f7d1da", size = 5487482, upload-time = "2026-10-02T17:42:23.38Z" }, ] [[package]] @@ -3569,14 +3571,14 @@ wheels = [ [[package]] name = "werkzeug" -version = "3.1.8" +version = "3.1.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dd/b2/381be8cfdee792dd117872481b6e378f85c957dd7c5bca38897b08f765fd/werkzeug-3.1.8.tar.gz", hash = "sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44", size = 875852, upload-time = "2026-04-02T18:49:14.268Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/34/4dd12fc8bb7d61c91467ec3efe415ffa7d5456f799954b40c5bbaeae470e/werkzeug-3.1.9.tar.gz", hash = "sha256:55ca7c70a75689be937aa27f8ff4b018f06ff4838fc73045560bf0f5a1291060", size = 940188, upload-time = "2026-09-27T18:33:41.637Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/8c/2e650f2afeb7ee576912636c23ddb621c91ac6a98e66dc8d29c3c69446e1/werkzeug-3.1.8-py3-none-any.whl", hash = "sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50", size = 226459, upload-time = "2026-04-02T18:49:12.72Z" }, + { url = "https://files.pythonhosted.org/packages/a1/38/df03f564f43cec2684823f3cccae1a652ee7face1cbaa76fb223096e64d7/werkzeug-3.1.9-py3-none-any.whl", hash = "sha256:6392e50c78460ba618e5b21f08a71f59c99ce99cdc6cf6e3dd7e6ccca8754fab", size = 228700, upload-time = "2026-09-27T18:33:39.685Z" }, ] [[package]] From a1ae1c2e5818026def3365a7fcd014a128532ffe Mon Sep 17 00:00:00 2001 From: Jan Kadlec Date: Thu, 8 Oct 2026 09:17:56 +0200 Subject: [PATCH 2/2] test: enable pytest strict mode pytest 9 adds native `[tool.pytest]` TOML config and a single `strict` switch that turns on strict_markers, strict_config, strict_xfail and strict_parametrization_ids. Enable it in every package so unregistered marks, unknown config keys, unexpectedly passing xfails and duplicate parametrize ids fail instead of warning. Fixes needed to pass: - test_indexed_dataframe.py: `"region"` appears twice in index_types (once as a columns key, once as a label id), producing ids region0 and region1. Cases now carry explicit, descriptive ids. - test_catalog_user_service.py: drop two `pytest.mark.dependency` marks. pytest-dependency is not installed and nothing uses `depends=`, so they only produced PytestUnknownMarkWarning. --- packages/gooddata-dbt/pyproject.toml | 3 +++ packages/gooddata-eval/pyproject.toml | 3 +++ packages/gooddata-fdw/pyproject.toml | 3 +++ packages/gooddata-flexconnect/pyproject.toml | 3 +++ .../gooddata-flight-server/pyproject.toml | 3 +++ packages/gooddata-pandas/pyproject.toml | 3 +++ .../tests/dataframe/test_indexed_dataframe.py | 20 +++++++++---------- packages/gooddata-pipelines/pyproject.toml | 3 +++ packages/gooddata-sdk/pyproject.toml | 3 +++ .../catalog/test_catalog_user_service.py | 3 --- 10 files changed, 34 insertions(+), 13 deletions(-) diff --git a/packages/gooddata-dbt/pyproject.toml b/packages/gooddata-dbt/pyproject.toml index 93ef7a6b2..811b71240 100644 --- a/packages/gooddata-dbt/pyproject.toml +++ b/packages/gooddata-dbt/pyproject.toml @@ -59,3 +59,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-eval/pyproject.toml b/packages/gooddata-eval/pyproject.toml index 5ea54b445..0c36e0969 100644 --- a/packages/gooddata-eval/pyproject.toml +++ b/packages/gooddata-eval/pyproject.toml @@ -71,3 +71,6 @@ allowed-unresolved-imports = ["openai.**", "gooddata_api_client.**"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-fdw/pyproject.toml b/packages/gooddata-fdw/pyproject.toml index 036ed60d0..7e092ae66 100644 --- a/packages/gooddata-fdw/pyproject.toml +++ b/packages/gooddata-fdw/pyproject.toml @@ -77,3 +77,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-flexconnect/pyproject.toml b/packages/gooddata-flexconnect/pyproject.toml index 1e38b651c..16a20e6bc 100644 --- a/packages/gooddata-flexconnect/pyproject.toml +++ b/packages/gooddata-flexconnect/pyproject.toml @@ -79,3 +79,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-flight-server/pyproject.toml b/packages/gooddata-flight-server/pyproject.toml index e8e6ce987..c45ea7a39 100644 --- a/packages/gooddata-flight-server/pyproject.toml +++ b/packages/gooddata-flight-server/pyproject.toml @@ -86,3 +86,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-pandas/pyproject.toml b/packages/gooddata-pandas/pyproject.toml index 79a290cc9..a7a99d73a 100644 --- a/packages/gooddata-pandas/pyproject.toml +++ b/packages/gooddata-pandas/pyproject.toml @@ -88,3 +88,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-pandas/tests/dataframe/test_indexed_dataframe.py b/packages/gooddata-pandas/tests/dataframe/test_indexed_dataframe.py index f42ae3783..e1dd49e39 100644 --- a/packages/gooddata-pandas/tests/dataframe/test_indexed_dataframe.py +++ b/packages/gooddata-pandas/tests/dataframe/test_indexed_dataframe.py @@ -14,20 +14,20 @@ index_types = [ # reference to the columns key - "region", - dict(reg="region"), + pytest.param("region", id="column_key"), + pytest.param(dict(reg="region"), id="column_key_dict"), # label_id, i.e. obj id without "label/" prefix - index can reference only attributes - "region", - dict(region="region"), + pytest.param("region", id="label_id"), + pytest.param(dict(region="region"), id="label_id_dict"), # object identifier in string form - "label/region", - dict(reg="label/region"), + pytest.param("label/region", id="obj_id_str"), + pytest.param(dict(reg="label/region"), id="obj_id_str_dict"), # Attribute instance - Attribute(local_id="abcd", label=ObjId(id="region", type="label")), - dict(region=Attribute(local_id="abcd", label=ObjId(id="region", type="label"))), + pytest.param(Attribute(local_id="abcd", label=ObjId(id="region", type="label")), id="attribute"), + pytest.param(dict(region=Attribute(local_id="abcd", label=ObjId(id="region", type="label"))), id="attribute_dict"), # ObjId instance - ObjId(id="region", type="label"), - dict(region=ObjId(id="region", type="label")), + pytest.param(ObjId(id="region", type="label"), id="obj_id"), + pytest.param(dict(region=ObjId(id="region", type="label")), id="obj_id_dict"), ] diff --git a/packages/gooddata-pipelines/pyproject.toml b/packages/gooddata-pipelines/pyproject.toml index 9918cfcb7..c59e58c48 100644 --- a/packages/gooddata-pipelines/pyproject.toml +++ b/packages/gooddata-pipelines/pyproject.toml @@ -44,3 +44,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-sdk/pyproject.toml b/packages/gooddata-sdk/pyproject.toml index 89d1728cf..e4dba2a41 100644 --- a/packages/gooddata-sdk/pyproject.toml +++ b/packages/gooddata-sdk/pyproject.toml @@ -93,3 +93,6 @@ source = [ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.pytest] +strict = true diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_user_service.py b/packages/gooddata-sdk/tests/catalog/test_catalog_user_service.py index ff4e3a5cd..3666f225a 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_user_service.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_user_service.py @@ -24,7 +24,6 @@ import copy from pathlib import Path -import pytest from gooddata_sdk import ( CatalogAssigneeIdentifier, CatalogDeclarativeUser, @@ -581,7 +580,6 @@ def test_user_replace_user_groups(test_config): assert user_2.user_groups == user_groups -@pytest.mark.dependency(name="test_get_user_permissions") @gd_vcr.use_cassette(str(_fixtures_dir / "test_get_user_permissions.yaml")) def test_get_user_permissions(test_config): """Test retrieving user permissions. @@ -644,7 +642,6 @@ def test_manage_user_permissions(test_config): safe_delete(sdk.catalog_user.manage_user_permissions, user_id, origin_permissions) -@pytest.mark.dependency(name="test_get_user_group_permissions") @gd_vcr.use_cassette(str(_fixtures_dir / "test_get_user_group_permissions.yaml")) def test_get_user_group_permissions(test_config): """Test retrieving user group permissions.