diff --git a/.github/workflows/build-test-release.yml b/.github/workflows/build-test-release.yml index c621410a7..ad1afe94f 100644 --- a/.github/workflows/build-test-release.yml +++ b/.github/workflows/build-test-release.yml @@ -58,7 +58,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.13" - uses: pre-commit/action@v3.0.1 semgrep: @@ -72,6 +72,9 @@ jobs: - uses: actions/checkout@v4 with: submodules: true + - uses: actions/setup-python@v5 + with: + python-version: "3.13" - name: Generate GitHub App Token id: app-token uses: actions/create-github-app-token@v3 @@ -87,7 +90,6 @@ jobs: poetry install poetry run pytest -v tests/unit - test-splunk-external: runs-on: ubuntu-22.04 needs: @@ -182,7 +184,7 @@ jobs: owner: ${{ github.repository_owner }} - uses: actions/setup-python@v5 with: - python-version: 3.7 + python-version: "3.13" - run: | git config --global --add url."https://x-access-token:${{ steps.app-token.outputs.token }}@github.com".insteadOf https://github.com git config --global --add url."https://x-access-token:${{ steps.app-token.outputs.token }}@github.com".insteadOf ssh://git@github.com @@ -244,7 +246,7 @@ jobs: owner: ${{ github.repository_owner }} - uses: actions/setup-python@v5 with: - python-version: "3.7" + python-version: "3.13" - name: Install PSA with CIM models ${{ matrix.cim-models.label }} env: GH_TOKEN: ${{ steps.app-token.outputs.token }} @@ -307,7 +309,7 @@ jobs: owner: ${{ github.repository_owner }} - uses: actions/setup-python@v5 with: - python-version: "3.7" + python-version: "3.13" - uses: actions/download-artifact@v4 with: name: THIRDPARTY diff --git a/docs/index.md b/docs/index.md index f78ea188e..cf74cba89 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,7 +12,7 @@ which allows the user to test [knowledge objects](https://docs.splunk.com/Splexi ## Support -- **Python**: 3.7 +- **Python**: 3.13 - **Platforms**: Linux, Windows and MacOS ## Installation diff --git a/docs/troubleshoot.md b/docs/troubleshoot.md index 68b515003..6d57ad355 100644 --- a/docs/troubleshoot.md +++ b/docs/troubleshoot.md @@ -21,7 +21,7 @@ substitutions: **4. Getting Couldn't find a version that satisfies the requirement when installing pytest-splunk-addon using pip.** - - Use `pip3 install pytest-splunk-addon` and make sure you are using python 3.7 + - Use `python3.13 -m pip install pytest-splunk-addon` and make sure you are using Python 3.13. **5. While executing test cases on Docker, all the test cases abort with the following setup failure:** diff --git a/entrypoint.sh b/entrypoint.sh index 5efa88839..cbd27c461 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -4,8 +4,8 @@ cd /work curl https://pyenv.run | bash export PATH="~/.pyenv/bin:$PATH" eval "$(pyenv init -)" -pyenv install 3.7.8 -pyenv local 3.7.8 +pyenv install 3.13.0 +pyenv local 3.13.0 curl -sSL https://install.python-poetry.org | python - --version 1.5.1 export PATH="/root/.local/bin:$PATH" source ~/.poetry/env diff --git a/poetry.lock b/poetry.lock index 6629bc7f1..0ffbadc8f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -24,9 +24,6 @@ files = [ {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] -[package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} - [package.extras] benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] @@ -253,9 +250,6 @@ files = [ {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, ] -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - [package.extras] toml = ["tomli ; python_full_version <= \"3.11.0a6\""] @@ -301,25 +295,6 @@ files = [ [package.extras] dev = ["Sphinx", "coverage", "flake8", "lxml", "lxml-stubs", "memory-profiler", "memray", "mypy", "tox", "xmlschema (>=2.0.0)"] -[[package]] -name = "exceptiongroup" -version = "1.3.1" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -groups = ["main", "dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"}, - {file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} - -[package.extras] -test = ["pytest (>=6)"] - [[package]] name = "execnet" version = "2.0.2" @@ -349,24 +324,19 @@ files = [ [package.dependencies] python-dateutil = ">=2.4" -typing-extensions = {version = ">=3.10.0.1", markers = "python_version < \"3.8\""} [[package]] name = "filelock" -version = "3.12.2" +version = "3.32.2" description = "A platform independent file lock." optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, - {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, + {file = "filelock-3.32.2-py3-none-any.whl", hash = "sha256:87dd94cf281e586d135fa51132b8e3d9a598b316e90377a288663c9321036c82"}, + {file = "filelock-3.32.2.tar.gz", hash = "sha256:c33351e1f49cae33414acbc6d56784e6ecee82514ec90795da1161fc4836b5b8"}, ] -[package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] - [[package]] name = "freezegun" version = "1.5.1" @@ -399,60 +369,18 @@ pyparsing = ">=3.1,<4" [[package]] name = "idna" -version = "3.10" +version = "3.18" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.6" -groups = ["main", "dev"] -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "importlib-metadata" -version = "6.7.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["main", "dev"] -markers = "python_version == \"3.7\"" -files = [ - {file = "importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5"}, - {file = "importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4"}, -] - -[package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} -zipp = ">=0.5" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)", "pytest-ruff"] - -[[package]] -name = "importlib-resources" -version = "5.12.0" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.7" -groups = ["main"] -markers = "python_version < \"3.9\"" files = [ - {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, - {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, + {file = "idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2"}, + {file = "idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"}, ] -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8 ; python_version < \"3.12\"", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\""] +all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "iniconfig" @@ -480,11 +408,7 @@ files = [ [package.dependencies] attrs = ">=17.4.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} -pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] @@ -515,36 +439,35 @@ files = [ ] [[package]] -name = "pkgutil-resolve-name" -version = "1.3.10" -description = "Resolve a name to an object." +name = "pluggy" +version = "1.6.0" +description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.6" -groups = ["main"] -markers = "python_version < \"3.9\"" +python-versions = ">=3.9" +groups = ["main", "dev"] files = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, + {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, + {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["coverage", "pytest", "pytest-benchmark"] + [[package]] -name = "pluggy" -version = "1.2.0" -description = "plugin and hook calling mechanisms for python" +name = "pygments" +version = "2.20.0" +description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, + {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, ] -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyparsing" @@ -600,27 +523,25 @@ files = [ [[package]] name = "pytest" -version = "7.4.4" +version = "9.1.1" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" groups = ["main", "dev"] files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c"}, + {file = "pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313"}, ] [package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} +iniconfig = ">=1.0.1" +packaging = ">=22" +pluggy = ">=1.5,<2" +pygments = ">=2.7.2" [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -707,25 +628,25 @@ files = [ [[package]] name = "requests" -version = "2.31.0" +version = "2.34.2" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" groups = ["main", "dev"] files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0"}, + {file = "requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed"}, ] [package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +certifi = ">=2023.5.7" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" +urllib3 = ">=1.26,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<8)"] [[package]] name = "requests-mock" @@ -804,48 +725,23 @@ defusedxml = ">=0.7.1,<0.8.0" httplib2 = ">=0.20.0" splunk-sdk = ">=1.6.20" -[[package]] -name = "tomli" -version = "2.0.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.7" -groups = ["main", "dev"] -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -markers = {main = "python_version < \"3.11\"", dev = "python_full_version <= \"3.11.0a6\""} - -[[package]] -name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" -optional = false -python-versions = ">=3.7" -groups = ["main", "dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, -] - [[package]] name = "urllib3" -version = "1.26.20" +version = "2.7.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.10" groups = ["main", "dev"] files = [ - {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"}, - {file = "urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"}, + {file = "urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897"}, + {file = "urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c"}, ] [package.extras] -brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ; python_version >= \"3\" and platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name == \"nt\" and python_version < \"3\""] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "xmlschema" @@ -885,7 +781,7 @@ version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.7" -groups = ["main", "dev"] +groups = ["main"] files = [ {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, @@ -897,5 +793,5 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.1" -python-versions = "^3.7" -content-hash = "263dbb8509dcbf025d2714a2c9ab79020918b476a6775aa4967dc118ebaac2d1" +python-versions = ">=3.13,<3.14" +content-hash = "f46015a8497218b6527a432fcf71f90bc92b65827b165052d74ad73650809fa5" diff --git a/pyproject.toml b/pyproject.toml index 0558636d8..664397d11 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,20 +25,20 @@ classifiers = [ "Intended Audience :: Developers", "Topic :: Software Development :: Testing", "Programming Language :: Python", - "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.13", "Operating System :: OS Independent", "License :: OSI Approved :: Apache Software License", ] include = ["pytest_splunk_addon/**/*.json", "pytest_splunk_addon/**/*.txt"] [tool.poetry.dependencies] -python = "^3.7" -pytest = ">5.4.0,<8" +python = ">=3.13,<3.14" +pytest = ">=9.0.3,<10" splunk-sdk = ">=1.6" -requests = "^2.31.0" +requests = ">=2.33.0,<3" jsonschema = "^4.17.3" pytest-xdist = "^3.5.0" -filelock = "^3.0" +filelock = ">=3.20.3,<4" pytest-ordering = "~0.6" junitparser = "^4.0.0" addonfactory-splunk-conf-parser-lib = "*" @@ -47,7 +47,7 @@ Faker = "^18.12.0" xmltodict = "^0.14.0" xmlschema = "^2.5.1" splunksplwrapper = "^1.1.1" -urllib3 = "<2" +urllib3 = ">=2.5.0,<3" certifi = ">=2024.7.4" zipp = "^3.6.0" diff --git a/tests/e2e/constants.py b/tests/e2e/constants.py index 5f3eff38b..8252b9d96 100644 --- a/tests/e2e/constants.py +++ b/tests/e2e/constants.py @@ -248,8 +248,8 @@ ] TA_FICTION_SKIPPED = [ - "*test_splunk_app_fiction.py::Test_App::test_requirements_fields[splunk_searchtime_fields_requirements0* SKIPPED*", - "*test_splunk_app_fiction.py::Test_App::test_datamodels[splunk_searchtime_fields_datamodels0* SKIPPED*", + "*test_splunk_app_fiction.py::Test_App::test_requirements_fields[* SKIPPED*", + "*test_splunk_app_fiction.py::Test_App::test_datamodels[* SKIPPED*", ] """ @@ -390,8 +390,8 @@ ] TA_BROKEN_SKIPPED = [ - "*test_splunk_app_broken.py::Test_App::test_requirements_fields[splunk_searchtime_fields_requirements0* SKIPPED*", - "*test_splunk_app_broken.py::Test_App::test_datamodels[splunk_searchtime_fields_datamodels0* SKIPPED*", + "*test_splunk_app_broken.py::Test_App::test_requirements_fields[* SKIPPED*", + "*test_splunk_app_broken.py::Test_App::test_datamodels[* SKIPPED*", ] """ @@ -430,7 +430,7 @@ ] TA_CIM_FICTION_SKIPPED = [ - "*test_splunk_app_cim_fiction.py::Test_App::test_cim_fields_recommended[splunk_searchtime_cim_fields_recommended0* SKIPPED*" + "*test_splunk_app_cim_fiction.py::Test_App::test_cim_fields_recommended[* SKIPPED*" ] """ @@ -479,7 +479,7 @@ ] TA_CIM_BROKEN_SKIPPED = [ - "*test_splunk_app_cim_broken.py::Test_App::test_cim_fields_recommended[splunk_searchtime_cim_fields_recommended0* SKIPPED*" + "*test_splunk_app_cim_broken.py::Test_App::test_cim_fields_recommended[* SKIPPED*" ] """ @@ -669,14 +669,14 @@ Define the TA_fiction_indextime add-on skipped test case list. """ TA_FICTION_INDEXTIME_SKIPPED = [ - "*test_splunk_fiction_indextime.py::Test_App::test_cim_required_fields*splunk_searchtime_cim_fields0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_cim_fields_not_allowed_in_search*splunk_searchtime_cim_fields_not_allowed_in_search0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_tags*splunk_searchtime_fields_tags0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_eventtype*splunk_searchtime_fields_eventtypes0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_savedsearches*splunk_searchtime_fields_savedsearches0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_datamodels[splunk_searchtime_fields_datamodels0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_cim_fields_recommended[splunk_searchtime_cim_fields_recommended0* SKIPPED*", - "*test_splunk_fiction_indextime.py::Test_App::test_requirements_fields[splunk_searchtime_fields_requirements0* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_cim_required_fields* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_cim_fields_not_allowed_in_search* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_tags* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_eventtype* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_savedsearches* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_datamodels[* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_cim_fields_recommended[* SKIPPED*", + "*test_splunk_fiction_indextime.py::Test_App::test_requirements_fields[* SKIPPED*", ] """ @@ -760,16 +760,16 @@ Define the TA_fiction_indextime_broken add-on skipped test case list. """ TA_FICTION_INDEXTIME_BROKEN_SKIPPED = [ - "*test_splunk_fiction_indextime_broken.py::Test_App::test_cim_required_fields*splunk_searchtime_cim_fields0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_cim_fields_not_allowed_in_search*splunk_searchtime_cim_fields_not_allowed_in_search0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_props_fields*splunk_searchtime_fields_positive0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_props_fields_no_dash_not_empty*splunk_searchtime_fields_negative0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_tags*splunk_searchtime_fields_tags0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_eventtype*splunk_searchtime_fields_eventtypes0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_savedsearches*splunk_searchtime_fields_savedsearches0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_datamodels[splunk_searchtime_fields_datamodels0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_requirements_fields[splunk_searchtime_fields_requirements0* SKIPPED*", - "*test_splunk_fiction_indextime_broken.py::Test_App::test_cim_fields_recommended[splunk_searchtime_cim_fields_recommended0* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_cim_required_fields* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_cim_fields_not_allowed_in_search* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_props_fields* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_props_fields_no_dash_not_empty* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_tags* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_eventtype* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_savedsearches* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_datamodels[* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_requirements_fields[* SKIPPED*", + "*test_splunk_fiction_indextime_broken.py::Test_App::test_cim_fields_recommended[* SKIPPED*", ] TA_REQ_TRANSITION_PASSED = [ "*test_splunk_app_req.py::Test_App::test_events_with_untokenised_values PASSED*", @@ -829,8 +829,8 @@ ] TA_REQ_TRANSITION_SKIPPED = [ - "*test_splunk_app_req.py::Test_App::test_savedsearches[splunk_searchtime_fields_savedsearches0* SKIPPED*", - "*test_splunk_app_req.py::Test_App::test_indextime_key_fields[splunk_indextime_key_fields0* SKIPPED*", + "*test_splunk_app_req.py::Test_App::test_savedsearches[* SKIPPED*", + "*test_splunk_app_req.py::Test_App::test_indextime_key_fields[* SKIPPED*", ] TA_REQ_TRANSITION_FAILED = [] @@ -840,13 +840,13 @@ """ TA_REQ_BROKEN_PASSED = [ "*test_splunk_app_req_broken.py::Test_App::test_events_with_untokenised_values PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[juniper:junos:firewall::10.0.0.30* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[juniper:junos:firewall::10.0.0.31* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so10* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so11* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so12* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so13* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so14* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[juniper:junos:firewall::10.0.0.3_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[juniper:junos:firewall::10.0.0.3_1* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so1_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so1_1* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so1_2* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so1_3* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_time[req:test:broken::so1_4* PASSED*", "*test_splunk_app_req_broken.py::Test_App::test_indextime_line_breaker[juniper:junos:firewall::syslog.xml* PASSED*", "*test_splunk_app_req_broken.py::Test_App::test_indextime_line_breaker[req:test:broken::sample_modinput.xml* PASSED*", '*test_splunk_app_req_broken.py::Test_App::test_cim_required_fields[eventtype="net"::All_Traffic* PASSED*', @@ -887,27 +887,27 @@ '*test_splunk_app_req_broken.py::Test_App::test_cim_fields_not_allowed_in_search[eventtype="test_auth"::Authentication* PASSED*', "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_not_allowed_in_props[searchtime_cim_fields* PASSED*", "*test_splunk_app_req_broken.py::Test_App::test_eventtype_mapped_multiple_cim_datamodel[mapped_datamodel_tests* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so10* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so12* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so13* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so14* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Network_Traffic-::sample_name::syslog.xml::host::10.0.0.30* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Network_Traffic-::sample_name::syslog.xml::host::10.0.0.31* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so1_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so1_2* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so1_3* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so1_4* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Network_Traffic-::sample_name::syslog.xml::host::10.0.0.3_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Network_Traffic-::sample_name::syslog.xml::host::10.0.0.3_1* PASSED*", "*test_splunk_app_req_broken.py::Test_App::test_splunk_internal_errors PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so10* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so11* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so12* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::syslog.xml::host::10.0.0.30* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::syslog.xml::host::10.0.0.31* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so1_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so1_1* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so1_2* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::syslog.xml::host::10.0.0.3_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::syslog.xml::host::10.0.0.3_1* PASSED*", '*test_splunk_app_req_broken.py::Test_App::test_tags[eventtype="net"::tag::communicate* PASSED*', '*test_splunk_app_req_broken.py::Test_App::test_tags[eventtype="net"::tag::network* PASSED*', '*test_splunk_app_req_broken.py::Test_App::test_tags[eventtype="test_auth"::tag::authentication* PASSED*', - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so10* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so11* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so12* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so13* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so14* PASSED*", - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Network_Traffic::sample_name::syslog.xml::host::10.0.0.30* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so1_0* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so1_1* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so1_2* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so1_3* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Authentication::sample_name::sample_modinput.xml::host::so1_4* PASSED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Network_Traffic::sample_name::syslog.xml::host::10.0.0.3_0* PASSED*", "*test_splunk_app_req_broken.py::Test_App::test_eventtype[eventtype::net* PASSED*", "*test_splunk_app_req_broken.py::Test_App::test_eventtype[eventtype::test_auth* PASSED*", ] @@ -925,20 +925,20 @@ '*test_splunk_app_req_broken.py::Test_App::test_cim_required_fields[eventtype="net"::All_Traffic::transport* FAILED*', '*test_splunk_app_req_broken.py::Test_App::test_cim_required_fields[eventtype="net"::Blocked_Traffic* FAILED*', '*test_splunk_app_req_broken.py::Test_App::test_cim_required_fields[eventtype="net"::All_Traffic::vendor_product* FAILED*', - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so13* FAILED*", - "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so14* FAILED*", - "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so11* FAILED*", - "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Network_Traffic::sample_name::syslog.xml::host::10.0.0.31* FAILED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so1_3* FAILED*", + "*test_splunk_app_req_broken.py::Test_App::test_requirements_fields[sample_name::sample_modinput.xml::host::so1_4* FAILED*", + "*test_splunk_app_req_broken.py::Test_App::test_cim_fields_recommended[Authentication-::sample_name::sample_modinput.xml::host::so1_1* FAILED*", + "*test_splunk_app_req_broken.py::Test_App::test_datamodels[Network_Traffic::sample_name::syslog.xml::host::10.0.0.3_1* FAILED*", ] """ Define the TA_broken add-on skipped test case list. """ TA_REQ_BROKEN_SKIPPED = [ - "*test_splunk_app_req_broken.py::Test_App::test_indextime_key_fields[splunk_indextime_key_fields0* SKIPPED*", - "*test_splunk_app_req_broken.py::Test_App::test_props_fields[splunk_searchtime_fields_positive0* SKIPPED*", - "*test_splunk_app_req_broken.py::Test_App::test_props_fields_no_dash_not_empty[splunk_searchtime_fields_negative0* SKIPPED*", - "*test_splunk_app_req_broken.py::Test_App::test_savedsearches[splunk_searchtime_fields_savedsearches0* SKIPPED*", + "*test_splunk_app_req_broken.py::Test_App::test_indextime_key_fields[* SKIPPED*", + "*test_splunk_app_req_broken.py::Test_App::test_props_fields[* SKIPPED*", + "*test_splunk_app_req_broken.py::Test_App::test_props_fields_no_dash_not_empty[* SKIPPED*", + "*test_splunk_app_req_broken.py::Test_App::test_savedsearches[* SKIPPED*", ] """ @@ -1008,8 +1008,8 @@ '*test_splunk_cim_model.py::Test_App::test_cim_fields_not_allowed_in_search[eventtype="test_ipv6"::All_Traffic* PASSED*', "*test_splunk_cim_model.py::Test_App::test_cim_fields_not_allowed_in_props[searchtime_cim_fields* PASSED*", "*test_splunk_cim_model.py::Test_App::test_eventtype_mapped_multiple_cim_datamodel[mapped_datamodel_tests* PASSED*", - "*test_splunk_cim_model.py::Test_App::test_cim_fields_recommended[Change-::sample_name::test_change.xml::host::so10* PASSED*", - "*test_splunk_cim_model.py::Test_App::test_cim_fields_recommended[Change-::sample_name::test_change.xml::host::so11* PASSED*", + "*test_splunk_cim_model.py::Test_App::test_cim_fields_recommended[Change-::sample_name::test_change.xml::host::so1_0* PASSED*", + "*test_splunk_cim_model.py::Test_App::test_cim_fields_recommended[Change-::sample_name::test_change.xml::host::so1_1* PASSED*", "*test_splunk_cim_model.py::Test_App::test_cim_fields_recommended[Change-Account_Management::sample_name::test_change.xml::host::so1* PASSED*", ] @@ -1290,8 +1290,8 @@ ] TA_FICTION_EP_SKIPPED = [ - "*test_splunk_app_fiction_with_ep.py::Test_App::test_requirements_fields[splunk_searchtime_fields_requirements0* SKIPPED*", - "*test_splunk_app_fiction_with_ep.py::Test_App::test_datamodels[splunk_searchtime_fields_datamodels0* SKIPPED*", + "*test_splunk_app_fiction_with_ep.py::Test_App::test_requirements_fields[* SKIPPED*", + "*test_splunk_app_fiction_with_ep.py::Test_App::test_datamodels[* SKIPPED*", ] TA_REQ_EP_TRANSITION_PASSED = [ @@ -1352,8 +1352,8 @@ ] TA_REQ_EP_TRANSITION_SKIPPED = [ - "*test_splunk_app_req_with_ep.py::Test_App::test_savedsearches[splunk_searchtime_fields_savedsearches0* SKIPPED*", - "*test_splunk_app_req_with_ep.py::Test_App::test_indextime_key_fields[splunk_indextime_key_fields0* SKIPPED*", + "*test_splunk_app_req_with_ep.py::Test_App::test_savedsearches[* SKIPPED*", + "*test_splunk_app_req_with_ep.py::Test_App::test_indextime_key_fields[* SKIPPED*", ] TA_REQ_EP_TRANSITION_FAILED = []