From a5fe7e698eed38a48485c12d18558e69cfc5a710 2025-02-15 19:20:16 From: Branko Majic Date: 2025-02-15 19:20:16 Subject: [PATCH] MAR-245: Fix test errors related to missing locales on test machines: - Default SSH configuration often enables passing specific environment variables to destination machines. By creating a custom SSH config that gets used when connecting to the test VMs, we can exclude all environment variables from being sent, thus also having a more pristine test environment. - Update site requirements for running tests etc. --- diff --git a/.pytest.ini b/.pytest.ini new file mode 100644 index 0000000000000000000000000000000000000000..62e9c186d620486ef118c0bface1257e02a61a22 --- /dev/null +++ b/.pytest.ini @@ -0,0 +1,5 @@ +[pytest] +markers = + slow: mark test as slow +env = + ANSIBLE_SSH_EXTRA_ARGS = -F ../../../../.ssh_config_molecule diff --git a/.ssh_config_molecule b/.ssh_config_molecule new file mode 100644 index 0000000000000000000000000000000000000000..8aa2155790b26a16aaf9e9e7f97e2f98799dbb30 --- /dev/null +++ b/.ssh_config_molecule @@ -0,0 +1,7 @@ +# Include the system and user configuration, but make sure not to send +# over any environment variables to the test machines by default. This +# helps avoid eventual errors related to locale being passed on to the +# remote machine. +Include /etc/ssh/ssh_config +Include ~/.ssh/config +SendEnv -* diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 42c76b4dac736add2093bfdf01a7411f679b2c4a..0000000000000000000000000000000000000000 --- a/pytest.ini +++ /dev/null @@ -1,3 +0,0 @@ -[pytest] -markers = - slow: mark test as slow \ No newline at end of file diff --git a/requirements.in b/requirements.in index 1a0b8f33e8814fd34f26bc1555f72374b1f0c5e7..e9cc510064ff72bf0133ee470f92e91c449079e6 100644 --- a/requirements.in +++ b/requirements.in @@ -12,6 +12,7 @@ gimmecert molecule[testinfra]~=24.8.0 molecule-plugins[vagrant]~=23.5.0 paramiko +pytest-env # Documentation. sphinx diff --git a/requirements.txt b/requirements.txt index e0865a42fed91ba89464561d8c2d50298e315efe..7500d67212157b96433b88e90eeb5f4fca6661a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,45 +4,45 @@ # # pip-compile --allow-unsafe # -alabaster==0.7.16 +alabaster==1.0.0 # via sphinx ansible==10.4.0 # via -r requirements.in -ansible-compat==24.9.0 +ansible-compat==25.1.2 # via # ansible-lint # molecule -ansible-core==2.17.4 +ansible-core==2.17.8 # via # ansible # ansible-compat # ansible-lint # molecule -ansible-lint==24.9.0 +ansible-lint==25.1.2 # via -r requirements.in -attrs==24.2.0 +attrs==25.1.0 # via # jsonschema # referencing -babel==2.16.0 +babel==2.17.0 # via sphinx -bcrypt==4.2.0 +bcrypt==4.2.1 # via paramiko -black==24.8.0 +black==25.1.0 # via ansible-lint -bracex==2.5 +bracex==2.5.post1 # via wcmatch -build==1.2.2 +build==1.2.2.post1 # via pip-tools -certifi==2024.8.30 +certifi==2025.1.31 # via requests cffi==1.17.1 # via # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via requests -click==8.1.7 +click==8.1.8 # via # black # click-help-colors @@ -57,13 +57,13 @@ cryptography==42.0.8 # paramiko defusedxml==0.7.1 # via -r requirements.in -docutils==0.20.1 +docutils==0.21.2 # via # sphinx # sphinx-rtd-theme enrich==1.2.7 # via molecule -filelock==3.16.1 +filelock==3.17.0 # via ansible-lint flake8==7.1.1 # via -r requirements.in @@ -73,11 +73,11 @@ idna==3.10 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==8.5.0 +importlib-metadata==8.6.1 # via ansible-lint iniconfig==2.0.0 # via pytest -jinja2==3.1.4 +jinja2==3.1.5 # via # ansible-core # molecule @@ -87,11 +87,11 @@ jsonschema==4.23.0 # ansible-compat # ansible-lint # molecule -jsonschema-specifications==2023.12.1 +jsonschema-specifications==2024.10.1 # via jsonschema markdown-it-py==3.0.0 # via rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via jinja2 mccabe==0.7.0 # via flake8 @@ -107,7 +107,7 @@ mypy-extensions==1.0.0 # via black netaddr==1.3.0 # via -r requirements.in -packaging==24.1 +packaging==24.2 # via # ansible-compat # ansible-core @@ -117,7 +117,7 @@ packaging==24.1 # molecule # pytest # sphinx -paramiko==3.5.0 +paramiko==3.5.1 # via -r requirements.in passlib==1.7.4 # via -r requirements.in @@ -146,18 +146,22 @@ pycparser==2.22 # via cffi pyflakes==3.2.0 # via flake8 -pygments==2.18.0 +pygments==2.19.1 # via # rich # sphinx pynacl==1.5.0 # via paramiko -pyproject-hooks==1.1.0 +pyproject-hooks==1.2.0 # via # build # pip-tools -pytest==8.3.3 - # via pytest-testinfra +pytest==8.3.4 + # via + # pytest-env + # pytest-testinfra +pytest-env==1.1.5 + # via -r requirements.in pytest-testinfra==10.1.1 # via molecule python-dateutil==2.8.2 @@ -173,37 +177,37 @@ pyyaml==6.0.2 # ansible-lint # molecule # yamllint -referencing==0.35.1 +referencing==0.36.2 # via + # ansible-lint # jsonschema # jsonschema-specifications requests==2.32.3 # via sphinx resolvelib==1.0.1 # via ansible-core -rich==13.8.1 +rich==13.9.4 # via - # ansible-lint # enrich # molecule -rpds-py==0.20.0 +rpds-py==0.22.3 # via # jsonschema # referencing -ruamel-yaml==0.18.6 +ruamel-yaml==0.18.10 # via ansible-lint -ruamel-yaml-clib==0.2.8 +ruamel-yaml-clib==0.2.12 # via ruamel-yaml -six==1.16.0 +six==1.17.0 # via python-dateutil snowballstemmer==2.2.0 # via sphinx -sphinx==7.4.7 +sphinx==8.1.3 # via # -r requirements.in # sphinx-rtd-theme # sphinxcontrib-jquery -sphinx-rtd-theme==2.0.0 +sphinx-rtd-theme==3.0.2 # via -r requirements.in sphinxcontrib-applehelp==2.0.0 # via sphinx @@ -223,25 +227,27 @@ subprocess-tee==0.4.2 # via # ansible-compat # ansible-lint -urllib3==2.2.3 +typing-extensions==4.12.2 + # via referencing +urllib3==2.3.0 # via requests -wcmatch==9.0 +wcmatch==10.0 # via # ansible-lint # molecule -wheel==0.44.0 +wheel==0.45.1 # via pip-tools yamllint==1.35.1 # via ansible-lint -zipp==3.20.2 +zipp==3.21.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -pip==24.2 +pip==25.0.1 # via # -r requirements.in # pip-tools -setuptools==75.1.0 +setuptools==75.8.0 # via # -r requirements.in # pip-tools