>>> ansible-lint: Building community/ansible-lint 24.12.2-r0 (using abuild 3.15.0-r0) started Wed, 08 Oct 2025 17:38:18 +0000 >>> ansible-lint: Validating /home/udu/aports/community/ansible-lint/APKBUILD... >>> ansible-lint: Analyzing dependencies... >>> ansible-lint: Installing for build: build-base ansible-core black git py3-ansible-compat py3-filelock py3-importlib-metadata py3-jinja2 py3-jsonschema py3-packaging py3-requests py3-rich py3-ruamel.yaml py3-wcmatch py3-yaml python3 yamllint py3-gpep517 py3-installer py3-setuptools py3-setuptools_scm py3-wheel py3-flaky py3-license-expression py3-psutil py3-pylint py3-pytest py3-pytest-cov py3-pytest-mock py3-pytest-mypy py3-pytest-xdist WARNING: opening /home/udu/packages//community: No such file or directory WARNING: opening /home/udu/packages//main: No such file or directory (1/155) Installing py3-markupsafe (3.0.2-r0) (2/155) Installing py3-markupsafe-pyc (3.0.2-r0) (3/155) Installing py3-jinja2 (3.1.6-r0) (4/155) Installing py3-jinja2-pyc (3.1.6-r0) (5/155) Installing py3-parsing (3.2.3-r0) (6/155) Installing py3-parsing-pyc (3.2.3-r0) (7/155) Installing py3-packaging (25.0-r0) (8/155) Installing py3-packaging-pyc (25.0-r0) (9/155) Installing py3-cparser (2.22-r1) (10/155) Installing py3-cparser-pyc (2.22-r1) (11/155) Installing py3-cffi (1.17.1-r1) (12/155) Installing py3-cffi-pyc (1.17.1-r1) (13/155) Installing py3-bcrypt (4.3.0-r0) (14/155) Installing py3-bcrypt-pyc (4.3.0-r0) (15/155) Installing py3-pynacl (1.5.0-r6) (16/155) Installing py3-pynacl-pyc (1.5.0-r6) (17/155) Installing py3-paramiko (3.5.0-r0) (18/155) Installing py3-paramiko-pyc (3.5.0-r0) (19/155) Installing py3-resolvelib (1.1.0-r0) (20/155) Installing py3-resolvelib-pyc (1.1.0-r0) (21/155) Installing yaml (0.2.5-r2) (22/155) Installing py3-yaml (6.0.2-r0) (23/155) Installing py3-yaml-pyc (6.0.2-r0) (24/155) Installing ansible-core-pyc (2.18.6-r0) (25/155) Installing py3-cryptography-pyc (44.0.3-r0) (26/155) Installing py3-cryptography (44.0.3-r0) (27/155) Installing ansible-core (2.18.6-r0) (28/155) Installing py3-click (8.1.8-r1) (29/155) Installing py3-click-pyc (8.1.8-r1) (30/155) Installing py3-mypy-extensions (1.0.0-r3) (31/155) Installing py3-mypy-extensions-pyc (1.0.0-r3) (32/155) Installing py3-pathspec (0.12.1-r2) (33/155) Installing py3-pathspec-pyc (0.12.1-r2) (34/155) Installing py3-platformdirs (4.3.8-r0) (35/155) Installing py3-platformdirs-pyc (4.3.8-r0) (36/155) Installing py3-typed-ast (1.5.5-r1) (37/155) Installing py3-typed-ast-pyc (1.5.5-r1) (38/155) Installing black (25.1.0-r0) (39/155) Installing black-pyc (25.1.0-r0) (40/155) Installing py3-attrs (25.3.0-r0) (41/155) Installing py3-attrs-pyc (25.3.0-r0) (42/155) Installing py3-rpds-py (0.25.1-r0) (43/155) Installing py3-rpds-py-pyc (0.25.1-r0) (44/155) Installing py3-typing-extensions (4.13.2-r0) (45/155) Installing py3-typing-extensions-pyc (4.13.2-r0) (46/155) Installing py3-referencing (0.36.2-r1) (47/155) Installing py3-referencing-pyc (0.36.2-r1) (48/155) Installing py3-jsonschema-specifications (2025.4.1-r0) (49/155) Installing py3-jsonschema-specifications-pyc (2025.4.1-r0) (50/155) Installing py3-jsonschema (4.23.0-r0) (51/155) Installing py3-jsonschema-pyc (4.23.0-r0) (52/155) Installing py3-mdurl (0.1.2-r3) (53/155) Installing py3-mdurl-pyc (0.1.2-r3) (54/155) Installing py3-markdown-it-py (3.0.0-r1) (55/155) Installing py3-markdown-it-py-pyc (3.0.0-r1) (56/155) Installing py3-pygments (2.19.1-r1) (57/155) Installing py3-pygments-pyc (2.19.1-r1) (58/155) Installing py3-rich (14.0.0-r0) (59/155) Installing py3-rich-pyc (14.0.0-r0) (60/155) Installing py3-enrich (1.2.7-r4) (61/155) Installing py3-enrich-pyc (1.2.7-r4) (62/155) Installing py3-subprocess-tee (0.4.2-r0) (63/155) Installing py3-subprocess-tee-pyc (0.4.2-r0) (64/155) Installing py3-ansible-compat (25.1.5-r0) (65/155) Installing py3-ansible-compat-pyc (25.1.5-r0) (66/155) Installing py3-filelock (3.16.1-r1) (67/155) Installing py3-filelock-pyc (3.16.1-r1) (68/155) Installing py3-zipp (3.17.0-r1) (69/155) Installing py3-zipp-pyc (3.17.0-r1) (70/155) Installing py3-importlib-metadata (7.0.2-r1) (71/155) Installing py3-importlib-metadata-pyc (7.0.2-r1) (72/155) Installing py3-certifi (2025.4.26-r0) (73/155) Installing py3-certifi-pyc (2025.4.26-r0) (74/155) Installing py3-charset-normalizer (3.4.2-r0) (75/155) Installing py3-charset-normalizer-pyc (3.4.2-r0) (76/155) Installing py3-idna (3.10-r0) (77/155) Installing py3-idna-pyc (3.10-r0) (78/155) Installing py3-urllib3 (1.26.20-r0) (79/155) Installing py3-urllib3-pyc (1.26.20-r0) (80/155) Installing py3-requests (2.32.5-r0) (81/155) Installing py3-requests-pyc (2.32.5-r0) (82/155) Installing py3-ruamel.yaml.clib (0.2.8-r2) (83/155) Installing py3-ruamel.yaml (0.17.28-r1) (84/155) Installing py3-ruamel.yaml-pyc (0.17.28-r1) (85/155) Installing py3-editables (0.5-r2) (86/155) Installing py3-editables-pyc (0.5-r2) (87/155) Installing py3-pluggy (1.5.0-r0) (88/155) Installing py3-pluggy-pyc (1.5.0-r0) (89/155) Installing py3-trove-classifiers (2025.9.11.17-r0) (90/155) Installing py3-trove-classifiers-pyc (2025.9.11.17-r0) (91/155) Installing py3-hatchling (1.27.0-r0) (92/155) Installing py3-hatchling-pyc (1.27.0-r0) (93/155) Installing py3-bracex (2.5-r0) (94/155) Installing py3-bracex-pyc (2.5-r0) (95/155) Installing py3-wcmatch (9.0-r0) (96/155) Installing py3-wcmatch-pyc (9.0-r0) (97/155) Installing yamllint (1.37.0-r0) (98/155) Installing yamllint-pyc (1.37.0-r0) (99/155) Installing py3-installer (0.7.0-r2) (100/155) Installing py3-installer-pyc (0.7.0-r2) (101/155) Installing py3-gpep517 (19-r0) (102/155) Installing py3-gpep517-pyc (19-r0) (103/155) Installing py3-setuptools (80.9.0-r0) (104/155) Installing py3-setuptools-pyc (80.9.0-r0) (105/155) Installing py3-setuptools_scm (8.3.1-r0) (106/155) Installing py3-setuptools_scm-pyc (8.3.1-r0) (107/155) Installing py3-wheel (0.46.1-r0) (108/155) Installing py3-wheel-pyc (0.46.1-r0) (109/155) Installing py3-flaky (3.8.1-r1) (110/155) Installing py3-flaky-pyc (3.8.1-r1) (111/155) Installing py3-boolean.py (5.0-r0) (112/155) Installing py3-boolean.py-pyc (5.0-r0) (113/155) Installing py3-license-expression (30.4.1-r0) (114/155) Installing py3-license-expression-pyc (30.4.1-r0) (115/155) Installing py3-psutil (7.0.0-r0) (116/155) Installing py3-psutil-pyc (7.0.0-r0) (117/155) Installing py3-lazy-object-proxy (1.10.0-r1) (118/155) Installing py3-lazy-object-proxy-pyc (1.10.0-r1) (119/155) Installing py3-wrapt (1.17.0-r0) (120/155) Installing py3-wrapt-pyc (1.17.0-r0) (121/155) Installing py3-astroid (3.3.10-r0) (122/155) Installing py3-astroid-pyc (3.3.10-r0) (123/155) Installing py3-dill (0.4.0-r0) (124/155) Installing py3-dill-pyc (0.4.0-r0) (125/155) Installing py3-isort (6.0.1-r0) (126/155) Installing py3-isort-pyc (6.0.1-r0) (127/155) Installing py3-mccabe (0.7.0-r4) (128/155) Installing py3-mccabe-pyc (0.7.0-r4) (129/155) Installing py3-tomlkit (0.13.2-r0) (130/155) Installing py3-tomlkit-pyc (0.13.2-r0) (131/155) Installing py3-pylint (3.3.7-r0) (132/155) Installing py3-pylint-pyc (3.3.7-r0) (133/155) Installing py3-iniconfig (2.1.0-r0) (134/155) Installing py3-iniconfig-pyc (2.1.0-r0) (135/155) Installing py3-py (1.11.0-r4) (136/155) Installing py3-py-pyc (1.11.0-r4) (137/155) Installing py3-pytest (8.3.5-r0) (138/155) Installing py3-pytest-pyc (8.3.5-r0) (139/155) Installing py3-coverage (7.8.2-r0) (140/155) Installing py3-coverage-pyc (7.8.2-r0) (141/155) Installing py3-pytest-cov (5.0.0-r0) (142/155) Installing py3-pytest-cov-pyc (5.0.0-r0) (143/155) Installing py3-mock (5.2.0-r0) (144/155) Installing py3-mock-pyc (5.2.0-r0) (145/155) Installing py3-pytest-mock (3.10.0-r3) (146/155) Installing py3-pytest-mock-pyc (3.10.0-r3) (147/155) Installing py3-mypy (1.15.0-r0) (148/155) Installing py3-mypy-pyc (1.15.0-r0) (149/155) Installing py3-pytest-mypy (0.10.3-r3) (150/155) Installing py3-pytest-mypy-pyc (0.10.3-r3) (151/155) Installing py3-execnet (2.1.1-r0) (152/155) Installing py3-execnet-pyc (2.1.1-r0) (153/155) Installing py3-pytest-xdist (3.6.1-r0) (154/155) Installing py3-pytest-xdist-pyc (3.6.1-r0) (155/155) Installing .makedepends-ansible-lint (20251008.173819) Executing busybox-1.37.0-r19.trigger OK: 382 MiB in 244 packages >>> ansible-lint: Cleaning up srcdir >>> ansible-lint: Cleaning up pkgdir >>> ansible-lint: Cleaning up tmpdir >>> ansible-lint: Fetching https://pypi.io/packages/source/a/ansible-lint/ansible_lint-24.12.2.tar.gz >>> ansible-lint: Fetching https://pypi.io/packages/source/a/ansible-lint/ansible_lint-24.12.2.tar.gz >>> ansible-lint: Checking sha512sums... ansible_lint-24.12.2.tar.gz: OK no-version-check.patch: OK >>> ansible-lint: Unpacking /var/cache/distfiles/ansible_lint-24.12.2.tar.gz... >>> ansible-lint: no-version-check.patch patching file src/ansiblelint/app.py Hunk #1 succeeded at 343 (offset 5 lines). 2025-10-08 17:38:21,459 gpep517 INFO Building wheel via backend setuptools.build_meta /usr/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 2025-10-08 17:38:21,547 root INFO running bdist_wheel 2025-10-08 17:38:21,562 root INFO running build 2025-10-08 17:38:21,562 root INFO running build_py 2025-10-08 17:38:21,565 root INFO creating build/lib/ansiblelint 2025-10-08 17:38:21,565 root INFO copying src/ansiblelint/text.py -> build/lib/ansiblelint 2025-10-08 17:38:21,565 root INFO copying src/ansiblelint/app.py -> build/lib/ansiblelint 2025-10-08 17:38:21,565 root INFO copying src/ansiblelint/yaml_utils.py -> build/lib/ansiblelint 2025-10-08 17:38:21,565 root INFO copying src/ansiblelint/_mockings.py -> build/lib/ansiblelint 2025-10-08 17:38:21,565 root INFO copying src/ansiblelint/output.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/requirements.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/runner.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/skip_utils.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/generate_docs.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/loaders.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/config.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/transformer.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/utils.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/stats.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/_version.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/errors.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/logger.py -> build/lib/ansiblelint 2025-10-08 17:38:21,566 root INFO copying src/ansiblelint/version.py -> build/lib/ansiblelint 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/__init__.py -> build/lib/ansiblelint 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/__main__.py -> build/lib/ansiblelint 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/cli.py -> build/lib/ansiblelint 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/file_utils.py -> build/lib/ansiblelint 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/constants.py -> build/lib/ansiblelint 2025-10-08 17:38:21,567 root INFO creating build/lib/ansiblelint/_internal 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/_internal/rules.py -> build/lib/ansiblelint/_internal 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/_internal/__init__.py -> build/lib/ansiblelint/_internal 2025-10-08 17:38:21,567 root INFO creating build/lib/ansiblelint/schemas 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/schemas/__init__.py -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,567 root INFO copying src/ansiblelint/schemas/__main__.py -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/schemas/main.py -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,568 root INFO creating build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/playbook_extension.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/fqcn.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/empty_string_compare.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/conftest.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/key_order.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/no_relative_paths.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/avoid_implicit.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/galaxy.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,568 root INFO copying src/ansiblelint/rules/deprecated_module.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/command_instead_of_shell.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/galaxy_version_incorrect.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/command_instead_of_module.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/risky_shell_pipe.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/inline_env_var.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/run_once.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/loop_var_prefix.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/deprecated_local_action.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/no_changed_when.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/literal_compare.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/no_free_form.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/risky_octal.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,569 root INFO copying src/ansiblelint/rules/only_builtins.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/no_log_password.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/package_latest.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/yaml_rule.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/meta_no_tags.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/role_name.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/complexity.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/var_naming.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/ignore_errors.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/meta_incorrect.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/jinja.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/deprecated_bare_vars.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/no_jinja_when.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,570 root INFO copying src/ansiblelint/rules/sanity.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/schema.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/meta_runtime.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/args.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/no_same_owner.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/risky_file_permissions.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/latest.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/__init__.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/syntax_check.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/meta_video_links.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/name.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/partial_become.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/no_prompting.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/no_tabs.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,571 root INFO copying src/ansiblelint/rules/no_handler.py -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,572 root INFO creating build/lib/ansiblelint/testing 2025-10-08 17:38:21,572 root INFO copying src/ansiblelint/testing/fixtures.py -> build/lib/ansiblelint/testing 2025-10-08 17:38:21,572 root INFO copying src/ansiblelint/testing/__init__.py -> build/lib/ansiblelint/testing 2025-10-08 17:38:21,572 root INFO creating build/lib/ansiblelint/formatters 2025-10-08 17:38:21,572 root INFO copying src/ansiblelint/formatters/__init__.py -> build/lib/ansiblelint/formatters 2025-10-08 17:38:21,572 root INFO creating build/lib/ansiblelint/rules/custom 2025-10-08 17:38:21,572 root INFO copying src/ansiblelint/rules/custom/__init__.py -> build/lib/ansiblelint/rules/custom 2025-10-08 17:38:21,572 root INFO running egg_info 2025-10-08 17:38:21,575 root INFO writing src/ansible_lint.egg-info/PKG-INFO 2025-10-08 17:38:21,577 root INFO writing dependency_links to src/ansible_lint.egg-info/dependency_links.txt 2025-10-08 17:38:21,577 root INFO writing entry points to src/ansible_lint.egg-info/entry_points.txt 2025-10-08 17:38:21,578 root INFO writing requirements to src/ansible_lint.egg-info/requires.txt 2025-10-08 17:38:21,578 root INFO writing top-level names to src/ansible_lint.egg-info/top_level.txt [10/08/25 17:38:21] ERROR listing git files failed - pretending there aren't any git.py:26 2025-10-08 17:38:21,594 root INFO reading manifest file 'src/ansible_lint.egg-info/SOURCES.txt' 2025-10-08 17:38:21,601 root INFO adding license file 'COPYING' 2025-10-08 17:38:21,607 root INFO writing manifest file 'src/ansible_lint.egg-info/SOURCES.txt' 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/py.typed -> build/lib/ansiblelint 2025-10-08 17:38:21,612 root INFO creating build/lib/ansiblelint/data 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/data/.yamllint -> build/lib/ansiblelint/data 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/data/profiles.yml -> build/lib/ansiblelint/data 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/_internal/internal_error.md -> build/lib/ansiblelint/_internal 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/_internal/load-failure.md -> build/lib/ansiblelint/_internal 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/_internal/parser-error.md -> build/lib/ansiblelint/_internal 2025-10-08 17:38:21,612 root INFO copying src/ansiblelint/_internal/warning.md -> build/lib/ansiblelint/_internal 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/README.md -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/__store__.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/ansible-lint-config.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/ansible-navigator-config.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/ansible-navigator.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/ansible.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/changelog.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/execution-environment.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/galaxy.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/inventory.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/meta-runtime.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,613 root INFO copying src/ansiblelint/schemas/meta.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/molecule.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/playbook.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/requirements.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/role-arg-spec.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/rulebook.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/tasks.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/schemas/vars.json -> build/lib/ansiblelint/schemas 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/rules/args.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/rules/avoid_implicit.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/rules/command_instead_of_module.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/rules/command_instead_of_shell.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,614 root INFO copying src/ansiblelint/rules/complexity.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/deprecated_bare_vars.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/deprecated_local_action.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/deprecated_module.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/empty_string_compare.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/fqcn.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/galaxy.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/galaxy_version_incorrect.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/ignore_errors.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/inline_env_var.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/jinja.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/key_order.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/latest.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,615 root INFO copying src/ansiblelint/rules/literal_compare.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/loop_var_prefix.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/meta_incorrect.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/meta_no_tags.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/meta_runtime.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/meta_video_links.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/name.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_changed_when.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_free_form.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_handler.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_jinja_when.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_log_password.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_prompting.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,616 root INFO copying src/ansiblelint/rules/no_relative_paths.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/no_same_owner.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/no_tabs.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/only_builtins.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/package_latest.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/partial_become.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/playbook_extension.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/risky_file_permissions.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/risky_octal.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/risky_shell_pipe.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/role_name.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/run_once.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/sanity.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,617 root INFO copying src/ansiblelint/rules/schema.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,618 root INFO copying src/ansiblelint/rules/syntax_check.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,618 root INFO copying src/ansiblelint/rules/var_naming.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,618 root INFO copying src/ansiblelint/rules/yaml.md -> build/lib/ansiblelint/rules 2025-10-08 17:38:21,624 root INFO installing to build/bdist.linux-x86_64/wheel 2025-10-08 17:38:21,624 root INFO running install 2025-10-08 17:38:21,629 root INFO running install_lib 2025-10-08 17:38:21,632 root INFO creating build/bdist.linux-x86_64/wheel 2025-10-08 17:38:21,632 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint 2025-10-08 17:38:21,632 root INFO copying build/lib/ansiblelint/py.typed -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,632 root INFO copying build/lib/ansiblelint/text.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,632 root INFO copying build/lib/ansiblelint/app.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,632 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/data 2025-10-08 17:38:21,632 root INFO copying build/lib/ansiblelint/data/.yamllint -> build/bdist.linux-x86_64/wheel/./ansiblelint/data 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/data/profiles.yml -> build/bdist.linux-x86_64/wheel/./ansiblelint/data 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/yaml_utils.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_mockings.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_internal/rules.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_internal/parser-error.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_internal/internal_error.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_internal/warning.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_internal/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/_internal/load-failure.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/_internal 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/output.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/requirements.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/runner.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/skip_utils.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/generate_docs.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/loaders.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,633 root INFO copying build/lib/ansiblelint/config.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/transformer.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/utils.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/stats.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,634 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/meta-runtime.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/role-arg-spec.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/README.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/changelog.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/ansible-lint-config.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/galaxy.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/playbook.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/meta.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/inventory.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/tasks.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/ansible-navigator.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/vars.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,634 root INFO copying build/lib/ansiblelint/schemas/molecule.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/__main__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/ansible.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/requirements.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/__store__.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/main.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/rulebook.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/ansible-navigator-config.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/schemas/execution-environment.json -> build/bdist.linux-x86_64/wheel/./ansiblelint/schemas 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/_version.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/errors.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/logger.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/version.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/__main__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/cli.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,635 root INFO copying build/lib/ansiblelint/file_utils.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,636 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/playbook_extension.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/fqcn.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/empty_string_compare.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/deprecated_local_action.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/conftest.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/latest.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/meta_incorrect.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/run_once.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/key_order.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/no_relative_paths.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/literal_compare.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/risky_shell_pipe.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/avoid_implicit.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/jinja.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/no_log_password.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/sanity.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/avoid_implicit.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,636 root INFO copying build/lib/ansiblelint/rules/no_jinja_when.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/galaxy.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/role_name.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/deprecated_module.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/command_instead_of_shell.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/rules/custom 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/custom/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules/custom 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/galaxy_version_incorrect.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/no_prompting.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/galaxy.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/var_naming.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/partial_become.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/command_instead_of_module.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/risky_shell_pipe.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/inline_env_var.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/run_once.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/loop_var_prefix.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/ignore_errors.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,637 root INFO copying build/lib/ansiblelint/rules/loop_var_prefix.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/deprecated_local_action.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/no_changed_when.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/literal_compare.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/empty_string_compare.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/no_free_form.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/no_free_form.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/risky_octal.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/schema.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/playbook_extension.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/deprecated_module.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/complexity.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/meta_video_links.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/only_builtins.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/no_log_password.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/package_latest.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/risky_octal.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/yaml_rule.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/meta_no_tags.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/galaxy_version_incorrect.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,638 root INFO copying build/lib/ansiblelint/rules/no_tabs.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/command_instead_of_shell.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/role_name.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/yaml.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/syntax_check.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/complexity.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/inline_env_var.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/var_naming.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/ignore_errors.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/command_instead_of_module.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/meta_incorrect.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/risky_file_permissions.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/jinja.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/no_relative_paths.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/no_same_owner.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/deprecated_bare_vars.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/no_jinja_when.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/sanity.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/schema.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,639 root INFO copying build/lib/ansiblelint/rules/meta_runtime.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/args.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/no_same_owner.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/args.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/risky_file_permissions.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/key_order.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/fqcn.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/meta_no_tags.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/latest.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/syntax_check.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/deprecated_bare_vars.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/meta_runtime.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/package_latest.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/meta_video_links.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/name.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/no_handler.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/partial_become.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,640 root INFO copying build/lib/ansiblelint/rules/no_prompting.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/rules/name.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/rules/no_tabs.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/rules/no_changed_when.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/rules/only_builtins.md -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/rules/no_handler.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/rules 2025-10-08 17:38:21,641 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/testing 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/testing/fixtures.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/testing 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/testing/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/testing 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/constants.py -> build/bdist.linux-x86_64/wheel/./ansiblelint 2025-10-08 17:38:21,641 root INFO creating build/bdist.linux-x86_64/wheel/ansiblelint/formatters 2025-10-08 17:38:21,641 root INFO copying build/lib/ansiblelint/formatters/__init__.py -> build/bdist.linux-x86_64/wheel/./ansiblelint/formatters 2025-10-08 17:38:21,641 root INFO running install_egg_info 2025-10-08 17:38:21,644 root INFO Copying src/ansible_lint.egg-info to build/bdist.linux-x86_64/wheel/./ansible_lint-24.12.2-py3.12.egg-info 2025-10-08 17:38:21,645 root INFO running install_scripts 2025-10-08 17:38:21,645 root INFO creating build/bdist.linux-x86_64/wheel/ansible_lint-24.12.2.dist-info/WHEEL 2025-10-08 17:38:21,645 wheel INFO creating '/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.dist/.tmp-29tnpvy7/ansible_lint-24.12.2-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it 2025-10-08 17:38:21,646 wheel INFO adding 'ansible_lint-24.12.2.dist-info/licenses/COPYING' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/__init__.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/__main__.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/_mockings.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/_version.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/app.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/cli.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/config.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/constants.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/errors.py' 2025-10-08 17:38:21,646 wheel INFO adding 'ansiblelint/file_utils.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/generate_docs.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/loaders.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/logger.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/output.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/py.typed' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/requirements.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/runner.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/skip_utils.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/stats.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/text.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/transformer.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/utils.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/version.py' 2025-10-08 17:38:21,647 wheel INFO adding 'ansiblelint/yaml_utils.py' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/_internal/__init__.py' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/_internal/internal_error.md' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/_internal/load-failure.md' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/_internal/parser-error.md' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/_internal/rules.py' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/_internal/warning.md' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/data/.yamllint' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/data/profiles.yml' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/formatters/__init__.py' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/rules/__init__.py' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/rules/args.md' 2025-10-08 17:38:21,648 wheel INFO adding 'ansiblelint/rules/args.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/avoid_implicit.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/avoid_implicit.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/command_instead_of_module.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/command_instead_of_module.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/command_instead_of_shell.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/command_instead_of_shell.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/complexity.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/complexity.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/conftest.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/deprecated_bare_vars.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/deprecated_bare_vars.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/deprecated_local_action.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/deprecated_local_action.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/deprecated_module.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/deprecated_module.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/empty_string_compare.md' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/empty_string_compare.py' 2025-10-08 17:38:21,649 wheel INFO adding 'ansiblelint/rules/fqcn.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/fqcn.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/galaxy.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/galaxy.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/galaxy_version_incorrect.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/galaxy_version_incorrect.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/ignore_errors.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/ignore_errors.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/inline_env_var.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/inline_env_var.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/jinja.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/jinja.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/key_order.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/key_order.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/latest.md' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/latest.py' 2025-10-08 17:38:21,650 wheel INFO adding 'ansiblelint/rules/literal_compare.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/literal_compare.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/loop_var_prefix.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/loop_var_prefix.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_incorrect.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_incorrect.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_no_tags.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_no_tags.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_runtime.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_runtime.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_video_links.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/meta_video_links.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/name.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/name.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/no_changed_when.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/no_changed_when.py' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/no_free_form.md' 2025-10-08 17:38:21,651 wheel INFO adding 'ansiblelint/rules/no_free_form.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_handler.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_handler.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_jinja_when.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_jinja_when.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_log_password.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_log_password.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_prompting.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_prompting.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_relative_paths.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_relative_paths.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_same_owner.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_same_owner.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_tabs.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/no_tabs.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/only_builtins.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/only_builtins.py' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/package_latest.md' 2025-10-08 17:38:21,652 wheel INFO adding 'ansiblelint/rules/package_latest.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/partial_become.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/partial_become.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/playbook_extension.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/playbook_extension.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/risky_file_permissions.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/risky_file_permissions.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/risky_octal.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/risky_octal.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/risky_shell_pipe.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/risky_shell_pipe.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/role_name.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/role_name.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/run_once.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/run_once.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/sanity.md' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/sanity.py' 2025-10-08 17:38:21,653 wheel INFO adding 'ansiblelint/rules/schema.md' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/schema.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/syntax_check.md' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/syntax_check.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/var_naming.md' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/var_naming.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/yaml.md' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/yaml_rule.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/rules/custom/__init__.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/schemas/README.md' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/schemas/__init__.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/schemas/__main__.py' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/schemas/__store__.json' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/schemas/ansible-lint-config.json' 2025-10-08 17:38:21,654 wheel INFO adding 'ansiblelint/schemas/ansible-navigator-config.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/ansible-navigator.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/ansible.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/changelog.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/execution-environment.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/galaxy.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/inventory.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/main.py' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/meta-runtime.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/meta.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/molecule.json' 2025-10-08 17:38:21,655 wheel INFO adding 'ansiblelint/schemas/playbook.json' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/schemas/requirements.json' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/schemas/role-arg-spec.json' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/schemas/rulebook.json' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/schemas/tasks.json' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/schemas/vars.json' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/testing/__init__.py' 2025-10-08 17:38:21,656 wheel INFO adding 'ansiblelint/testing/fixtures.py' 2025-10-08 17:38:21,656 wheel INFO adding 'ansible_lint-24.12.2.dist-info/METADATA' 2025-10-08 17:38:21,656 wheel INFO adding 'ansible_lint-24.12.2.dist-info/WHEEL' 2025-10-08 17:38:21,656 wheel INFO adding 'ansible_lint-24.12.2.dist-info/entry_points.txt' 2025-10-08 17:38:21,656 wheel INFO adding 'ansible_lint-24.12.2.dist-info/top_level.txt' 2025-10-08 17:38:21,656 wheel INFO adding 'ansible_lint-24.12.2.dist-info/RECORD' 2025-10-08 17:38:21,657 root INFO removing build/bdist.linux-x86_64/wheel 2025-10-08 17:38:21,658 gpep517 INFO The backend produced .dist/ansible_lint-24.12.2-py3-none-any.whl ansible_lint-24.12.2-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.11, pytest-8.3.5, pluggy-1.5.0 rootdir: /home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2 configfile: pyproject.toml plugins: mock-3.10.0, mypy-0.10.3, flaky-3.8.1, xdist-3.6.1 collected 673 items / 51 deselected / 622 selected run-last-failure: no previously failed tests, not deselecting items. test/rules/test_args.py F [ 0%] test/rules/test_deprecated_module.py F [ 0%] test/rules/test_inline_env_var.py FF [ 0%] test/rules/test_no_changed_when.py FF [ 0%] test/rules/test_package_latest.py FF [ 1%] test/rules/test_role_names.py F [ 1%] test/rules/test_syntax_check.py FFFF [ 2%] test/test_adjacent_plugins.py F [ 2%] test/test_ansiblelintrule.py ... [ 2%] test/test_ansiblesyntax.py F [ 2%] test/test_app.py FFF [ 3%] test/test_cli.py ............................. [ 8%] test/test_cli_role_paths.py FFFFFFFFFFFFFF.FF [ 10%] test/test_config.py . [ 10%] test/test_constants.py . [ 11%] test/test_dependencies_in_meta.py F [ 11%] test/test_errors.py . [ 11%] test/test_examples.py FFFFFFFF [ 12%] test/test_file_path_evaluation.py FF [ 13%] test/test_file_utils.py ................................................ [ 20%] ......................F [ 24%] test/test_formatter.py ... [ 24%] test/test_formatter_base.py .......... [ 26%] test/test_formatter_json.py ....... [ 27%] test/test_formatter_sarif.py ......FFF [ 29%] test/test_import_include_role.py FFFFFF [ 30%] test/test_import_playbook.py FFF [ 30%] test/test_import_tasks.py FF [ 30%] test/test_internal_rules.py .F [ 31%] test/test_lint_rule.py .. [ 31%] test/test_list_rules.py ........... [ 33%] test/test_load_failure.py FF [ 33%] test/test_loaders.py ..... [ 34%] test/test_local_content.py F [ 34%] test/test_main.py ......FF. [ 36%] test/test_matcherrror.py ........................................... [ 42%] test/test_mockings.py . [ 43%] test/test_profiles.py .. [ 43%] test/test_requirements.py . [ 43%] test/test_rule_properties.py . [ 43%] test/test_rules_collection.py ........ [ 45%] test/test_runner.py FFFFFFFFFFF..FFFF [ 47%] test/test_schemas.py .... [ 48%] test/test_skip_import_playbook.py F [ 48%] test/test_skip_inside_yaml.py FF [ 48%] test/test_skip_playbook_items.py FFFFF [ 49%] test/test_skiputils.py ..FF....F [ 51%] test/test_strict.py FF [ 51%] test/test_text.py ................... [ 54%] test/test_transform_mixin.py ........................................... [ 61%] [ 61%] test/test_transformer.py .......................................FEEEEE [ 68%] test/test_utils.py ....................F............F...F.. [ 75%] test/test_verbosity.py FFFFFF [ 76%] test/test_with_skip_tagid.py FFFFFF [ 77%] test/test_yaml_utils.py ................................................ [ 84%] ........................................................................ [ 96%] ....................... [100%] ==================================== ERRORS ==================================== _____________________ ERROR at setup of test_transform_na ______________________ config_options = Options(_skip_ansible_syntax_check=False, cache_dir=None, colored=True, configured=False, cwd=PosixPath('.'), display_...se, version=False, list_profiles=False, ignore_file=None, max_tasks=100, max_block_depth=20, supported_ansible_also=[]) default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.fixture(name="test_result") def fixture_test_result( config_options: Options, default_rules_collection: RulesCollection, ) -> tuple[LintResult, Options]: """Fixture that runs the Runner to populate a LintResult for a given file. The results are confirmed and a limited to a single match. :param config_options: Configuration options :param default_rules_collection: Default rules collection :returns: Tuple of LintResult and Options """ config_options.write_list = [TransformTests.ID] config_options.lintables = [TransformTests.FILE_NAME] > result = get_matches(rules=default_rules_collection, options=config_options) test/test_transformer.py:407: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:686: in get_matches matches.extend(runner.run()) build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________ ERROR at setup of test_transform_no_tb ____________________ config_options = Options(_skip_ansible_syntax_check=False, cache_dir=None, colored=True, configured=False, cwd=PosixPath('.'), display_...se, version=False, list_profiles=False, ignore_file=None, max_tasks=100, max_block_depth=20, supported_ansible_also=[]) default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.fixture(name="test_result") def fixture_test_result( config_options: Options, default_rules_collection: RulesCollection, ) -> tuple[LintResult, Options]: """Fixture that runs the Runner to populate a LintResult for a given file. The results are confirmed and a limited to a single match. :param config_options: Configuration options :param default_rules_collection: Default rules collection :returns: Tuple of LintResult and Options """ config_options.write_list = [TransformTests.ID] config_options.lintables = [TransformTests.FILE_NAME] > result = get_matches(rules=default_rules_collection, options=config_options) test/test_transformer.py:407: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:686: in get_matches matches.extend(runner.run()) build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________ ERROR at setup of test_transform_applied ___________________ config_options = Options(_skip_ansible_syntax_check=False, cache_dir=None, colored=True, configured=False, cwd=PosixPath('.'), display_...se, version=False, list_profiles=False, ignore_file=None, max_tasks=100, max_block_depth=20, supported_ansible_also=[]) default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.fixture(name="test_result") def fixture_test_result( config_options: Options, default_rules_collection: RulesCollection, ) -> tuple[LintResult, Options]: """Fixture that runs the Runner to populate a LintResult for a given file. The results are confirmed and a limited to a single match. :param config_options: Configuration options :param default_rules_collection: Default rules collection :returns: Tuple of LintResult and Options """ config_options.write_list = [TransformTests.ID] config_options.lintables = [TransformTests.FILE_NAME] > result = get_matches(rules=default_rules_collection, options=config_options) test/test_transformer.py:407: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:686: in get_matches matches.extend(runner.run()) build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________ ERROR at setup of test_transform_not_enabled _________________ config_options = Options(_skip_ansible_syntax_check=False, cache_dir=None, colored=True, configured=False, cwd=PosixPath('.'), display_...se, version=False, list_profiles=False, ignore_file=None, max_tasks=100, max_block_depth=20, supported_ansible_also=[]) default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.fixture(name="test_result") def fixture_test_result( config_options: Options, default_rules_collection: RulesCollection, ) -> tuple[LintResult, Options]: """Fixture that runs the Runner to populate a LintResult for a given file. The results are confirmed and a limited to a single match. :param config_options: Configuration options :param default_rules_collection: Default rules collection :returns: Tuple of LintResult and Options """ config_options.write_list = [TransformTests.ID] config_options.lintables = [TransformTests.FILE_NAME] > result = get_matches(rules=default_rules_collection, options=config_options) test/test_transformer.py:407: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:686: in get_matches matches.extend(runner.run()) build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________ ERROR at setup of test_transform_not_applied _________________ config_options = Options(_skip_ansible_syntax_check=False, cache_dir=None, colored=True, configured=False, cwd=PosixPath('.'), display_...se, version=False, list_profiles=False, ignore_file=None, max_tasks=100, max_block_depth=20, supported_ansible_also=[]) default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.fixture(name="test_result") def fixture_test_result( config_options: Options, default_rules_collection: RulesCollection, ) -> tuple[LintResult, Options]: """Fixture that runs the Runner to populate a LintResult for a given file. The results are confirmed and a limited to a single match. :param config_options: Configuration options :param default_rules_collection: Default rules collection :returns: Tuple of LintResult and Options """ config_options.write_list = [TransformTests.ID] config_options.lintables = [TransformTests.FILE_NAME] > result = get_matches(rules=default_rules_collection, options=config_options) test/test_transformer.py:407: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:686: in get_matches matches.extend(runner.run()) build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError =================================== FAILURES =================================== _______________________ test_args_module_relative_import _______________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_args_module_relative_import(default_rules_collection: RulesCollection) -> None: """Validate args check of a module with a relative import.""" lintable = Lintable( "examples/playbooks/module_relative_import.yml", kind="playbook", ) > result = Runner(lintable, rules=default_rules_collection).run() test/rules/test_args.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_module_deprecated ____________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_module_deprecated0') def test_module_deprecated(tmp_path: Path) -> None: """Test for deprecated-module.""" collection = RulesCollection() collection.register(DeprecatedModuleRule()) runner = RunFromText(collection) > results = runner.run_role_tasks_main(MODULE_DEPRECATED, tmp_path=tmp_path) test/rules/test_deprecated_module.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:75: in run_role_tasks_main results = self._call_runner(role_path) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ------------------------------ Captured log call ------------------------------- WARNING ansible_compat.runtime:runtime.py:636 Skipped installing collection dependencies due to running in offline mode. _________________________________ test_success _________________________________ def test_success() -> None: """Positive test for inline-env-var.""" collection = RulesCollection() collection.register(EnvVarsInCommandRule()) runner = RunFromText(collection) > results = runner.run_playbook(SUCCESS_PLAY_TASKS) test/rules/test_inline_env_var.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________________ test_fail ___________________________________ def test_fail() -> None: """Negative test for inline-env-var.""" collection = RulesCollection() collection.register(EnvVarsInCommandRule()) runner = RunFromText(collection) > results = runner.run_playbook(FAIL_PLAY_TASKS) test/rules/test_inline_env_var.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________ test_command_changes_positive _________________________ def test_command_changes_positive() -> None: """Positive test for no-changed-when.""" collection = RulesCollection() collection.register(CommandHasChangesCheckRule()) success = "examples/playbooks/command-check-success.yml" good_runner = Runner(success, rules=collection) > assert good_runner.run() == [] test/rules/test_no_changed_when.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________ test_command_changes_negative _________________________ def test_command_changes_negative() -> None: """Negative test for no-changed-when.""" collection = RulesCollection() collection.register(CommandHasChangesCheckRule()) failure = "examples/playbooks/command-check-failure.yml" bad_runner = Runner(failure, rules=collection) > errs = bad_runner.run() test/rules/test_no_changed_when.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ test_package_not_latest_positive _______________________ def test_package_not_latest_positive() -> None: """Positive test for package-latest.""" collection = RulesCollection() collection.register(PackageIsNotLatestRule()) success = "examples/playbooks/package-check-success.yml" good_runner = Runner(success, rules=collection) > assert good_runner.run() == [] test/rules/test_package_latest.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ test_package_not_latest_negative _______________________ def test_package_not_latest_negative() -> None: """Negative test for package-latest.""" collection = RulesCollection() collection.register(PackageIsNotLatestRule()) failure = "examples/playbooks/package-check-failure.yml" bad_runner = Runner(failure, rules=collection) > errs = bad_runner.run() test/rules/test_package_latest.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ test_role_name[ROLE_EMPTY_META] ________________________ test_rules_collection = internal-error: Unexpected internal error load-failure: Failed to load or parse file. Linter failed to process a ...hanumeric characters, plus underline and start with an alpha character. warning: Other warnings detected during run. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_role_name_ROLE_EMPTY_META0/playbook.yml' messages = [] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( (PLAY_INCLUDE_ROLE, ROLE_NAME_VALID, ROLE_WITH_EMPTY_META), [], id="ROLE_EMPTY_META", ), ), indirect=("playbook_path",), ) def test_role_name( test_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Lint a playbook and compare the expected messages with the actual messages.""" runner = Runner(playbook_path, rules=test_rules_collection) > results = runner.run() test/rules/test_role_names.py:88: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________ test_get_ansible_syntax_check_matches[0] ___________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. filename = 'examples/playbooks/conflicting_action.yml' expected_results = [('syntax-check[specific]', 4, 7, 'conflicting action statements: ansible.builtin.debug, ansible.builtin.command')] @pytest.mark.parametrize( ("filename", "expected_results"), ( pytest.param( "examples/playbooks/conflicting_action.yml", [ ( "syntax-check[specific]", 4, 7, "conflicting action statements: ansible.builtin.debug, ansible.builtin.command", ), ], id="0", ), pytest.param( "examples/playbooks/conflicting_action2.yml", [ ( "parser-error", 1, None, "conflicting action statements: block, include_role", ), ( "syntax-check[specific]", 5, 7, "'include_role' is not a valid attribute for a Block", ), ], id="1", ), ), ) def test_get_ansible_syntax_check_matches( default_rules_collection: RulesCollection, filename: str, expected_results: list[tuple[str, int, int, str]], ) -> None: """Validate parsing of ansible output.""" lintable = Lintable( filename, kind="playbook", ) > result = sorted(Runner(lintable, rules=default_rules_collection).run()) test/rules/test_syntax_check.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________ test_get_ansible_syntax_check_matches[1] ___________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. filename = 'examples/playbooks/conflicting_action2.yml' expected_results = [('parser-error', 1, None, 'conflicting action statements: block, include_role'), ('syntax-check[specific]', 5, 7, "'include_role' is not a valid attribute for a Block")] @pytest.mark.parametrize( ("filename", "expected_results"), ( pytest.param( "examples/playbooks/conflicting_action.yml", [ ( "syntax-check[specific]", 4, 7, "conflicting action statements: ansible.builtin.debug, ansible.builtin.command", ), ], id="0", ), pytest.param( "examples/playbooks/conflicting_action2.yml", [ ( "parser-error", 1, None, "conflicting action statements: block, include_role", ), ( "syntax-check[specific]", 5, 7, "'include_role' is not a valid attribute for a Block", ), ], id="1", ), ), ) def test_get_ansible_syntax_check_matches( default_rules_collection: RulesCollection, filename: str, expected_results: list[tuple[str, int, int, str]], ) -> None: """Validate parsing of ansible output.""" lintable = Lintable( filename, kind="playbook", ) > result = sorted(Runner(lintable, rules=default_rules_collection).run()) test/rules/test_syntax_check.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_empty_playbook ______________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_empty_playbook(default_rules_collection: RulesCollection) -> None: """Validate detection of empty-playbook.""" lintable = Lintable("examples/playbooks/empty_playbook.yml", kind="playbook") > result = Runner(lintable, rules=default_rules_collection).run() test/rules/test_syntax_check.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________ test_extra_vars_passed_to_command _______________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. config_options = Options(_skip_ansible_syntax_check=False, cache_dir=None, colored=True, configured=False, cwd=PosixPath('.'), display_...se, version=False, list_profiles=False, ignore_file=None, max_tasks=100, max_block_depth=20, supported_ansible_also=[]) def test_extra_vars_passed_to_command( default_rules_collection: RulesCollection, config_options: Any, ) -> None: """Validate `extra-vars` are passed to syntax check command.""" config_options.extra_vars = { "foo": "bar", "complex_variable": ":{;\t$()", } lintable = Lintable("examples/playbooks/extra_vars.yml", kind="playbook") > result = Runner(lintable, rules=default_rules_collection).run() test/rules/test_syntax_check.py:95: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________________ test_adj_action ________________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. caplog = <_pytest.logging.LogCaptureFixture object at 0x74598de0fce0> def test_adj_action( default_rules_collection: RulesCollection, caplog: pytest.LogCaptureFixture, ) -> None: """Assures local collections are found.""" playbook_path = "examples/playbooks/adj_action.yml" with caplog.at_level(logging.DEBUG): runner = Runner(playbook_path, rules=default_rules_collection, verbosity=1) > results = runner.run() test/test_adjacent_plugins.py:20: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________________ test_null_tasks ________________________________ default_text_runner = def test_null_tasks(default_text_runner: RunFromText) -> None: """Assure we do not fail when encountering null tasks.""" > results = default_text_runner.run_playbook(PB_WITH_NULL_TASKS) test/test_ansiblesyntax.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_generate_ignore _____________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_generate_ignore0') def test_generate_ignore(tmp_path: Path) -> None: """Validate that --generate-ignore dumps expected ignore to the file.""" lintable = Lintable(tmp_path / "vars.yaml") lintable.content = "foo: bar\nfoo: baz\n" lintable.write(force=True) ignore_file = tmp_path / ".ansible-lint-ignore" assert not ignore_file.exists() result = run_ansible_lint(lintable.filename, "--generate-ignore", cwd=tmp_path) > assert result.returncode == 2 E AssertionError: assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_app.py:18: AssertionError _____________________________ test_app_no_matches ______________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_app_no_matches0') def test_app_no_matches(tmp_path: Path) -> None: """Validate that linter returns special exit code if no files are analyzed.""" result = run_ansible_lint(cwd=tmp_path) > assert result.returncode == RC.NO_FILES_MATCHED E AssertionError: assert 1 == 5 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode E + and 5 = RC.NO_FILES_MATCHED test/test_app.py:31: AssertionError _________________ test_with_inventory_concurrent_syntax_checks _________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_with_inventory_concurrent0') def test_with_inventory_concurrent_syntax_checks(tmp_path: Path) -> None: """Validate using inventory file with concurrent syntax checks aren't faulty.""" (tmp_path / "ansible.cfg").write_text("[defaults]\ninventory = foo\n") (tmp_path / "foo").write_text("[group_name]\nhost1\nhost2\n") lintable1 = Lintable(tmp_path / "playbook1.yml") lintable2 = Lintable(tmp_path / "playbook2.yml") lintable1.content = "---\n- name: Test\n hosts:\n - group_name\n serial: \"{{ batch | default(groups['group_name'] | length) }}\"\n" lintable2.content = "---\n- name: Test\n hosts:\n - group_name\n serial: \"{{ batch | default(groups['group_name'] | length) }}\"\n" lintable1.kind = "playbook" lintable2.kind = "playbook" lintable1.write(force=True) lintable2.write(force=True) counter = 0 while counter < 3: result = run_ansible_lint(lintable1.filename, lintable2.filename, cwd=tmp_path) > assert result.returncode == RC.SUCCESS E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode E + and 0 = RC.SUCCESS test/test_app.py:50: AssertionError ______________ test_run_single_role_path_no_trailing_slash_module ______________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_single_role_path_no_trailing_slash_module(local_test_dir: Path) -> None: """Test that a role path without a trailing slash is accepted.""" cwd = local_test_dir role_path = "roles/test-role" result = run_ansible_lint(role_path, cwd=cwd) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:27: AssertionError ________________ test_run_single_role_path_with_trailing_slash _________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_single_role_path_with_trailing_slash(local_test_dir: Path) -> None: """Test that a role path with a trailing slash is accepted.""" cwd = local_test_dir role_path = "roles/test-role/" result = run_ansible_lint(role_path, cwd=cwd) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:45: AssertionError ________________ test_run_multiple_role_path_no_trailing_slash _________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_multiple_role_path_no_trailing_slash(local_test_dir: Path) -> None: """Test that multiple roles paths without a trailing slash are accepted.""" cwd = local_test_dir role_path = "roles/test-role" result = run_ansible_lint(role_path, cwd=cwd) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:54: AssertionError _______________ test_run_multiple_role_path_with_trailing_slash ________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_multiple_role_path_with_trailing_slash(local_test_dir: Path) -> None: """Test that multiple roles paths without a trailing slash are accepted.""" cwd = local_test_dir role_path = "roles/test-role/" result = run_ansible_lint(role_path, cwd=cwd) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:63: AssertionError ___________________________ test_run_inside_role_dir ___________________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_inside_role_dir(local_test_dir: Path) -> None: """Tests execution from inside a role.""" cwd = local_test_dir / "roles" / "test-role" role_path = "." result = run_ansible_lint(role_path, cwd=cwd) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:72: AssertionError _________________________ test_run_role_three_dir_deep _________________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_role_three_dir_deep(local_test_dir: Path) -> None: """Tests execution from deep inside a role.""" cwd = local_test_dir role_path = "testproject/roles/test-role" result = run_ansible_lint(role_path, cwd=cwd) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:81: AssertionError ______________________________ test_run_playbook _______________________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_playbook(local_test_dir: Path) -> None: """Call ansible-lint the way molecule does.""" cwd = local_test_dir / "roles" / "test-role" lintable = "molecule/default/include-import-role.yml" role_path = str(Path(cwd).parent.resolve()) env = os.environ.copy() env["ANSIBLE_ROLES_PATH"] = role_path env["NO_COLOR"] = "1" result = run_ansible_lint("-f", "pep8", lintable, cwd=cwd, env=env) # All 4 failures are expected to be found inside the included role and not # from the playbook given as argument. > assert result.returncode == RC.VIOLATIONS_FOUND E AssertionError: assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode E + and 2 = RC.VIOLATIONS_FOUND test/test_cli_role_paths.py:97: AssertionError ______________________ test_run_role_name_invalid[normal] ______________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') args = [], expected_msg = 'role-name: Role name invalid-name does not match' @pytest.mark.parametrize( ("args", "expected_msg"), ( pytest.param( [], "role-name: Role name invalid-name does not match", id="normal", ), pytest.param(["--nocolor", "--skip-list", "role-name"], "", id="skipped"), ), ) def test_run_role_name_invalid( local_test_dir: Path, args: list[str], expected_msg: str, ) -> None: """Test run with a role with invalid name.""" cwd = local_test_dir role_path = "roles/invalid-name" env = {"NO_COLOR": "1"} result = run_ansible_lint(*args, role_path, cwd=cwd, env=env) > assert result.returncode == (2 if expected_msg else 0), result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_cli_role_paths.py:124: AssertionError _____________________ test_run_role_name_invalid[skipped] ______________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') args = ['--nocolor', '--skip-list', 'role-name'], expected_msg = '' @pytest.mark.parametrize( ("args", "expected_msg"), ( pytest.param( [], "role-name: Role name invalid-name does not match", id="normal", ), pytest.param(["--nocolor", "--skip-list", "role-name"], "", id="skipped"), ), ) def test_run_role_name_invalid( local_test_dir: Path, args: list[str], expected_msg: str, ) -> None: """Test run with a role with invalid name.""" cwd = local_test_dir role_path = "roles/invalid-name" env = {"NO_COLOR": "1"} result = run_ansible_lint(*args, role_path, cwd=cwd, env=env) > assert result.returncode == (2 if expected_msg else 0), result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_cli_role_paths.py:124: AssertionError ________________________ test_run_role_name_with_prefix ________________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_role_name_with_prefix(local_test_dir: Path) -> None: """Test run where role path has a prefix.""" cwd = local_test_dir role_path = "roles/ansible-role-foo" result = run_ansible_lint("-v", role_path, cwd=cwd) assert len(result.stdout) == 0 > assert result.returncode == 0 E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_cli_role_paths.py:136: AssertionError _________________________ test_run_role_name_from_meta _________________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_role_name_from_meta(local_test_dir: Path) -> None: """Test running from inside meta folder.""" cwd = local_test_dir role_path = "roles/valid-due-to-meta" result = run_ansible_lint("-v", role_path, cwd=cwd) assert len(result.stdout) == 0 > assert result.returncode == 0 E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_cli_role_paths.py:146: AssertionError _____________________ test_run_invalid_role_name_from_meta _____________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_invalid_role_name_from_meta(local_test_dir: Path) -> None: """Test invalid role from inside meta folder.""" cwd = local_test_dir role_path = "roles/invalid_due_to_meta" result = run_ansible_lint(role_path, cwd=cwd, env={"NO_COLOR": "1"}) > assert ( "role-name: Role name invalid-due-to-meta does not match" in strip_ansi_escape(result.stdout) ) E AssertionError: assert 'role-name: Role name invalid-due-to-meta does not match' in '' E + where '' = strip_ansi_escape('') E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:155: AssertionError ________________ test_run_single_role_path_with_roles_path_env _________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_single_role_path_with_roles_path_env(local_test_dir: Path) -> None: """Test for role name collision with ANSIBLE_ROLES_PATH. Test if ansible-lint chooses the role in the current directory when the role specified as parameter exists in the current directory and the ANSIBLE_ROLES_PATH. """ cwd = local_test_dir role_path = "roles/test-role" env = os.environ.copy() env["ANSIBLE_ROLES_PATH"] = os.path.realpath((cwd / "../examples/roles").resolve()) result = run_ansible_lint(role_path, cwd=cwd, env=env) > assert "Use shell only when shell functionality is required" in result.stdout E AssertionError: assert 'Use shell only when shell functionality is required' in '' E + where '' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stdout test/test_cli_role_paths.py:174: AssertionError _________________________ test_run_playbook_github[on] _________________________ result = True env = {'GITHUB_ACTIONS': 'true', 'GITHUB_WORKFLOW': 'foo', 'HOME': '/home/udu', 'LANG': 'C.UTF-8', ...} @pytest.mark.parametrize( ("result", "env"), ( (True, {"GITHUB_ACTIONS": "true", "GITHUB_WORKFLOW": "foo", "NO_COLOR": "1"}), (False, None), ), ids=("on", "off"), ) def test_run_playbook_github(result: bool, env: dict[str, str]) -> None: """Call ansible-lint simulating GitHub Actions environment.""" cwd = Path(__file__).parent.parent.resolve() role_path = "examples/playbooks/example.yml" if env is None: env = {} env["PATH"] = os.environ["PATH"] result_gh = run_ansible_lint(role_path, cwd=cwd, env=env) expected = ( "::error file=examples/playbooks/example.yml,line=44,severity=VERY_LOW,title=package-latest::" "Package installs should not use latest" ) > assert (expected in result_gh.stderr) is result E AssertionError: assert ('::error file=examples/playbooks/example.yml,line=44,severity=VERY_LOW,title=package-latest::Package installs should not use latest' in 'WARNING Skipped installing collection dependencies due to running in offline mode.\nTraceback (most recent call last...ocessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n') is True E + where 'WARNING Skipped installing collection dependencies due to running in offline mode.\nTraceback (most recent call last...ocessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stderr test/test_cli_role_paths.py:199: AssertionError ___________________________ test_run_role_identified ___________________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_role_identified(local_test_dir: Path) -> None: """Test that role name is identified correctly.""" cwd = local_test_dir env = os.environ.copy() env["ANSIBLE_ROLES_PATH"] = os.path.realpath( (cwd / "../examples/roles/role_detection").resolve(), ) result = run_ansible_lint( Path("roles/role_detection/foo/defaults/main.yml"), cwd=cwd, env=env, ) > assert result.returncode == RC.SUCCESS E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode E + and 0 = RC.SUCCESS test/test_cli_role_paths.py:215: AssertionError ___________________ test_run_role_identified_prefix_missing ____________________ local_test_dir = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples') def test_run_role_identified_prefix_missing(local_test_dir: Path) -> None: """Test that role name is identified correctly, with prefix violations.""" cwd = local_test_dir env = os.environ.copy() env["ANSIBLE_ROLES_PATH"] = os.path.realpath( (cwd / "../examples/roles/role_detection/base").resolve(), ) result = run_ansible_lint( Path("roles/role_detection/base/bar/defaults/main.yml"), cwd=cwd, env=env, ) > assert result.returncode == RC.VIOLATIONS_FOUND E AssertionError: assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode E + and 2 = RC.VIOLATIONS_FOUND test/test_cli_role_paths.py:231: AssertionError ________________________ test_external_dependency_is_ok ________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_external_dependency_is_ok(default_rules_collection: RulesCollection) -> None: """Check that external dep in role meta is not a violation.""" playbook_path = "examples/roles/dependency_in_meta/meta/main.yml" good_runner = Runner(playbook_path, rules=default_rules_collection) > assert good_runner.run() == [] test/test_dependencies_in_meta.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________________ test_example _________________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_example(default_rules_collection: RulesCollection) -> None: """example.yml is expected to have exact number of errors inside.""" result = Runner( "examples/playbooks/example.yml", rules=default_rules_collection, > ).run() test/test_examples.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ test_example_syntax_error[0] _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. filename = 'examples/playbooks/syntax-error-string.yml' expected_results = [('syntax-check[unknown-module]', 6, 7)] @pytest.mark.parametrize( ("filename", "expected_results"), ( pytest.param( "examples/playbooks/syntax-error-string.yml", [("syntax-check[unknown-module]", 6, 7)], id="0", ), pytest.param( "examples/playbooks/syntax-error.yml", [("syntax-check[specific]", 2, 3)], id="1", ), ), ) def test_example_syntax_error( default_rules_collection: RulesCollection, filename: str, expected_results: list[tuple[str, int | None, int | None]], ) -> None: """Validates that loading valid YAML string produce error.""" > result = Runner(filename, rules=default_rules_collection).run() test/test_examples.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ test_example_syntax_error[1] _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. filename = 'examples/playbooks/syntax-error.yml' expected_results = [('syntax-check[specific]', 2, 3)] @pytest.mark.parametrize( ("filename", "expected_results"), ( pytest.param( "examples/playbooks/syntax-error-string.yml", [("syntax-check[unknown-module]", 6, 7)], id="0", ), pytest.param( "examples/playbooks/syntax-error.yml", [("syntax-check[specific]", 2, 3)], id="1", ), ), ) def test_example_syntax_error( default_rules_collection: RulesCollection, filename: str, expected_results: list[tuple[str, int | None, int | None]], ) -> None: """Validates that loading valid YAML string produce error.""" > result = Runner(filename, rules=default_rules_collection).run() test/test_examples.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________ test_example_custom_module __________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_example_custom_module(default_rules_collection: RulesCollection) -> None: """custom_module.yml is expected to pass.""" app = get_app(offline=True) result = Runner( "examples/playbooks/custom_module.yml", rules=default_rules_collection, > ).run() test/test_examples.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________________ test_vault_full ________________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_vault_full(default_rules_collection: RulesCollection) -> None: """Check ability to process fully vaulted files.""" result = Runner( "examples/playbooks/vars/vault_full.yml", rules=default_rules_collection, > ).run() test/test_examples.py:69: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________________ test_vault_partial ______________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. caplog = <_pytest.logging.LogCaptureFixture object at 0x74598dae5190> def test_vault_partial( default_rules_collection: RulesCollection, caplog: pytest.LogCaptureFixture, ) -> None: """Check ability to process files that container !vault inside.""" result = Runner( "examples/playbooks/vars/vault_partial.yml", rules=default_rules_collection, > ).run() test/test_examples.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________________ test_custom_kinds _______________________________ def test_custom_kinds() -> None: """Check if user defined kinds are used.""" result = run_ansible_lint("-vv", "--offline", "examples/other/") > assert result.returncode == 0 E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_examples.py:91: AssertionError ________________________________ test_bug_3216 _________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x74598e438a40> def test_bug_3216(capsys: pytest.CaptureFixture[str]) -> None: """Check that we hide ansible-core originating warning about fallback on unique filter.""" result = run_ansible_lint( "-vv", "--offline", "examples/playbooks/bug-core-warning-unique-filter-fallback.yml", ) captured = capsys.readouterr() > assert result.returncode == 0 E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_examples.py:106: AssertionError ______________ test_file_path_evaluation[using-only-import_tasks] ______________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_file_path_evaluation_usin0') default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. ansible_project_layout = {'main.yml': '---\n- name: Fixture\n hosts: target\n gather_facts: false\n tasks:\n - name: From main import tas...ask_1.yml': '---\n- name: task_1 | From task 1 import task 2\n ansible.builtin.import_tasks: tasks/task_2.yml\n', ...} @pytest.mark.parametrize( "ansible_project_layout", ( pytest.param(LAYOUT_IMPORTS, id="using-only-import_tasks"), pytest.param(LAYOUT_INCLUDES, id="using-only-include_tasks"), ), ) def test_file_path_evaluation( tmp_path: Path, default_rules_collection: RulesCollection, ansible_project_layout: dict[str, str], ) -> None: """Test file path evaluation when using import_tasks / include_tasks in the project. The goal of this test is to verify our ability to find errors from within nested includes. """ for file_path, file_content in ansible_project_layout.items(): full_path = tmp_path / file_path full_path.parent.mkdir(parents=True, exist_ok=True) full_path.write_text(file_content) > result = Runner(str(tmp_path), rules=default_rules_collection).run() test/test_file_path_evaluation.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________ test_file_path_evaluation[using-only-include_tasks] ______________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_file_path_evaluation_usin1') default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. ansible_project_layout = {'main.yml': '---\n- name: Fixture\n hosts: target\n gather_facts: false\n tasks:\n - name: From main import tas...sk_1.yml': '---\n- name: task_1 | From task 1 import task 2\n ansible.builtin.include_tasks: tasks/task_2.yml\n', ...} @pytest.mark.parametrize( "ansible_project_layout", ( pytest.param(LAYOUT_IMPORTS, id="using-only-import_tasks"), pytest.param(LAYOUT_INCLUDES, id="using-only-include_tasks"), ), ) def test_file_path_evaluation( tmp_path: Path, default_rules_collection: RulesCollection, ansible_project_layout: dict[str, str], ) -> None: """Test file path evaluation when using import_tasks / include_tasks in the project. The goal of this test is to verify our ability to find errors from within nested includes. """ for file_path, file_content in ansible_project_layout.items(): full_path = tmp_path / file_path full_path.parent.mkdir(parents=True, exist_ok=True) full_path.write_text(file_content) > result = Runner(str(tmp_path), rules=default_rules_collection).run() test/test_file_path_evaluation.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________________ test_bug_2513 _________________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_bug_25130') default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_bug_2513( tmp_path: Path, default_rules_collection: RulesCollection, ) -> None: """Regression test for bug 2513. Test that when CWD is outside ~, and argument is like ~/playbook.yml we will still be able to process the files. See: https://github.com/ansible/ansible-lint/issues/2513 """ filename = Path("~/.cache/ansible-lint/playbook.yml").expanduser() filename.parent.mkdir(parents=True, exist_ok=True) lintable = Lintable(filename, content="---\n- hosts: all\n") lintable.write(force=True) with cwd(tmp_path): > results = Runner(filename, rules=default_rules_collection).run() test/test_file_utils.py:543: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________________ test_sarif_file[0] ______________________________ file = 'examples/playbooks/valid.yml', return_code = 0 @pytest.mark.parametrize( ("file", "return_code"), ( pytest.param("examples/playbooks/valid.yml", 0, id="0"), pytest.param("playbook.yml", 2, id="1"), ), ) def test_sarif_file(file: str, return_code: int) -> None: """Test ability to dump sarif file (--sarif-file).""" with NamedTemporaryFile( mode="w", suffix=".sarif", prefix="output", encoding="utf-8" ) as output_file: cmd = [ sys.executable, "-m", "ansiblelint", "--sarif-file", str(output_file.name), ] result = subprocess.run([*cmd, file], check=False, capture_output=True) > assert result.returncode == return_code E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_formatter_sarif.py:203: AssertionError ______________________________ test_sarif_file[1] ______________________________ file = 'playbook.yml', return_code = 2 @pytest.mark.parametrize( ("file", "return_code"), ( pytest.param("examples/playbooks/valid.yml", 0, id="0"), pytest.param("playbook.yml", 2, id="1"), ), ) def test_sarif_file(file: str, return_code: int) -> None: """Test ability to dump sarif file (--sarif-file).""" with NamedTemporaryFile( mode="w", suffix=".sarif", prefix="output", encoding="utf-8" ) as output_file: cmd = [ sys.executable, "-m", "ansiblelint", "--sarif-file", str(output_file.name), ] result = subprocess.run([*cmd, file], check=False, capture_output=True) > assert result.returncode == return_code E AssertionError: assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_formatter_sarif.py:203: AssertionError _________________ test_sarif_file_creates_it_if_none_exists[0] _________________ file = 'examples/playbooks/valid.yml', return_code = 0 @pytest.mark.parametrize( ("file", "return_code"), (pytest.param("examples/playbooks/valid.yml", 0, id="0"),), ) def test_sarif_file_creates_it_if_none_exists(file: str, return_code: int) -> None: """Test ability to create sarif file if none exists and dump output to it (--sarif-file).""" sarif_file_name = "test_output.sarif" cmd = [ sys.executable, "-m", "ansiblelint", "--sarif-file", sarif_file_name, ] result = subprocess.run([*cmd, file], check=False, capture_output=True) > assert result.returncode == return_code E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_formatter_sarif.py:223: AssertionError ________________________ test_import_role2[IMPORT_ROLE] ________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_import_role2_IMPORT_ROLE_0/playbook.yml' messages = ['only when shell functionality is required', 'All tasks should be named'] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( PLAY_IMPORT_ROLE, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE", ), pytest.param( PLAY_IMPORT_ROLE_FQCN, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE_FQCN", ), pytest.param( PLAY_IMPORT_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="IMPORT_ROLE_INLINE", ), pytest.param( PLAY_INCLUDE_ROLE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE", ), pytest.param( PLAY_INCLUDE_ROLE_FQCN, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_FQCN", ), pytest.param( PLAY_INCLUDE_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_INLINE", ), ), indirect=("playbook_path",), ) def test_import_role2( default_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Test that include_role digs deeper than import_role.""" runner = Runner( playbook_path, rules=default_rules_collection, skip_list=["fqcn[action-core]"], ) > results = runner.run() test/test_import_include_role.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________ test_import_role2[IMPORT_ROLE_FQCN] ______________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_import_role2_IMPORT_ROLE_1/playbook.yml' messages = ['only when shell functionality is required', 'All tasks should be named'] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( PLAY_IMPORT_ROLE, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE", ), pytest.param( PLAY_IMPORT_ROLE_FQCN, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE_FQCN", ), pytest.param( PLAY_IMPORT_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="IMPORT_ROLE_INLINE", ), pytest.param( PLAY_INCLUDE_ROLE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE", ), pytest.param( PLAY_INCLUDE_ROLE_FQCN, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_FQCN", ), pytest.param( PLAY_INCLUDE_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_INLINE", ), ), indirect=("playbook_path",), ) def test_import_role2( default_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Test that include_role digs deeper than import_role.""" runner = Runner( playbook_path, rules=default_rules_collection, skip_list=["fqcn[action-core]"], ) > results = runner.run() test/test_import_include_role.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________ test_import_role2[IMPORT_ROLE_INLINE] _____________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_import_role2_IMPORT_ROLE_2/playbook.yml' messages = ['only when shell functionality is require', 'All tasks should be named'] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( PLAY_IMPORT_ROLE, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE", ), pytest.param( PLAY_IMPORT_ROLE_FQCN, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE_FQCN", ), pytest.param( PLAY_IMPORT_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="IMPORT_ROLE_INLINE", ), pytest.param( PLAY_INCLUDE_ROLE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE", ), pytest.param( PLAY_INCLUDE_ROLE_FQCN, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_FQCN", ), pytest.param( PLAY_INCLUDE_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_INLINE", ), ), indirect=("playbook_path",), ) def test_import_role2( default_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Test that include_role digs deeper than import_role.""" runner = Runner( playbook_path, rules=default_rules_collection, skip_list=["fqcn[action-core]"], ) > results = runner.run() test/test_import_include_role.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ test_import_role2[INCLUDE_ROLE] ________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_import_role2_INCLUDE_ROLE0/playbook.yml' messages = ['only when shell functionality is require', 'All tasks should be named'] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( PLAY_IMPORT_ROLE, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE", ), pytest.param( PLAY_IMPORT_ROLE_FQCN, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE_FQCN", ), pytest.param( PLAY_IMPORT_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="IMPORT_ROLE_INLINE", ), pytest.param( PLAY_INCLUDE_ROLE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE", ), pytest.param( PLAY_INCLUDE_ROLE_FQCN, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_FQCN", ), pytest.param( PLAY_INCLUDE_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_INLINE", ), ), indirect=("playbook_path",), ) def test_import_role2( default_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Test that include_role digs deeper than import_role.""" runner = Runner( playbook_path, rules=default_rules_collection, skip_list=["fqcn[action-core]"], ) > results = runner.run() test/test_import_include_role.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________ test_import_role2[INCLUDE_ROLE_FQCN] _____________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_import_role2_INCLUDE_ROLE1/playbook.yml' messages = ['only when shell functionality is require', 'All tasks should be named'] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( PLAY_IMPORT_ROLE, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE", ), pytest.param( PLAY_IMPORT_ROLE_FQCN, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE_FQCN", ), pytest.param( PLAY_IMPORT_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="IMPORT_ROLE_INLINE", ), pytest.param( PLAY_INCLUDE_ROLE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE", ), pytest.param( PLAY_INCLUDE_ROLE_FQCN, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_FQCN", ), pytest.param( PLAY_INCLUDE_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_INLINE", ), ), indirect=("playbook_path",), ) def test_import_role2( default_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Test that include_role digs deeper than import_role.""" runner = Runner( playbook_path, rules=default_rules_collection, skip_list=["fqcn[action-core]"], ) > results = runner.run() test/test_import_include_role.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________ test_import_role2[INCLUDE_ROLE_INLINE] ____________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = '/tmp/pytest-of-udu/pytest-0/test_import_role2_INCLUDE_ROLE2/playbook.yml' messages = ['only when shell functionality is require', 'All tasks should be named'] @pytest.mark.parametrize( ("playbook_path", "messages"), ( pytest.param( PLAY_IMPORT_ROLE, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE", ), pytest.param( PLAY_IMPORT_ROLE_FQCN, ["only when shell functionality is required", "All tasks should be named"], id="IMPORT_ROLE_FQCN", ), pytest.param( PLAY_IMPORT_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="IMPORT_ROLE_INLINE", ), pytest.param( PLAY_INCLUDE_ROLE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE", ), pytest.param( PLAY_INCLUDE_ROLE_FQCN, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_FQCN", ), pytest.param( PLAY_INCLUDE_ROLE_INLINE, ["only when shell functionality is require", "All tasks should be named"], id="INCLUDE_ROLE_INLINE", ), ), indirect=("playbook_path",), ) def test_import_role2( default_rules_collection: RulesCollection, playbook_path: str, messages: list[str], ) -> None: """Test that include_role digs deeper than import_role.""" runner = Runner( playbook_path, rules=default_rules_collection, skip_list=["fqcn[action-core]"], ) > results = runner.run() test/test_import_include_role.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________ test_task_hook_import_playbook ________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_task_hook_import_playbook(default_rules_collection: RulesCollection) -> None: """Assures import_playbook includes are recognized.""" playbook_path = "examples/playbooks/playbook-parent.yml" runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_import_playbook.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________ test_import_playbook_from_collection _____________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_import_playbook_from_collection( default_rules_collection: RulesCollection, ) -> None: """Assures import_playbook from collection.""" playbook_path = "examples/playbooks/test_import_playbook.yml" runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_import_playbook.py:28: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ test_import_playbook_invalid _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_import_playbook_invalid( default_rules_collection: RulesCollection, ) -> None: """Assures import_playbook from collection.""" playbook_path = "examples/playbooks/test_import_playbook_invalid.yml" runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_import_playbook.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_import_tasks[0] _____________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = 'examples/playbooks/test_import_with_conflicting_action_statements.yml' lintable_count = 2, match_count = 4 @pytest.mark.parametrize( ("playbook_path", "lintable_count", "match_count"), ( pytest.param( "examples/playbooks/test_import_with_conflicting_action_statements.yml", 2, 4, id="0", ), pytest.param("examples/playbooks/test_import_with_malformed.yml", 2, 2, id="1"), ), ) def test_import_tasks( default_rules_collection: RulesCollection, playbook_path: str, lintable_count: int, match_count: int, ) -> None: """Assures import_playbook includes are recognized.""" runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_import_tasks.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_import_tasks[1] _____________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook_path = 'examples/playbooks/test_import_with_malformed.yml' lintable_count = 2, match_count = 2 @pytest.mark.parametrize( ("playbook_path", "lintable_count", "match_count"), ( pytest.param( "examples/playbooks/test_import_with_conflicting_action_statements.yml", 2, 4, id="0", ), pytest.param("examples/playbooks/test_import_with_malformed.yml", 2, 2, id="1"), ), ) def test_import_tasks( default_rules_collection: RulesCollection, playbook_path: str, lintable_count: int, match_count: int, ) -> None: """Assures import_playbook includes are recognized.""" runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_import_tasks.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________ test_incorrect_module_args[playbook] _____________________ path = 'examples/playbooks/incorrect_module_args.yml' default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.mark.parametrize( ("path"), ( pytest.param( "examples/playbooks/incorrect_module_args.yml", id="playbook", ), ), ) def test_incorrect_module_args( path: str, default_rules_collection: RulesCollection, ) -> None: """Check that we fail when file encoding is wrong.""" runner = Runner(path, rules=default_rules_collection) > matches = runner.run() test/test_internal_rules.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________ test_load_failure_encoding[jinja2] ______________________ path = 'examples/broken/encoding.j2' default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.mark.parametrize( "path", ( pytest.param("examples/broken/encoding.j2", id="jinja2"), pytest.param("examples/broken/encoding.yml", id="yaml"), ), ) def test_load_failure_encoding( path: str, default_rules_collection: RulesCollection, ) -> None: """Check that we fail when file encoding is wrong.""" runner = Runner(path, rules=default_rules_collection) > matches = runner.run() test/test_load_failure.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ test_load_failure_encoding[yaml] _______________________ path = 'examples/broken/encoding.yml' default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. @pytest.mark.parametrize( "path", ( pytest.param("examples/broken/encoding.j2", id="jinja2"), pytest.param("examples/broken/encoding.yml", id="yaml"), ), ) def test_load_failure_encoding( path: str, default_rules_collection: RulesCollection, ) -> None: """Check that we fail when file encoding is wrong.""" runner = Runner(path, rules=default_rules_collection) > matches = runner.run() test/test_load_failure.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_local_collection _____________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_local_collection(default_rules_collection: RulesCollection) -> None: """Assures local collections are found.""" playbook_path = "test/local-content/test-collection.yml" runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_local_content.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________________ test_nodeps[1] ________________________________ lintable = 'examples/playbooks/nodeps.yml' @pytest.mark.parametrize( ("lintable"), ( pytest.param("examples/playbooks/nodeps.yml", id="1"), pytest.param("examples/playbooks/nodeps2.yml", id="2"), ), ) def test_nodeps(lintable: str) -> None: """Asserts ability to be called w/ or w/o venv activation.""" env = os.environ.copy() env["ANSIBLE_LINT_NODEPS"] = "1" py_path = Path(sys.executable).parent proc = subprocess.run( [str(py_path / "ansible-lint"), lintable], check=False, capture_output=True, text=True, env=env, ) > assert proc.returncode == 0, proc E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/ansible-lint', '...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/ansible-lint', '...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_main.py:134: AssertionError ________________________________ test_nodeps[2] ________________________________ lintable = 'examples/playbooks/nodeps2.yml' @pytest.mark.parametrize( ("lintable"), ( pytest.param("examples/playbooks/nodeps.yml", id="1"), pytest.param("examples/playbooks/nodeps2.yml", id="2"), ), ) def test_nodeps(lintable: str) -> None: """Asserts ability to be called w/ or w/o venv activation.""" env = os.environ.copy() env["ANSIBLE_LINT_NODEPS"] = "1" py_path = Path(sys.executable).parent proc = subprocess.run( [str(py_path / "ansible-lint"), lintable], check=False, capture_output=True, text=True, env=env, ) > assert proc.returncode == 0, proc E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/ansible-lint', '...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/ansible-lint', '...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_main.py:134: AssertionError __________________________ test_runner[nomatchestest] __________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook = PosixPath('examples/playbooks/nomatchestest.yml'), exclude = [] length = 0 @pytest.mark.parametrize( ("playbook", "exclude", "length"), ( pytest.param( Path("examples/playbooks/nomatchestest.yml"), [], 0, id="nomatchestest", ), pytest.param(Path("examples/playbooks/unicode.yml"), [], 1, id="unicode"), pytest.param( LOTS_OF_WARNINGS_PLAYBOOK, [LOTS_OF_WARNINGS_PLAYBOOK], 993, id="lots_of_warnings", ), pytest.param(Path("examples/playbooks/become.yml"), [], 0, id="become"), pytest.param( Path("examples/playbooks/contains_secrets.yml"), [], 0, id="contains_secrets", ), ), ) def test_runner( default_rules_collection: RulesCollection, playbook: Path, exclude: list[str], length: int, ) -> None: """Test that runner can go through any corner cases.""" runner = Runner(playbook, rules=default_rules_collection, exclude_paths=exclude) > matches = runner.run() test/test_runner.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_runner[unicode] _____________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook = PosixPath('examples/playbooks/unicode.yml'), exclude = [], length = 1 @pytest.mark.parametrize( ("playbook", "exclude", "length"), ( pytest.param( Path("examples/playbooks/nomatchestest.yml"), [], 0, id="nomatchestest", ), pytest.param(Path("examples/playbooks/unicode.yml"), [], 1, id="unicode"), pytest.param( LOTS_OF_WARNINGS_PLAYBOOK, [LOTS_OF_WARNINGS_PLAYBOOK], 993, id="lots_of_warnings", ), pytest.param(Path("examples/playbooks/become.yml"), [], 0, id="become"), pytest.param( Path("examples/playbooks/contains_secrets.yml"), [], 0, id="contains_secrets", ), ), ) def test_runner( default_rules_collection: RulesCollection, playbook: Path, exclude: list[str], length: int, ) -> None: """Test that runner can go through any corner cases.""" runner = Runner(playbook, rules=default_rules_collection, exclude_paths=exclude) > matches = runner.run() test/test_runner.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________ test_runner[lots_of_warnings] _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples/playbooks/lots_of_warnings.yml') exclude = [PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples/playbooks/lots_of_warnings.yml')] length = 993 @pytest.mark.parametrize( ("playbook", "exclude", "length"), ( pytest.param( Path("examples/playbooks/nomatchestest.yml"), [], 0, id="nomatchestest", ), pytest.param(Path("examples/playbooks/unicode.yml"), [], 1, id="unicode"), pytest.param( LOTS_OF_WARNINGS_PLAYBOOK, [LOTS_OF_WARNINGS_PLAYBOOK], 993, id="lots_of_warnings", ), pytest.param(Path("examples/playbooks/become.yml"), [], 0, id="become"), pytest.param( Path("examples/playbooks/contains_secrets.yml"), [], 0, id="contains_secrets", ), ), ) def test_runner( default_rules_collection: RulesCollection, playbook: Path, exclude: list[str], length: int, ) -> None: """Test that runner can go through any corner cases.""" runner = Runner(playbook, rules=default_rules_collection, exclude_paths=exclude) > matches = runner.run() test/test_runner.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_runner[become] ______________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook = PosixPath('examples/playbooks/become.yml'), exclude = [], length = 0 @pytest.mark.parametrize( ("playbook", "exclude", "length"), ( pytest.param( Path("examples/playbooks/nomatchestest.yml"), [], 0, id="nomatchestest", ), pytest.param(Path("examples/playbooks/unicode.yml"), [], 1, id="unicode"), pytest.param( LOTS_OF_WARNINGS_PLAYBOOK, [LOTS_OF_WARNINGS_PLAYBOOK], 993, id="lots_of_warnings", ), pytest.param(Path("examples/playbooks/become.yml"), [], 0, id="become"), pytest.param( Path("examples/playbooks/contains_secrets.yml"), [], 0, id="contains_secrets", ), ), ) def test_runner( default_rules_collection: RulesCollection, playbook: Path, exclude: list[str], length: int, ) -> None: """Test that runner can go through any corner cases.""" runner = Runner(playbook, rules=default_rules_collection, exclude_paths=exclude) > matches = runner.run() test/test_runner.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________ test_runner[contains_secrets] _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. playbook = PosixPath('examples/playbooks/contains_secrets.yml'), exclude = [] length = 0 @pytest.mark.parametrize( ("playbook", "exclude", "length"), ( pytest.param( Path("examples/playbooks/nomatchestest.yml"), [], 0, id="nomatchestest", ), pytest.param(Path("examples/playbooks/unicode.yml"), [], 1, id="unicode"), pytest.param( LOTS_OF_WARNINGS_PLAYBOOK, [LOTS_OF_WARNINGS_PLAYBOOK], 993, id="lots_of_warnings", ), pytest.param(Path("examples/playbooks/become.yml"), [], 0, id="become"), pytest.param( Path("examples/playbooks/contains_secrets.yml"), [], 0, id="contains_secrets", ), ), ) def test_runner( default_rules_collection: RulesCollection, playbook: Path, exclude: list[str], length: int, ) -> None: """Test that runner can go through any corner cases.""" runner = Runner(playbook, rules=default_rules_collection, exclude_paths=exclude) > matches = runner.run() test/test_runner.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________ test_runner_exclude_paths ___________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_runner_exclude_paths(default_rules_collection: RulesCollection) -> None: """Test that exclude paths do work.""" runner = Runner( "examples/playbooks/deep/", rules=default_rules_collection, exclude_paths=["examples/playbooks/deep/empty.yml"], ) > matches = runner.run() test/test_runner.py:86: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ test_runner_exclude_globs[1] _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. exclude_path = '**/playbooks_globs/*b.yml' @pytest.mark.parametrize( ("exclude_path"), (pytest.param("**/playbooks_globs/*b.yml", id="1"),), ) def test_runner_exclude_globs( default_rules_collection: RulesCollection, exclude_path: str, ) -> None: """Test that globs work.""" runner = Runner( "examples/playbooks_globs", rules=default_rules_collection, exclude_paths=[exclude_path], ) > matches = runner.run() test/test_runner.py:105: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________ test_runner_unicode_format[Formatter-plain] __________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. formatter_cls = @pytest.mark.parametrize( ("formatter_cls"), ( pytest.param(formatters.Formatter, id="Formatter-plain"), pytest.param(formatters.ParseableFormatter, id="ParseableFormatter-colored"), pytest.param(formatters.QuietFormatter, id="QuietFormatter-colored"), pytest.param(formatters.Formatter, id="Formatter-colored"), ), ) def test_runner_unicode_format( default_rules_collection: RulesCollection, formatter_cls: type[formatters.BaseFormatter[Any]], ) -> None: """Check that all formatters are unicode-friendly.""" formatter = formatter_cls(Path.cwd(), display_relative_path=True) runner = Runner( Lintable("examples/playbooks/unicode.yml", kind="playbook"), rules=default_rules_collection, ) > matches = runner.run() test/test_runner.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________ test_runner_unicode_format[ParseableFormatter-colored] ____________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. formatter_cls = @pytest.mark.parametrize( ("formatter_cls"), ( pytest.param(formatters.Formatter, id="Formatter-plain"), pytest.param(formatters.ParseableFormatter, id="ParseableFormatter-colored"), pytest.param(formatters.QuietFormatter, id="QuietFormatter-colored"), pytest.param(formatters.Formatter, id="Formatter-colored"), ), ) def test_runner_unicode_format( default_rules_collection: RulesCollection, formatter_cls: type[formatters.BaseFormatter[Any]], ) -> None: """Check that all formatters are unicode-friendly.""" formatter = formatter_cls(Path.cwd(), display_relative_path=True) runner = Runner( Lintable("examples/playbooks/unicode.yml", kind="playbook"), rules=default_rules_collection, ) > matches = runner.run() test/test_runner.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________ test_runner_unicode_format[QuietFormatter-colored] ______________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. formatter_cls = @pytest.mark.parametrize( ("formatter_cls"), ( pytest.param(formatters.Formatter, id="Formatter-plain"), pytest.param(formatters.ParseableFormatter, id="ParseableFormatter-colored"), pytest.param(formatters.QuietFormatter, id="QuietFormatter-colored"), pytest.param(formatters.Formatter, id="Formatter-colored"), ), ) def test_runner_unicode_format( default_rules_collection: RulesCollection, formatter_cls: type[formatters.BaseFormatter[Any]], ) -> None: """Check that all formatters are unicode-friendly.""" formatter = formatter_cls(Path.cwd(), display_relative_path=True) runner = Runner( Lintable("examples/playbooks/unicode.yml", kind="playbook"), rules=default_rules_collection, ) > matches = runner.run() test/test_runner.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________ test_runner_unicode_format[Formatter-colored] _________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. formatter_cls = @pytest.mark.parametrize( ("formatter_cls"), ( pytest.param(formatters.Formatter, id="Formatter-plain"), pytest.param(formatters.ParseableFormatter, id="ParseableFormatter-colored"), pytest.param(formatters.QuietFormatter, id="QuietFormatter-colored"), pytest.param(formatters.Formatter, id="Formatter-colored"), ), ) def test_runner_unicode_format( default_rules_collection: RulesCollection, formatter_cls: type[formatters.BaseFormatter[Any]], ) -> None: """Check that all formatters are unicode-friendly.""" formatter = formatter_cls(Path.cwd(), display_relative_path=True) runner = Runner( Lintable("examples/playbooks/unicode.yml", kind="playbook"), rules=default_rules_collection, ) > matches = runner.run() test/test_runner.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ test_files_not_scanned_twice _________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_files_not_scanned_twice(default_rules_collection: RulesCollection) -> None: """Ensure that lintables aren't double-checked.""" checked_files: set[Lintable] = set() filename = Path("examples/playbooks/common-include-1.yml").resolve() runner = Runner( filename, rules=default_rules_collection, verbosity=0, checked_files=checked_files, ) > run1 = runner.run() test/test_runner.py:163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_runner_not_found _____________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_runner_not_found(default_rules_collection: RulesCollection) -> None: """Ensure that lintables aren't double-checked.""" checked_files: set[Lintable] = set() filename = Path("this/folder/does/not/exist").resolve() runner = Runner( filename, rules=default_rules_collection, verbosity=0, checked_files=checked_files, ) > result = runner.run() test/test_runner.py:238: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_runner_tmp_file _____________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_runner_tmp_file0') default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_runner_tmp_file( tmp_path: Path, default_rules_collection: RulesCollection, ) -> None: """Ensure we do not ignore an explicit temporary file from linting.""" # https://github.com/ansible/ansible-lint/issues/2628 filename = tmp_path / "playbook.yml" filename.write_text("---\n") runner = Runner( filename, rules=default_rules_collection, verbosity=0, ) > result = runner.run() test/test_runner.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_with_full_path ______________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_with_full_path(default_rules_collection: RulesCollection) -> None: """Ensure that lintables include file path starting from home directory.""" filename = Path("examples/playbooks/deep").absolute() runner = Runner( filename, rules=default_rules_collection, verbosity=0, ) > result = runner.run() test/test_runner.py:270: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________ test_skip_import_playbook ___________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_skip_import_playbook0') def test_skip_import_playbook( default_rules_collection: RulesCollection, tmp_path: Path ) -> None: """Verify that a playbook import is skipped after a failure.""" playbook_path = tmp_path / "playbook.yml" playbook_path.write_text(MAIN_PLAYBOOK) (tmp_path / "imported_playbook.yml").write_text(IMPORTED_PLAYBOOK) runner = Runner(playbook_path, rules=default_rules_collection) > results = runner.run() test/test_skip_import_playbook.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________________ test_inline_skips[yaml] ____________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. lintable = 'examples/playbooks/test_skip_inside_yaml.yml', expected = 4 @pytest.mark.parametrize( ("lintable", "expected"), (pytest.param("examples/playbooks/test_skip_inside_yaml.yml", 4, id="yaml"),), ) def test_inline_skips( default_rules_collection: RulesCollection, lintable: str, expected: int, ) -> None: """Check that playbooks can contain skips.""" > results = Runner(lintable, rules=default_rules_collection).run() test/test_skip_inside_yaml.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________________ test_role_meta ________________________________ def test_role_meta() -> None: """Test running from inside meta folder.""" role_path = "examples/roles/meta_noqa" result = run_ansible_lint("-v", role_path) assert len(result.stdout) == 0 > assert result.returncode == 0 E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_skip_inside_yaml.py:42: AssertionError __________________________ test_pre_tasks[PRE_TASKS] ___________________________ default_text_runner = playbook = '---\n- name: Fixture\n hosts: all\n tasks:\n - name: Bad git 1 # noqa: latest[git]\n action: ansible.built...st[git]\n action: ansible.builtin.git a=b c=d\n - name: Bad git 4\n action: ansible.builtin.git a=b c=d\n' length = 6 @pytest.mark.parametrize( ("playbook", "length"), ( pytest.param(PLAYBOOK_PRE_TASKS, 6, id="PRE_TASKS"), pytest.param(PLAYBOOK_POST_TASKS, 6, id="POST_TASKS"), pytest.param(PLAYBOOK_HANDLERS, 6, id="HANDLERS"), pytest.param(PLAYBOOK_TWO_PLAYS, 6, id="TWO_PLAYS"), pytest.param(PLAYBOOK_WITH_BLOCK, 12, id="WITH_BLOCK"), ), ) def test_pre_tasks( default_text_runner: RunFromText, playbook: str, length: int, ) -> None: """Check that skipping is possible in different playbook parts.""" # When > results = default_text_runner.run_playbook(playbook) test/test_skip_playbook_items.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________ test_pre_tasks[POST_TASKS] __________________________ default_text_runner = playbook = '---\n- name: Fixture\n hosts: all\n tasks:\n - name: Bad git 1 # noqa: latest[git]\n action: ansible.built...st[git]\n action: ansible.builtin.git a=b c=d\n - name: Bad git 4\n action: ansible.builtin.git a=b c=d\n' length = 6 @pytest.mark.parametrize( ("playbook", "length"), ( pytest.param(PLAYBOOK_PRE_TASKS, 6, id="PRE_TASKS"), pytest.param(PLAYBOOK_POST_TASKS, 6, id="POST_TASKS"), pytest.param(PLAYBOOK_HANDLERS, 6, id="HANDLERS"), pytest.param(PLAYBOOK_TWO_PLAYS, 6, id="TWO_PLAYS"), pytest.param(PLAYBOOK_WITH_BLOCK, 12, id="WITH_BLOCK"), ), ) def test_pre_tasks( default_text_runner: RunFromText, playbook: str, length: int, ) -> None: """Check that skipping is possible in different playbook parts.""" # When > results = default_text_runner.run_playbook(playbook) test/test_skip_playbook_items.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________________ test_pre_tasks[HANDLERS] ___________________________ default_text_runner = playbook = '---\n- name: Fixture\n hosts: all\n tasks:\n - name: Bad git 1 # noqa: latest[git]\n action: ansible.built...st[git]\n action: ansible.builtin.git a=b c=d\n - name: Bad git 4\n action: ansible.builtin.git a=b c=d\n' length = 6 @pytest.mark.parametrize( ("playbook", "length"), ( pytest.param(PLAYBOOK_PRE_TASKS, 6, id="PRE_TASKS"), pytest.param(PLAYBOOK_POST_TASKS, 6, id="POST_TASKS"), pytest.param(PLAYBOOK_HANDLERS, 6, id="HANDLERS"), pytest.param(PLAYBOOK_TWO_PLAYS, 6, id="TWO_PLAYS"), pytest.param(PLAYBOOK_WITH_BLOCK, 12, id="WITH_BLOCK"), ), ) def test_pre_tasks( default_text_runner: RunFromText, playbook: str, length: int, ) -> None: """Check that skipping is possible in different playbook parts.""" # When > results = default_text_runner.run_playbook(playbook) test/test_skip_playbook_items.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________ test_pre_tasks[TWO_PLAYS] ___________________________ default_text_runner = playbook = '---\n- name: Fixture\n hosts: all\n tasks:\n - name: Bad git 1 # noqa: latest[git]\n action: ansible.built...st[git]\n action: ansible.builtin.git a=b c=d\n - name: Bad git 4\n action: ansible.builtin.git a=b c=d\n' length = 6 @pytest.mark.parametrize( ("playbook", "length"), ( pytest.param(PLAYBOOK_PRE_TASKS, 6, id="PRE_TASKS"), pytest.param(PLAYBOOK_POST_TASKS, 6, id="POST_TASKS"), pytest.param(PLAYBOOK_HANDLERS, 6, id="HANDLERS"), pytest.param(PLAYBOOK_TWO_PLAYS, 6, id="TWO_PLAYS"), pytest.param(PLAYBOOK_WITH_BLOCK, 12, id="WITH_BLOCK"), ), ) def test_pre_tasks( default_text_runner: RunFromText, playbook: str, length: int, ) -> None: """Check that skipping is possible in different playbook parts.""" # When > results = default_text_runner.run_playbook(playbook) test/test_skip_playbook_items.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError __________________________ test_pre_tasks[WITH_BLOCK] __________________________ default_text_runner = playbook = '---\n- name: Fixture\n hosts: all\n tasks:\n - name: Bad git 1 # noqa: latest[git]\n action: ansible.built... action: ansible.builtin.git a=b c=d\n - name: Bad git 8\n action: ansible.builtin.git a=b c=d\n' length = 12 @pytest.mark.parametrize( ("playbook", "length"), ( pytest.param(PLAYBOOK_PRE_TASKS, 6, id="PRE_TASKS"), pytest.param(PLAYBOOK_POST_TASKS, 6, id="POST_TASKS"), pytest.param(PLAYBOOK_HANDLERS, 6, id="HANDLERS"), pytest.param(PLAYBOOK_TWO_PLAYS, 6, id="TWO_PLAYS"), pytest.param(PLAYBOOK_WITH_BLOCK, 12, id="WITH_BLOCK"), ), ) def test_pre_tasks( default_text_runner: RunFromText, playbook: str, length: int, ) -> None: """Check that skipping is possible in different playbook parts.""" # When > results = default_text_runner.run_playbook(playbook) test/test_skip_playbook_items.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________________ test_playbook_noqa ______________________________ default_text_runner = def test_playbook_noqa(default_text_runner: RunFromText) -> None: """Check that noqa is properly taken into account on vars and tasks.""" > results = default_text_runner.run_playbook(PLAYBOOK_WITH_NOQA) test/test_skiputils.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_playbook_noqa2 ______________________________ default_text_runner = def test_playbook_noqa2(default_text_runner: RunFromText) -> None: """Check that noqa is properly taken into account on vars and tasks.""" > results = default_text_runner.run_playbook(PLAYBOOK_WITH_NOQA, "test") test/test_skiputils.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/testing/__init__.py:60: in run_playbook results = self._call_runner(Path(fh.name)) build/lib/ansiblelint/testing/__init__.py:43: in _call_runner return runner.run() build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________ test_capture_warning_outdated_tag _______________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_capture_warning_outdated_tag( default_rules_collection: RulesCollection, ) -> None: """Test that exclude paths do work.""" runner = Runner( "examples/playbooks/capture-warning.yml", rules=default_rules_collection, ) > matches = runner.run() test/test_skiputils.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________________ test_strict[on] ________________________________ strict = True, returncode = 2, message = 'Failed' @pytest.mark.parametrize( ("strict", "returncode", "message"), ( pytest.param(True, 2, "Failed", id="on"), pytest.param(False, 0, "Passed", id="off"), ), ) def test_strict(strict: bool, returncode: int, message: str) -> None: """Test running from inside meta folder.""" args = ["examples/playbooks/strict-mode.yml"] env = os.environ.copy() env["NO_COLOR"] = "1" if strict: args.insert(0, "--strict") result = run_ansible_lint(*args, env=env) > assert result.returncode == returncode E AssertionError: assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_strict.py:25: AssertionError _______________________________ test_strict[off] _______________________________ strict = False, returncode = 0, message = 'Passed' @pytest.mark.parametrize( ("strict", "returncode", "message"), ( pytest.param(True, 2, "Failed", id="on"), pytest.param(False, 0, "Passed", id="off"), ), ) def test_strict(strict: bool, returncode: int, message: str) -> None: """Test running from inside meta folder.""" args = ["examples/playbooks/strict-mode.yml"] env = os.environ.copy() env["NO_COLOR"] = "1" if strict: args.insert(0, "--strict") result = run_ansible_lint(*args, env=env) > assert result.returncode == returncode E AssertionError: assert 1 == 0 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_strict.py:25: AssertionError __________________________ test_pruned_err_after_fix ___________________________ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x74598dfd2ab0> tmpdir = local('/tmp/pytest-of-udu/pytest-0/test_pruned_err_after_fix0') def test_pruned_err_after_fix(monkeypatch: pytest.MonkeyPatch, tmpdir: Path) -> None: """Test that pruned errors are not reported after fixing. :param monkeypatch: Monkeypatch :param tmpdir: Temporary directory """ file = Path("examples/playbooks/transform-jinja.yml") source = Path.cwd() / file dest = tmpdir / source.name shutil.copyfile(source, dest) monkeypatch.setattr("sys.argv", ["ansible-lint", str(dest), "--fix=all"]) fix_called = False orig_fix = main.fix def test_fix( runtime_options: Options, result: LintResult, rules: RulesCollection, ) -> None: """Wrap main.fix to check if it was called and match count is correct. :param runtime_options: Runtime options :param result: Lint result :param rules: Rules collection """ nonlocal fix_called fix_called = True assert len(result.matches) == 7 orig_fix(runtime_options, result, rules) report_called = False class TestApp(App): """Wrap App to check if it was called and match count is correct.""" def report_outcome( self: TestApp, result: LintResult, *, mark_as_success: bool = False, ) -> int: """Wrap App.report_outcome to check if it was called and match count is correct. :param result: Lint result :param mark_as_success: Mark as success :returns: Exit code """ nonlocal report_called report_called = True assert len(result.matches) == 1 return super().report_outcome(result, mark_as_success=mark_as_success) monkeypatch.setattr("ansiblelint.__main__.fix", test_fix) monkeypatch.setattr("ansiblelint.app.App", TestApp) # disable the App() caching because we cannot prevent the initial initialization from happening monkeypatch.setattr("ansiblelint.app._CACHED_APP", None) > main.main() test/test_transformer.py:359: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/__main__.py:352: in main result = get_matches(rules, options) build/lib/ansiblelint/runner.py:686: in get_matches matches.extend(runner.run()) build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________________ test_cli_auto_detect _____________________________ capfd = <_pytest.capture.CaptureFixture object at 0x74598d3e5280> def test_cli_auto_detect(capfd: CaptureFixture[str]) -> None: """Test that run without arguments it will detect and lint the entire repository.""" cmd = [ sys.executable, "-m", "ansiblelint", "-x", "schema", # exclude schema as our test file would fail it "-v", "-p", "--nocolor", "--offline", "--exclude=examples", "--exclude=test", "--exclude=src", "--exclude=collections", "--exclude=.github", ] result = subprocess.run(cmd, check=False).returncode # We de expect to fail on our own repo due to test examples we have > assert result == RC.VIOLATIONS_FOUND E assert 1 == 2 E + where 2 = RC.VIOLATIONS_FOUND test/test_utils.py:325: AssertionError ----------------------------- Captured stderr call ----------------------------- INFO Identified /home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2 as project root due config file /home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.ansible-lint. INFO Collection paths was patched to include extra directories /home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/collections,/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples/playbooks/collections,/usr/lib/python3.12/site-packages,/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/lib/python3.12/site-packages INFO Set ANSIBLE_LIBRARY=/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.ansible/modules:plugins/modules:/home/udu/.ansible/plugins/modules:/usr/share/ansible/plugins/modules INFO Set ANSIBLE_COLLECTIONS_PATH=/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.ansible/collections:/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/collections:/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/examples/playbooks/collections:/usr/lib/python3.12/site-packages:/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/lib/python3.12/site-packages INFO Set ANSIBLE_ROLES_PATH=/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.ansible/roles:/home/udu/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles WARNING Skipped installing collection dependencies due to running in offline mode. INFO Loading ignores from .gitignore INFO Excluded: .ansible/collections INFO Excluded: .github INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/__pycache__ INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/_internal/__pycache__ INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/formatters/__pycache__ INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/rules/__pycache__ INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/rules/custom/__pycache__ INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/schemas/__pycache__ INFO Excluded: .testenv/lib/python3.12/site-packages/ansiblelint/testing/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/_internal/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/formatters/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/rules/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/rules/custom/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/schemas/__pycache__ INFO Excluded: .testenv/lib64/python3.12/site-packages/ansiblelint/testing/__pycache__ INFO Excluded: __pycache__ INFO Excluded: build INFO Excluded: collections INFO Loading ignores from docs/.gitignore INFO Loading ignores from docs/pkg/.gitignore INFO Excluded: examples INFO Excluded: src INFO Excluded: test Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/build/lib/ansiblelint/__main__.py", line 478, in _run_cli_entrypoint() File "/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/build/lib/ansiblelint/__main__.py", line 400, in _run_cli_entrypoint sys.exit(main(sys.argv)) ^^^^^^^^^^^^^^ File "/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/build/lib/ansiblelint/__main__.py", line 352, in main result = get_matches(rules, options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/build/lib/ansiblelint/runner.py", line 686, in get_matches matches.extend(runner.run()) ^^^^^^^^^^^^ File "/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/build/lib/ansiblelint/runner.py", line 161, in run matches = self._run() ^^^^^^^^^^^ File "/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/build/lib/ansiblelint/runner.py", line 258, in _run global_resource = multiprocessing.Semaphore() # noqa: F841 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/multiprocessing/context.py", line 83, in Semaphore return Semaphore(value, ctx=self.get_context()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/multiprocessing/synchronize.py", line 133, in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) File "/usr/lib/python3.12/multiprocessing/synchronize.py", line 57, in __init__ sl = self._semlock = _multiprocessing.SemLock( ^^^^^^^^^^^^^^^^^^^^^^^^^ PermissionError: [Errno 13] Permission denied __________________________ test_find_children_in_task __________________________ default_rules_collection = args: Validating module arguments. Check whether tasks are using correct module options. avoid-implicit: Avoid impli...lowercase and underscores. warning: Other warnings detected during run. yaml: Violations reported by yamllint. def test_find_children_in_task(default_rules_collection: RulesCollection) -> None: """Verify correct function of find_children() in tasks.""" Runner( Lintable("examples/playbooks/tasks/bug-2875.yml"), rules=default_rules_collection, > ).run() test/test_utils.py:437: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________ test_include_children_load_playbook_failed_syntax_check ____________ def test_include_children_load_playbook_failed_syntax_check() -> None: """Verify include_children() logs playbook failed to load due to syntax-check.""" result = run_ansible_lint( Path("playbooks/import-failed-syntax-check.yml"), cwd=Path(__file__).resolve().parent.parent / "examples", ) > assert ( "Failed to load syntax-error.yml playbook due to failing syntax check." in result.stderr ) E assert 'Failed to load syntax-error.yml playbook due to failing syntax check.' in 'Traceback (most recent call last):\n File "", line 198, in _run_module_as_main\n File "...ocessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n' E + where 'Traceback (most recent call last):\n File "", line 198, in _run_module_as_main\n File "...ocessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n' = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').stderr test/test_utils.py:505: AssertionError ___________________________ test_verbosity[default] ____________________________ verbosity = '' substrs = [('WARNING Listing 1 violation(s) that are fatal', False), ('DEBUG ', True), ('INFO ', True)] project_path = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2') @pytest.mark.parametrize( ("verbosity", "substrs"), ( pytest.param( "", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("DEBUG ", True), ("INFO ", True), ], id="default", ), pytest.param( "-q", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="q", ), pytest.param( "-qq", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="qq", ), pytest.param( "-v", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ("DEBUG ", True), ], id="v", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="really-loquacious", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="vv", ), ), ) def test_verbosity( verbosity: str, substrs: list[tuple[str, bool]], project_path: Path, ) -> None: """Checks that our default verbosity displays (only) warnings.""" # Piggyback off the .yamllint in the root of the repo, just for testing. # We'll "override" it with the one in the fixture, to produce a warning. fakerole = Path() / "test" / "fixtures" / "verbosity-tests" if verbosity: result = run_ansible_lint(verbosity, str(fakerole), cwd=project_path) else: result = run_ansible_lint(str(fakerole), cwd=project_path) result.stderr = strip_ansi_escape(result.stderr) result.stdout = strip_ansi_escape(result.stdout) > assert result.returncode == 2, result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_verbosity.py:90: AssertionError ______________________________ test_verbosity[q] _______________________________ verbosity = '-q' substrs = [('WARNING ', True), ('DEBUG ', True), ('INFO ', True)] project_path = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2') @pytest.mark.parametrize( ("verbosity", "substrs"), ( pytest.param( "", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("DEBUG ", True), ("INFO ", True), ], id="default", ), pytest.param( "-q", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="q", ), pytest.param( "-qq", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="qq", ), pytest.param( "-v", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ("DEBUG ", True), ], id="v", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="really-loquacious", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="vv", ), ), ) def test_verbosity( verbosity: str, substrs: list[tuple[str, bool]], project_path: Path, ) -> None: """Checks that our default verbosity displays (only) warnings.""" # Piggyback off the .yamllint in the root of the repo, just for testing. # We'll "override" it with the one in the fixture, to produce a warning. fakerole = Path() / "test" / "fixtures" / "verbosity-tests" if verbosity: result = run_ansible_lint(verbosity, str(fakerole), cwd=project_path) else: result = run_ansible_lint(str(fakerole), cwd=project_path) result.stderr = strip_ansi_escape(result.stderr) result.stdout = strip_ansi_escape(result.stdout) > assert result.returncode == 2, result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_verbosity.py:90: AssertionError ______________________________ test_verbosity[qq] ______________________________ verbosity = '-qq' substrs = [('WARNING ', True), ('DEBUG ', True), ('INFO ', True)] project_path = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2') @pytest.mark.parametrize( ("verbosity", "substrs"), ( pytest.param( "", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("DEBUG ", True), ("INFO ", True), ], id="default", ), pytest.param( "-q", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="q", ), pytest.param( "-qq", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="qq", ), pytest.param( "-v", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ("DEBUG ", True), ], id="v", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="really-loquacious", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="vv", ), ), ) def test_verbosity( verbosity: str, substrs: list[tuple[str, bool]], project_path: Path, ) -> None: """Checks that our default verbosity displays (only) warnings.""" # Piggyback off the .yamllint in the root of the repo, just for testing. # We'll "override" it with the one in the fixture, to produce a warning. fakerole = Path() / "test" / "fixtures" / "verbosity-tests" if verbosity: result = run_ansible_lint(verbosity, str(fakerole), cwd=project_path) else: result = run_ansible_lint(str(fakerole), cwd=project_path) result.stderr = strip_ansi_escape(result.stderr) result.stdout = strip_ansi_escape(result.stdout) > assert result.returncode == 2, result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_verbosity.py:90: AssertionError ______________________________ test_verbosity[v] _______________________________ verbosity = '-v' substrs = [('WARNING Listing 1 violation(s) that are fatal', False), ('INFO Set ANSIBLE_LIBRARY=', False), ('DEBUG ', True)] project_path = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2') @pytest.mark.parametrize( ("verbosity", "substrs"), ( pytest.param( "", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("DEBUG ", True), ("INFO ", True), ], id="default", ), pytest.param( "-q", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="q", ), pytest.param( "-qq", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="qq", ), pytest.param( "-v", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ("DEBUG ", True), ], id="v", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="really-loquacious", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="vv", ), ), ) def test_verbosity( verbosity: str, substrs: list[tuple[str, bool]], project_path: Path, ) -> None: """Checks that our default verbosity displays (only) warnings.""" # Piggyback off the .yamllint in the root of the repo, just for testing. # We'll "override" it with the one in the fixture, to produce a warning. fakerole = Path() / "test" / "fixtures" / "verbosity-tests" if verbosity: result = run_ansible_lint(verbosity, str(fakerole), cwd=project_path) else: result = run_ansible_lint(str(fakerole), cwd=project_path) result.stderr = strip_ansi_escape(result.stderr) result.stdout = strip_ansi_escape(result.stdout) > assert result.returncode == 2, result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_verbosity.py:90: AssertionError ______________________ test_verbosity[really-loquacious] _______________________ verbosity = '-vv' substrs = [('WARNING Listing 1 violation(s) that are fatal', False), ('INFO Set ANSIBLE_LIBRARY=', False)] project_path = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2') @pytest.mark.parametrize( ("verbosity", "substrs"), ( pytest.param( "", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("DEBUG ", True), ("INFO ", True), ], id="default", ), pytest.param( "-q", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="q", ), pytest.param( "-qq", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="qq", ), pytest.param( "-v", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ("DEBUG ", True), ], id="v", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="really-loquacious", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="vv", ), ), ) def test_verbosity( verbosity: str, substrs: list[tuple[str, bool]], project_path: Path, ) -> None: """Checks that our default verbosity displays (only) warnings.""" # Piggyback off the .yamllint in the root of the repo, just for testing. # We'll "override" it with the one in the fixture, to produce a warning. fakerole = Path() / "test" / "fixtures" / "verbosity-tests" if verbosity: result = run_ansible_lint(verbosity, str(fakerole), cwd=project_path) else: result = run_ansible_lint(str(fakerole), cwd=project_path) result.stderr = strip_ansi_escape(result.stderr) result.stdout = strip_ansi_escape(result.stdout) > assert result.returncode == 2, result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_verbosity.py:90: AssertionError ______________________________ test_verbosity[vv] ______________________________ verbosity = '-vv' substrs = [('WARNING Listing 1 violation(s) that are fatal', False), ('INFO Set ANSIBLE_LIBRARY=', False)] project_path = PosixPath('/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2') @pytest.mark.parametrize( ("verbosity", "substrs"), ( pytest.param( "", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("DEBUG ", True), ("INFO ", True), ], id="default", ), pytest.param( "-q", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="q", ), pytest.param( "-qq", [ ("WARNING ", True), ("DEBUG ", True), ("INFO ", True), ], id="qq", ), pytest.param( "-v", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ("DEBUG ", True), ], id="v", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="really-loquacious", ), pytest.param( "-vv", [ ("WARNING Listing 1 violation(s) that are fatal", False), ("INFO Set ANSIBLE_LIBRARY=", False), ], id="vv", ), ), ) def test_verbosity( verbosity: str, substrs: list[tuple[str, bool]], project_path: Path, ) -> None: """Checks that our default verbosity displays (only) warnings.""" # Piggyback off the .yamllint in the root of the repo, just for testing. # We'll "override" it with the one in the fixture, to produce a warning. fakerole = Path() / "test" / "fixtures" / "verbosity-tests" if verbosity: result = run_ansible_lint(verbosity, str(fakerole), cwd=project_path) else: result = run_ansible_lint(str(fakerole), cwd=project_path) result.stderr = strip_ansi_escape(result.stderr) result.stdout = strip_ansi_escape(result.stdout) > assert result.returncode == 2, result E AssertionError: CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock( E ^^^^^^^^^^^^^^^^^^^^^^^^^ E PermissionError: [Errno 13] Permission denied E ') E assert 1 == 2 E + where 1 = CompletedProcess(args=['/home/udu/aports/community/ansible-lint/src/ansible_lint-24.12.2/.testenv/bin/python3', '-m', ...cessing.SemLock(\n ^^^^^^^^^^^^^^^^^^^^^^^^^\nPermissionError: [Errno 13] Permission denied\n').returncode test/test_verbosity.py:90: AssertionError ____________________________ test_negative_no_param ____________________________ def test_negative_no_param() -> None: """Negative test no param.""" bad_runner = Runner(FILE, rules=collection) > errs = bad_runner.run() test/test_with_skip_tagid.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_negative_with_id _____________________________ def test_negative_with_id() -> None: """Negative test with_id.""" with_id = "yaml" bad_runner = Runner(FILE, rules=collection, tags=frozenset([with_id])) > errs = bad_runner.run() test/test_with_skip_tagid.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_negative_with_tag ____________________________ def test_negative_with_tag() -> None: """Negative test with_tag.""" with_tag = "yaml[trailing-spaces]" bad_runner = Runner(FILE, rules=collection, tags=frozenset([with_tag])) > errs = bad_runner.run() test/test_with_skip_tagid.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_positive_skip_id _____________________________ def test_positive_skip_id() -> None: """Positive test skip_id.""" skip_id = "yaml" good_runner = Runner(FILE, rules=collection, skip_list=[skip_id]) > assert good_runner.run() == [] test/test_with_skip_tagid.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________________ test_positive_skip_id_2 ____________________________ def test_positive_skip_id_2() -> None: """Positive test skip_id.""" skip_id = "key-order" good_runner = Runner(FILE, rules=collection, tags=frozenset([skip_id])) > assert good_runner.run() == [] test/test_with_skip_tagid.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________________ test_positive_skip_tag ____________________________ def test_positive_skip_tag() -> None: """Positive test skip_tag.""" skip_tag = "yaml[trailing-spaces]" good_runner = Runner(FILE, rules=collection, skip_list=[skip_tag]) > assert good_runner.run() == [] test/test_with_skip_tagid.py:54: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ build/lib/ansiblelint/runner.py:161: in run matches = self._run() build/lib/ansiblelint/runner.py:258: in _run global_resource = multiprocessing.Semaphore() # noqa: F841 /usr/lib/python3.12/multiprocessing/context.py:83: in Semaphore return Semaphore(value, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:133: in __init__ SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 2147483647 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ============================= slowest 10 durations ============================= 1.92s call test/test_utils.py::test_cli_auto_detect 1.57s call test/test_formatter_sarif.py::test_sarif_parsable_ignored 1.55s call test/test_formatter_json.py::test_code_climate_parsable_ignored 0.86s call test/test_transformer.py::test_pruned_err_after_fix 0.82s call test/test_app.py::test_generate_ignore 0.81s call test/test_cli_role_paths.py::test_run_single_role_path_with_roles_path_env 0.80s call test/test_utils.py::test_import_playbook_children_subdirs 0.80s call test/test_examples.py::test_custom_kinds 0.80s call test/test_formatter_sarif.py::test_sarif_file[0] 0.80s call test/test_cli_role_paths.py::test_run_single_role_path_no_trailing_slash_module =========================== short test summary info ============================ FAILED test/rules/test_args.py::test_args_module_relative_import - Permission... FAILED test/rules/test_deprecated_module.py::test_module_deprecated - Permiss... FAILED test/rules/test_inline_env_var.py::test_success - PermissionError: [Er... FAILED test/rules/test_inline_env_var.py::test_fail - PermissionError: [Errno... FAILED test/rules/test_no_changed_when.py::test_command_changes_positive - Pe... FAILED test/rules/test_no_changed_when.py::test_command_changes_negative - Pe... FAILED test/rules/test_package_latest.py::test_package_not_latest_positive - ... FAILED test/rules/test_package_latest.py::test_package_not_latest_negative - ... FAILED test/rules/test_role_names.py::test_role_name[ROLE_EMPTY_META] - Permi... FAILED test/rules/test_syntax_check.py::test_get_ansible_syntax_check_matches[0] FAILED test/rules/test_syntax_check.py::test_get_ansible_syntax_check_matches[1] FAILED test/rules/test_syntax_check.py::test_empty_playbook - PermissionError... FAILED test/rules/test_syntax_check.py::test_extra_vars_passed_to_command - P... FAILED test/test_adjacent_plugins.py::test_adj_action - PermissionError: [Err... FAILED test/test_ansiblesyntax.py::test_null_tasks - PermissionError: [Errno ... FAILED test/test_app.py::test_generate_ignore - AssertionError: assert 1 == 2 FAILED test/test_app.py::test_app_no_matches - AssertionError: assert 1 == 5 FAILED test/test_app.py::test_with_inventory_concurrent_syntax_checks - Asser... FAILED test/test_cli_role_paths.py::test_run_single_role_path_no_trailing_slash_module FAILED test/test_cli_role_paths.py::test_run_single_role_path_with_trailing_slash FAILED test/test_cli_role_paths.py::test_run_multiple_role_path_no_trailing_slash FAILED test/test_cli_role_paths.py::test_run_multiple_role_path_with_trailing_slash FAILED test/test_cli_role_paths.py::test_run_inside_role_dir - AssertionError... FAILED test/test_cli_role_paths.py::test_run_role_three_dir_deep - AssertionE... FAILED test/test_cli_role_paths.py::test_run_playbook - AssertionError: asser... FAILED test/test_cli_role_paths.py::test_run_role_name_invalid[normal] - Asse... FAILED test/test_cli_role_paths.py::test_run_role_name_invalid[skipped] - Ass... FAILED test/test_cli_role_paths.py::test_run_role_name_with_prefix - Assertio... FAILED test/test_cli_role_paths.py::test_run_role_name_from_meta - AssertionE... FAILED test/test_cli_role_paths.py::test_run_invalid_role_name_from_meta - As... FAILED test/test_cli_role_paths.py::test_run_single_role_path_with_roles_path_env FAILED test/test_cli_role_paths.py::test_run_playbook_github[on] - AssertionE... FAILED test/test_cli_role_paths.py::test_run_role_identified - AssertionError... FAILED test/test_cli_role_paths.py::test_run_role_identified_prefix_missing FAILED test/test_dependencies_in_meta.py::test_external_dependency_is_ok - Pe... FAILED test/test_examples.py::test_example - PermissionError: [Errno 13] Perm... FAILED test/test_examples.py::test_example_syntax_error[0] - PermissionError:... FAILED test/test_examples.py::test_example_syntax_error[1] - PermissionError:... FAILED test/test_examples.py::test_example_custom_module - PermissionError: [... FAILED test/test_examples.py::test_vault_full - PermissionError: [Errno 13] P... FAILED test/test_examples.py::test_vault_partial - PermissionError: [Errno 13... FAILED test/test_examples.py::test_custom_kinds - AssertionError: assert 1 == 0 FAILED test/test_examples.py::test_bug_3216 - AssertionError: assert 1 == 0 FAILED test/test_file_path_evaluation.py::test_file_path_evaluation[using-only-import_tasks] FAILED test/test_file_path_evaluation.py::test_file_path_evaluation[using-only-include_tasks] FAILED test/test_file_utils.py::test_bug_2513 - PermissionError: [Errno 13] P... FAILED test/test_formatter_sarif.py::test_sarif_file[0] - AssertionError: ass... FAILED test/test_formatter_sarif.py::test_sarif_file[1] - AssertionError: ass... FAILED test/test_formatter_sarif.py::test_sarif_file_creates_it_if_none_exists[0] FAILED test/test_import_include_role.py::test_import_role2[IMPORT_ROLE] - Per... FAILED test/test_import_include_role.py::test_import_role2[IMPORT_ROLE_FQCN] FAILED test/test_import_include_role.py::test_import_role2[IMPORT_ROLE_INLINE] FAILED test/test_import_include_role.py::test_import_role2[INCLUDE_ROLE] - Pe... FAILED test/test_import_include_role.py::test_import_role2[INCLUDE_ROLE_FQCN] FAILED test/test_import_include_role.py::test_import_role2[INCLUDE_ROLE_INLINE] FAILED test/test_import_playbook.py::test_task_hook_import_playbook - Permiss... FAILED test/test_import_playbook.py::test_import_playbook_from_collection - P... FAILED test/test_import_playbook.py::test_import_playbook_invalid - Permissio... FAILED test/test_import_tasks.py::test_import_tasks[0] - PermissionError: [Er... FAILED test/test_import_tasks.py::test_import_tasks[1] - PermissionError: [Er... FAILED test/test_internal_rules.py::test_incorrect_module_args[playbook] - Pe... FAILED test/test_load_failure.py::test_load_failure_encoding[jinja2] - Permis... FAILED test/test_load_failure.py::test_load_failure_encoding[yaml] - Permissi... FAILED test/test_local_content.py::test_local_collection - PermissionError: [... FAILED test/test_main.py::test_nodeps[1] - AssertionError: CompletedProcess(a... FAILED test/test_main.py::test_nodeps[2] - AssertionError: CompletedProcess(a... FAILED test/test_runner.py::test_runner[nomatchestest] - PermissionError: [Er... FAILED test/test_runner.py::test_runner[unicode] - PermissionError: [Errno 13... FAILED test/test_runner.py::test_runner[lots_of_warnings] - PermissionError: ... FAILED test/test_runner.py::test_runner[become] - PermissionError: [Errno 13]... FAILED test/test_runner.py::test_runner[contains_secrets] - PermissionError: ... FAILED test/test_runner.py::test_runner_exclude_paths - PermissionError: [Err... FAILED test/test_runner.py::test_runner_exclude_globs[1] - PermissionError: [... FAILED test/test_runner.py::test_runner_unicode_format[Formatter-plain] - Per... FAILED test/test_runner.py::test_runner_unicode_format[ParseableFormatter-colored] FAILED test/test_runner.py::test_runner_unicode_format[QuietFormatter-colored] FAILED test/test_runner.py::test_runner_unicode_format[Formatter-colored] - P... FAILED test/test_runner.py::test_files_not_scanned_twice - PermissionError: [... FAILED test/test_runner.py::test_runner_not_found - PermissionError: [Errno 1... FAILED test/test_runner.py::test_runner_tmp_file - PermissionError: [Errno 13... FAILED test/test_runner.py::test_with_full_path - PermissionError: [Errno 13]... FAILED test/test_skip_import_playbook.py::test_skip_import_playbook - Permiss... FAILED test/test_skip_inside_yaml.py::test_inline_skips[yaml] - PermissionErr... FAILED test/test_skip_inside_yaml.py::test_role_meta - AssertionError: assert... FAILED test/test_skip_playbook_items.py::test_pre_tasks[PRE_TASKS] - Permissi... FAILED test/test_skip_playbook_items.py::test_pre_tasks[POST_TASKS] - Permiss... FAILED test/test_skip_playbook_items.py::test_pre_tasks[HANDLERS] - Permissio... FAILED test/test_skip_playbook_items.py::test_pre_tasks[TWO_PLAYS] - Permissi... FAILED test/test_skip_playbook_items.py::test_pre_tasks[WITH_BLOCK] - Permiss... FAILED test/test_skiputils.py::test_playbook_noqa - PermissionError: [Errno 1... FAILED test/test_skiputils.py::test_playbook_noqa2 - PermissionError: [Errno ... FAILED test/test_skiputils.py::test_capture_warning_outdated_tag - Permission... FAILED test/test_strict.py::test_strict[on] - AssertionError: assert 1 == 2 FAILED test/test_strict.py::test_strict[off] - AssertionError: assert 1 == 0 FAILED test/test_transformer.py::test_pruned_err_after_fix - PermissionError:... FAILED test/test_utils.py::test_cli_auto_detect - assert 1 == 2 FAILED test/test_utils.py::test_find_children_in_task - PermissionError: [Err... FAILED test/test_utils.py::test_include_children_load_playbook_failed_syntax_check FAILED test/test_verbosity.py::test_verbosity[default] - AssertionError: Comp... FAILED test/test_verbosity.py::test_verbosity[q] - AssertionError: CompletedP... FAILED test/test_verbosity.py::test_verbosity[qq] - AssertionError: Completed... FAILED test/test_verbosity.py::test_verbosity[v] - AssertionError: CompletedP... FAILED test/test_verbosity.py::test_verbosity[really-loquacious] - AssertionE... FAILED test/test_verbosity.py::test_verbosity[vv] - AssertionError: Completed... FAILED test/test_with_skip_tagid.py::test_negative_no_param - PermissionError... FAILED test/test_with_skip_tagid.py::test_negative_with_id - PermissionError:... FAILED test/test_with_skip_tagid.py::test_negative_with_tag - PermissionError... FAILED test/test_with_skip_tagid.py::test_positive_skip_id - PermissionError:... FAILED test/test_with_skip_tagid.py::test_positive_skip_id_2 - PermissionErro... FAILED test/test_with_skip_tagid.py::test_positive_skip_tag - PermissionError... ERROR test/test_transformer.py::test_transform_na - PermissionError: [Errno 1... ERROR test/test_transformer.py::test_transform_no_tb - PermissionError: [Errn... ERROR test/test_transformer.py::test_transform_applied - PermissionError: [Er... ERROR test/test_transformer.py::test_transform_not_enabled - PermissionError:... ERROR test/test_transformer.py::test_transform_not_applied - PermissionError:... ========== 110 failed, 507 passed, 51 deselected, 5 errors in 50.43s =========== >>> ERROR: ansible-lint: check failed >>> ansible-lint: Uninstalling dependencies... (1/155) Purging .makedepends-ansible-lint (20251008.173819) (2/155) Purging ansible-core-pyc (2.18.6-r0) (3/155) Purging ansible-core (2.18.6-r0) (4/155) Purging py3-paramiko-pyc (3.5.0-r0) (5/155) Purging py3-paramiko (3.5.0-r0) (6/155) Purging py3-bcrypt-pyc (4.3.0-r0) (7/155) Purging py3-bcrypt (4.3.0-r0) (8/155) Purging py3-cryptography-pyc (44.0.3-r0) (9/155) Purging py3-cryptography (44.0.3-r0) (10/155) Purging py3-pynacl-pyc (1.5.0-r6) (11/155) Purging py3-pynacl (1.5.0-r6) (12/155) Purging py3-cffi-pyc (1.17.1-r1) (13/155) Purging py3-cffi (1.17.1-r1) (14/155) Purging py3-cparser-pyc (2.22-r1) (15/155) Purging py3-cparser (2.22-r1) (16/155) Purging py3-resolvelib-pyc (1.1.0-r0) (17/155) Purging py3-resolvelib (1.1.0-r0) (18/155) Purging black-pyc (25.1.0-r0) (19/155) Purging black (25.1.0-r0) (20/155) Purging py3-click-pyc (8.1.8-r1) (21/155) Purging py3-click (8.1.8-r1) (22/155) Purging py3-typed-ast-pyc (1.5.5-r1) (23/155) Purging py3-typed-ast (1.5.5-r1) (24/155) Purging py3-ansible-compat-pyc (25.1.5-r0) (25/155) Purging py3-ansible-compat (25.1.5-r0) (26/155) Purging py3-subprocess-tee-pyc (0.4.2-r0) (27/155) Purging py3-subprocess-tee (0.4.2-r0) (28/155) Purging py3-enrich-pyc (1.2.7-r4) (29/155) Purging py3-enrich (1.2.7-r4) (30/155) Purging py3-importlib-metadata-pyc (7.0.2-r1) (31/155) Purging py3-importlib-metadata (7.0.2-r1) (32/155) Purging py3-zipp-pyc (3.17.0-r1) (33/155) Purging py3-zipp (3.17.0-r1) (34/155) Purging py3-jinja2-pyc (3.1.6-r0) (35/155) Purging py3-jinja2 (3.1.6-r0) (36/155) Purging py3-markupsafe-pyc (3.0.2-r0) (37/155) Purging py3-markupsafe (3.0.2-r0) (38/155) Purging py3-jsonschema-pyc (4.23.0-r0) (39/155) Purging py3-jsonschema (4.23.0-r0) (40/155) Purging py3-jsonschema-specifications-pyc (2025.4.1-r0) (41/155) Purging py3-jsonschema-specifications (2025.4.1-r0) (42/155) Purging py3-referencing-pyc (0.36.2-r1) (43/155) Purging py3-referencing (0.36.2-r1) (44/155) Purging py3-rpds-py-pyc (0.25.1-r0) (45/155) Purging py3-rpds-py (0.25.1-r0) (46/155) Purging py3-requests-pyc (2.32.5-r0) (47/155) Purging py3-requests (2.32.5-r0) (48/155) Purging py3-certifi-pyc (2025.4.26-r0) (49/155) Purging py3-certifi (2025.4.26-r0) (50/155) Purging py3-charset-normalizer-pyc (3.4.2-r0) (51/155) Purging py3-charset-normalizer (3.4.2-r0) (52/155) Purging py3-idna-pyc (3.10-r0) (53/155) Purging py3-idna (3.10-r0) (54/155) Purging py3-urllib3-pyc (1.26.20-r0) (55/155) Purging py3-urllib3 (1.26.20-r0) (56/155) Purging py3-rich-pyc (14.0.0-r0) (57/155) Purging py3-rich (14.0.0-r0) (58/155) Purging py3-markdown-it-py-pyc (3.0.0-r1) (59/155) Purging py3-markdown-it-py (3.0.0-r1) (60/155) Purging py3-mdurl-pyc (0.1.2-r3) (61/155) Purging py3-mdurl (0.1.2-r3) (62/155) Purging py3-pygments-pyc (2.19.1-r1) (63/155) Purging py3-pygments (2.19.1-r1) (64/155) Purging py3-ruamel.yaml-pyc (0.17.28-r1) (65/155) Purging py3-ruamel.yaml (0.17.28-r1) (66/155) Purging py3-ruamel.yaml.clib (0.2.8-r2) (67/155) Purging py3-wcmatch-pyc (9.0-r0) (68/155) Purging py3-wcmatch (9.0-r0) (69/155) Purging py3-bracex-pyc (2.5-r0) (70/155) Purging py3-bracex (2.5-r0) (71/155) Purging py3-hatchling-pyc (1.27.0-r0) (72/155) Purging py3-hatchling (1.27.0-r0) (73/155) Purging py3-editables-pyc (0.5-r2) (74/155) Purging py3-editables (0.5-r2) (75/155) Purging py3-trove-classifiers-pyc (2025.9.11.17-r0) (76/155) Purging py3-trove-classifiers (2025.9.11.17-r0) (77/155) Purging yamllint-pyc (1.37.0-r0) (78/155) Purging yamllint (1.37.0-r0) (79/155) Purging py3-pathspec-pyc (0.12.1-r2) (80/155) Purging py3-pathspec (0.12.1-r2) (81/155) Purging py3-yaml-pyc (6.0.2-r0) (82/155) Purging py3-yaml (6.0.2-r0) (83/155) Purging py3-gpep517-pyc (19-r0) (84/155) Purging py3-gpep517 (19-r0) (85/155) Purging py3-installer-pyc (0.7.0-r2) (86/155) Purging py3-installer (0.7.0-r2) (87/155) Purging py3-setuptools_scm-pyc (8.3.1-r0) (88/155) Purging py3-setuptools_scm (8.3.1-r0) (89/155) Purging py3-setuptools-pyc (80.9.0-r0) (90/155) Purging py3-setuptools (80.9.0-r0) (91/155) Purging py3-wheel-pyc (0.46.1-r0) (92/155) Purging py3-wheel (0.46.1-r0) (93/155) Purging py3-flaky-pyc (3.8.1-r1) (94/155) Purging py3-flaky (3.8.1-r1) (95/155) Purging py3-license-expression-pyc (30.4.1-r0) (96/155) Purging py3-license-expression (30.4.1-r0) (97/155) Purging py3-boolean.py-pyc (5.0-r0) (98/155) Purging py3-boolean.py (5.0-r0) (99/155) Purging py3-psutil-pyc (7.0.0-r0) (100/155) Purging py3-psutil (7.0.0-r0) (101/155) Purging py3-pylint-pyc (3.3.7-r0) (102/155) Purging py3-pylint (3.3.7-r0) (103/155) Purging py3-astroid-pyc (3.3.10-r0) (104/155) Purging py3-astroid (3.3.10-r0) (105/155) Purging py3-lazy-object-proxy-pyc (1.10.0-r1) (106/155) Purging py3-lazy-object-proxy (1.10.0-r1) (107/155) Purging py3-wrapt-pyc (1.17.0-r0) (108/155) Purging py3-wrapt (1.17.0-r0) (109/155) Purging py3-dill-pyc (0.4.0-r0) (110/155) Purging py3-dill (0.4.0-r0) (111/155) Purging py3-isort-pyc (6.0.1-r0) (112/155) Purging py3-isort (6.0.1-r0) (113/155) Purging py3-mccabe-pyc (0.7.0-r4) (114/155) Purging py3-mccabe (0.7.0-r4) (115/155) Purging py3-platformdirs-pyc (4.3.8-r0) (116/155) Purging py3-platformdirs (4.3.8-r0) (117/155) Purging py3-tomlkit-pyc (0.13.2-r0) (118/155) Purging py3-tomlkit (0.13.2-r0) (119/155) Purging py3-pytest-cov-pyc (5.0.0-r0) (120/155) Purging py3-pytest-cov (5.0.0-r0) (121/155) Purging py3-coverage-pyc (7.8.2-r0) (122/155) Purging py3-coverage (7.8.2-r0) (123/155) Purging py3-pytest-mock-pyc (3.10.0-r3) (124/155) Purging py3-pytest-mock (3.10.0-r3) (125/155) Purging py3-mock-pyc (5.2.0-r0) (126/155) Purging py3-mock (5.2.0-r0) (127/155) Purging py3-pytest-mypy-pyc (0.10.3-r3) (128/155) Purging py3-pytest-mypy (0.10.3-r3) (129/155) Purging py3-attrs-pyc (25.3.0-r0) (130/155) Purging py3-attrs (25.3.0-r0) (131/155) Purging py3-filelock-pyc (3.16.1-r1) (132/155) Purging py3-filelock (3.16.1-r1) (133/155) Purging py3-mypy-pyc (1.15.0-r0) (134/155) Purging py3-mypy (1.15.0-r0) (135/155) Purging py3-mypy-extensions-pyc (1.0.0-r3) (136/155) Purging py3-mypy-extensions (1.0.0-r3) (137/155) Purging py3-typing-extensions-pyc (4.13.2-r0) (138/155) Purging py3-typing-extensions (4.13.2-r0) (139/155) Purging py3-pytest-xdist-pyc (3.6.1-r0) (140/155) Purging py3-pytest-xdist (3.6.1-r0) (141/155) Purging py3-execnet-pyc (2.1.1-r0) (142/155) Purging py3-execnet (2.1.1-r0) (143/155) Purging py3-pytest-pyc (8.3.5-r0) (144/155) Purging py3-pytest (8.3.5-r0) (145/155) Purging py3-iniconfig-pyc (2.1.0-r0) (146/155) Purging py3-iniconfig (2.1.0-r0) (147/155) Purging py3-packaging-pyc (25.0-r0) (148/155) Purging py3-packaging (25.0-r0) (149/155) Purging py3-parsing-pyc (3.2.3-r0) (150/155) Purging py3-parsing (3.2.3-r0) (151/155) Purging py3-pluggy-pyc (1.5.0-r0) (152/155) Purging py3-pluggy (1.5.0-r0) (153/155) Purging py3-py-pyc (1.11.0-r4) (154/155) Purging py3-py (1.11.0-r4) (155/155) Purging yaml (0.2.5-r2) Executing busybox-1.37.0-r19.trigger OK: 296 MiB in 89 packages