From da57d43cc045ded6bdea3c34e9516db90fa22fd4 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 15 Mar 2024 14:43:45 +0000 Subject: [PATCH] Randomize names and prefer `salt_master.state_tree.base` --- tests/pytests/integration/ssh/test_cp.py | 78 +++++++++++------------- 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/tests/pytests/integration/ssh/test_cp.py b/tests/pytests/integration/ssh/test_cp.py index 030dc3b14e9..ee240f23252 100644 --- a/tests/pytests/integration/ssh/test_cp.py +++ b/tests/pytests/integration/ssh/test_cp.py @@ -4,6 +4,7 @@ import time from pathlib import Path import pytest +from saltfactories.utils import random_string from tests.support.runtests import RUNTIME_VARS @@ -14,7 +15,7 @@ pytestmark = [ @pytest.fixture(scope="module", autouse=True) -def pillar_tree(base_env_pillar_tree_root_dir): +def _pillar_tree(salt_master): top_file = """ base: 'localhost': @@ -27,14 +28,9 @@ def pillar_tree(base_env_pillar_tree_root_dir): alot: many script: grail """ - top_tempfile = pytest.helpers.temp_file( - "top.sls", top_file, base_env_pillar_tree_root_dir - ) - basic_tempfile = pytest.helpers.temp_file( - "basic.sls", basic_pillar_file, base_env_pillar_tree_root_dir - ) - - with top_tempfile, basic_tempfile: + with salt_master.pillar_tree.base.temp_file( + "top.sls", top_file + ), salt_master.pillar_tree.base.temp_file("basic.sls", basic_pillar_file): yield @@ -94,7 +90,7 @@ def test_get_file(salt_ssh_cli, tmp_path, template, dst_is_dir, cachedir): def test_get_file_gzipped(salt_ssh_cli, caplog, tmp_path): - tgt = tmp_path / "foo" + tgt = tmp_path / random_string("foo-") res = salt_ssh_cli.run("cp.get_file", "salt://grail/scene33", str(tgt), gzip=5) assert res.returncode == 0 assert res.data @@ -578,7 +574,8 @@ def test_cache_file(salt_ssh_cli, suffix, cachedir): @pytest.fixture -def _cache_twice(base_env_state_tree_root_dir, request, salt_ssh_cli, cachedir): +def _cache_twice(salt_master, request, salt_ssh_cli, cachedir): + # ensure the cache is clean tgt = cachedir / "extrn_files" / "base" / "repo.saltproject.io" / "index.html" tgt.unlink(missing_ok=True) @@ -609,7 +606,7 @@ def _cache_twice(base_env_state_tree_root_dir, request, salt_ssh_cli, cachedir): {{%- set res2 = salt["cp.cache_file"]("{src}") %}} {{{{ res2 }}}} """ - with pytest.helpers.temp_file(name, contents, base_env_state_tree_root_dir): + with salt_master.state_tree.base.temp_file(name, contents): yield f"salt://{name}" @@ -695,24 +692,22 @@ def test_cache_dir_nonexistent_source(salt_ssh_cli, caplog): assert not res.data -def test_list_states(salt_ssh_cli, tmp_path, base_env_state_tree_root_dir): +def test_list_states(salt_master, salt_ssh_cli, tmp_path): top_sls = """ base: '*': - core """ - tgt = tmp_path / "testfile" - core_state = f""" - {tgt}/testfile: + {tmp_path / "testfile"}/testfile: file.managed: - source: salt://testfile - makedirs: true """ - with pytest.helpers.temp_file( - "top.sls", top_sls, base_env_state_tree_root_dir - ), pytest.helpers.temp_file("core.sls", core_state, base_env_state_tree_root_dir): + with salt_master.state_tree.base.temp_file( + "top.sls", top_sls + ), salt_master.state_tree.base.temp_file("core.sls", core_state): res = salt_ssh_cli.run( "cp.list_states", ) @@ -757,22 +752,19 @@ def test_list_master_dirs(salt_ssh_cli): assert path not in res.data -def test_list_master_symlinks(salt_ssh_cli, base_env_state_tree_root_dir): +def test_list_master_symlinks(salt_ssh_cli, salt_master): if salt_ssh_cli.config.get("fileserver_ignoresymlinks", False): pytest.skip("Fileserver is configured to ignore symlinks") - with pytest.helpers.temp_file("foo", "", base_env_state_tree_root_dir) as tgt: + with salt_master.state_tree.base.temp_file(random_string("foo-"), "") as tgt: sym = tgt.parent / "test_list_master_symlinks" - try: - sym.symlink_to(tgt) - res = salt_ssh_cli.run("cp.list_master_symlinks") - assert res.returncode == 0 - assert res.data - assert isinstance(res.data, dict) - assert res.data - assert sym.name in res.data - assert res.data[sym.name] == str(tgt) - finally: - sym.unlink() + sym.symlink_to(tgt) + res = salt_ssh_cli.run("cp.list_master_symlinks") + assert res.returncode == 0 + assert res.data + assert isinstance(res.data, dict) + assert res.data + assert sym.name in res.data + assert res.data[sym.name] == str(tgt) @pytest.fixture(params=(False, "cached", "render_cached")) @@ -857,9 +849,7 @@ def test_hash_file_local(salt_ssh_cli, caplog): @pytest.fixture -def state_tree_jinjaimport(base_env_state_tree_root_dir, tmp_path): - tgt = tmp_path / "config.conf" - base_path = base_env_state_tree_root_dir / "my" +def state_tree_jinjaimport(tmp_path, salt_master): map_contents = """{%- set mapdata = {"foo": "bar"} %}""" managed_contents = """ {%- from "my/map.jinja" import mapdata with context %} @@ -870,18 +860,18 @@ def state_tree_jinjaimport(base_env_state_tree_root_dir, tmp_path): Serialize config: file.managed: - - name: {tgt} + - name: {tmp_path / "config.conf"} - source: salt://my/files/config.conf.j2 - template: jinja """ - with pytest.helpers.temp_file( - "file_managed_import.sls", state_contents, base_path - ) as state: - with pytest.helpers.temp_file("map.jinja", map_contents, base_path): - with pytest.helpers.temp_file( - "config.conf.j2", managed_contents, base_path / "files" - ): - yield f"my.{state.stem}" + with salt_master.state_tree.base.temp_file( + "my/file_managed_import.sls", state_contents + ) as state, salt_master.state_tree.base.temp_file( + "my/map.jinja", map_contents + ), salt_master.state_tree.base.temp_file( + "my/files/config.conf.j2", managed_contents + ): + yield f"my.{state.stem}" def test_cp_cache_file_as_workaround_for_missing_map_file(