diff options
author | 2022-03-30 14:56:22 -0700 | |
---|---|---|
committer | 2022-03-30 18:28:06 -0700 | |
commit | cb278dc4e55e23345b0c26e83f0c32f866d60d26 (patch) | |
tree | 9f85c0e49905c60d16b8ebaec4ebda003a659065 /dev-python/pytest-salt-factories | |
parent | dev-python/pytest-skip-markers: initial import (diff) | |
download | gentoo-cb278dc4e55e23345b0c26e83f0c32f866d60d26.tar.gz gentoo-cb278dc4e55e23345b0c26e83f0c32f866d60d26.tar.bz2 gentoo-cb278dc4e55e23345b0c26e83f0c32f866d60d26.zip |
dev-python/pytest-salt-factories: add 1.0.0_rc13
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
Diffstat (limited to 'dev-python/pytest-salt-factories')
3 files changed, 488 insertions, 0 deletions
diff --git a/dev-python/pytest-salt-factories/Manifest b/dev-python/pytest-salt-factories/Manifest index 65e270229be0..b2955ea369a7 100644 --- a/dev-python/pytest-salt-factories/Manifest +++ b/dev-python/pytest-salt-factories/Manifest @@ -1 +1,2 @@ DIST pytest-salt-factories-0.911.0.tar.gz 161682 BLAKE2B b5a827c9a9acc55c53bc4152b648f96845f513e2d1c8425cbde0862909996a653df4debbf798a3d7461da4fc221acd5fc8e6052e123f3e64e0c8f4345557f141 SHA512 bada21cfe990ccb10b0e298cb05a7f3842d0fe24e2c8664352ae991363d0094dd1ff877adea5fcc0c1040e3f20f82ba616607c595511cade93ebadddd336a26b +DIST pytest-salt-factories-1.0.0_rc13.tar.gz 148418 BLAKE2B 3688f05d137df23266ebc7e999bc3b3a8ec198173b38dc98bd4a1e2655b982a37485278691e970da0be700cee6f609c57933b041a6d8403e75fb197f5d23d5d4 SHA512 f3713410704540ee48b7263973d3a9bf3159fb63e53e5ef5002201aea3fdcf0b4eaf00e1dd1e67d869b42242985d8117a117568d63abf5ad366e247fb3e1d83f diff --git a/dev-python/pytest-salt-factories/files/pytest-salt-factories-1.0.0_rc13-tests.patch b/dev-python/pytest-salt-factories/files/pytest-salt-factories-1.0.0_rc13-tests.patch new file mode 100644 index 000000000000..b021dcccf280 --- /dev/null +++ b/dev-python/pytest-salt-factories/files/pytest-salt-factories-1.0.0_rc13-tests.patch @@ -0,0 +1,415 @@ +diff --git a/src/saltfactories/plugins/__init__.py b/src/saltfactories/plugins/__init__.py +index 361414a..55469e4 100644 +--- a/src/saltfactories/plugins/__init__.py ++++ b/src/saltfactories/plugins/__init__.py +@@ -27,7 +27,7 @@ def pytest_tempdir_temproot(): + tempdir = "/tmp" + else: + tempdir = os.environ.get("TMPDIR") or tempfile.gettempdir() +- return os.path.abspath(os.path.realpath(tempdir)) ++ return tempdir + + + def pytest_tempdir_basename(): +diff --git a/tests/functional/factories/base/test_salt_daemon_factory.py b/tests/functional/factories/base/test_salt_daemon_factory.py +index eae5670..fd312df 100644 +--- a/tests/functional/factories/base/test_salt_daemon_factory.py ++++ b/tests/functional/factories/base/test_salt_daemon_factory.py +@@ -35,7 +35,7 @@ def test_extra_cli_arguments_after_first_failure( + This test asserts that after the first start failure, the extra_cli_arguments_after_first_start_failure + arguments are added + """ +- output_file = tmp_path.joinpath("output.txt").resolve() ++ output_file = tmp_path.joinpath("output.txt") + config = {"conf_file": config_file, "id": master_id} + script = tempfiles.makepyfile( + r""" +diff --git a/tests/functional/factories/daemons/test_container_factory.py b/tests/functional/factories/daemons/test_container_factory.py +index 1642d57..8b085eb 100644 +--- a/tests/functional/factories/daemons/test_container_factory.py ++++ b/tests/functional/factories/daemons/test_container_factory.py +@@ -3,6 +3,7 @@ from unittest import mock + import pytest + + ++@pytest.mark.skip("Needs network access") + @pytest.mark.parametrize("skip_on_pull_failure", [True, False]) + def test_skip_on_pull_failure(pytester, skip_on_pull_failure): + pytester.makepyfile( +diff --git a/tests/functional/markers/test_requires_salt_modules.py b/tests/functional/markers/test_requires_salt_modules.py +index 97ed1ec..53ff0dd 100644 +--- a/tests/functional/markers/test_requires_salt_modules.py ++++ b/tests/functional/markers/test_requires_salt_modules.py +@@ -1,9 +1,11 @@ + """ + Test the ``@pytest.mark.requires_salt_modules`` marker. + """ ++import sys + import pytest + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + @pytest.mark.parametrize( + "modules", + [ +@@ -29,6 +31,7 @@ def test_has_required_salt_module(pytester, modules): + res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*") + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + @pytest.mark.parametrize( + "modules", + [ +@@ -54,6 +57,7 @@ def test_missing_required_salt_module(pytester, modules): + res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*") + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + def test_has_required_custom_salt_module(pytester): + pytester.makepyfile( + r""" +diff --git a/tests/functional/markers/test_requires_salt_states.py b/tests/functional/markers/test_requires_salt_states.py +index f6d63a9..ec4b431 100644 +--- a/tests/functional/markers/test_requires_salt_states.py ++++ b/tests/functional/markers/test_requires_salt_states.py +@@ -1,9 +1,11 @@ + """ + Test the ``@pytest.mark.requires_salt_states`` marker. + """ ++import sys + import pytest + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + @pytest.mark.parametrize( + "modules", + [ +@@ -29,6 +31,7 @@ def test_has_required_salt_state(pytester, modules): + res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*") + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + @pytest.mark.parametrize( + "modules", + [ +@@ -54,6 +57,7 @@ def test_missing_required_salt_state(pytester, modules): + res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*") + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + def test_has_required_custom_salt_state(pytester): + pytester.makepyfile( + r""" +diff --git a/tests/functional/test_sys_info.py b/tests/functional/test_sys_info.py +index c8fbf6e..f18c85d 100644 +--- a/tests/functional/test_sys_info.py ++++ b/tests/functional/test_sys_info.py +@@ -1,9 +1,11 @@ + """ + Tests related to system information reports enabled by the `--sys-info` flag.. + """ ++import sys + import pytest + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + @pytest.mark.parametrize("flag", ["--sysinfo", "--sys-info"]) + def test_sysinfo(pytester, flag): + pytester.makepyfile( +@@ -27,6 +29,7 @@ def test_sysinfo(pytester, flag): + ) + + ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + def test_no_sysinfo(pytester): + pytester.makepyfile( + """ +diff --git a/tests/integration/factories/cli/test_salt.py b/tests/integration/factories/cli/test_salt.py +index 9c4fdb0..0766fe7 100644 +--- a/tests/integration/factories/cli/test_salt.py ++++ b/tests/integration/factories/cli/test_salt.py +@@ -14,6 +14,7 @@ def salt_minion_2(salt_master, salt_minion): + yield factory + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_merged_json_out(salt_cli, salt_minion, salt_minion_2): + ret = salt_cli.run("test.ping", minion_tgt="*") + assert ret.returncode == 0, ret +@@ -24,6 +25,7 @@ def test_merged_json_out(salt_cli, salt_minion, salt_minion_2): + assert ret.data[salt_minion_2.id] is True + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_merged_json_out_disabled(salt_cli, salt_minion, salt_minion_2): + ret = salt_cli.run("test.ping", minion_tgt="*", merge_json_output=False) + assert ret.returncode == 0, ret +diff --git a/tests/integration/factories/daemons/api/test_api.py b/tests/integration/factories/daemons/api/test_api.py +index d6fd060..aade16e 100644 +--- a/tests/integration/factories/daemons/api/test_api.py ++++ b/tests/integration/factories/daemons/api/test_api.py +@@ -19,5 +19,6 @@ def salt_api(master): + yield factory + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_api(salt_api): + assert salt_api.is_running() +diff --git a/tests/integration/factories/daemons/api/test_restarts.py b/tests/integration/factories/daemons/api/test_restarts.py +index bfab01f..0494ebb 100644 +--- a/tests/integration/factories/daemons/api/test_restarts.py ++++ b/tests/integration/factories/daemons/api/test_restarts.py +@@ -12,6 +12,7 @@ def master(salt_factories): + yield factory + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_multiple_start_stops(master): + factory = master.salt_api_daemon() + assert factory.is_running() is False +diff --git a/tests/integration/factories/daemons/master/test_master.py b/tests/integration/factories/daemons/master/test_master.py +index 6ae19f0..b93f773 100644 +--- a/tests/integration/factories/daemons/master/test_master.py ++++ b/tests/integration/factories/daemons/master/test_master.py +@@ -1,3 +1,4 @@ ++import sys + import pytest + import salt.defaults.exitcodes + from pytestshellutils.exceptions import FactoryNotStarted +@@ -48,10 +49,12 @@ def salt_call(minion): + return minion.salt_call_cli() + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_master(master): + assert master.is_running() + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_salt_run(master, salt_run): + max_open_files_config_value = master.config["max_open_files"] + ret = salt_run.run("config.get", "max_open_files") +@@ -117,6 +120,7 @@ def test_state_tree(master, salt_call, minion): + assert ret.returncode == 0 + + ++@pytest.mark.skip("not compatible with sandbox") + @pytest.mark.skip_on_salt_system_install + def test_salt_key(minion, minion_3, salt_key): + ret = salt_key.run("--list-all") +@@ -131,6 +135,7 @@ def test_salt_key(minion, minion_3, salt_key): + + @pytest.mark.skip_on_windows + @pytest.mark.skip_on_salt_system_install ++@pytest.mark.skipif(sys.version_info >= (3, 10), reason="test broken on python 3.10") + def test_exit_status_unknown_user(salt_factories): + master = salt_factories.salt_master_daemon("set-exitcodes", overrides={"user": "unknown-user"}) + with pytest.raises(FactoryNotStarted) as exc: +diff --git a/tests/integration/factories/daemons/master/test_restarts.py b/tests/integration/factories/daemons/master/test_restarts.py +index 683970a..443dcfb 100644 +--- a/tests/integration/factories/daemons/master/test_restarts.py ++++ b/tests/integration/factories/daemons/master/test_restarts.py +@@ -11,6 +11,7 @@ def master(salt_factories): + return factory + + ++@pytest.mark.skip("not compatible with network") + def test_multiple_start_stops(master): + assert master.is_running() is False + pid = None +diff --git a/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py b/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py +index a6c6420..10626cd 100644 +--- a/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py ++++ b/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py +@@ -28,6 +28,7 @@ def salt_call_cli(minion): + return minion.salt_call_cli() + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_event_listener_engine(minion, salt_call_cli, event_listener): + """ + There are some events which the minion fires internally that never reach the master. +diff --git a/tests/integration/factories/daemons/minion/test_minion.py b/tests/integration/factories/daemons/minion/test_minion.py +index 387e789..1e4ecfd 100644 +--- a/tests/integration/factories/daemons/minion/test_minion.py ++++ b/tests/integration/factories/daemons/minion/test_minion.py +@@ -27,6 +27,7 @@ def salt_call_cli(minion): + return minion.salt_call_cli() + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_minion(minion, salt_cli): + assert minion.is_running() + ret = salt_cli.run("test.ping", minion_tgt=minion.id) +@@ -34,6 +35,7 @@ def test_minion(minion, salt_cli): + assert ret.data is True + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_no_match(minion, salt_cli): + assert minion.is_running() + ret = salt_cli.run("test.ping", minion_tgt="minion-2") +@@ -41,6 +43,7 @@ def test_no_match(minion, salt_cli): + assert not ret.data + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_show_jid(minion, salt_cli): + assert minion.is_running() + ret = salt_cli.run("--show-jid", "test.ping", minion_tgt=minion.id) +@@ -48,6 +51,7 @@ def test_show_jid(minion, salt_cli): + assert ret.data is True + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_minion_salt_call(minion, salt_call_cli): + assert minion.is_running() + ret = salt_call_cli.run("test.ping") +@@ -59,6 +63,7 @@ def test_minion_salt_call(minion, salt_call_cli): + assert ret.data is True + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_salt_call_exception_handling_doesnt_timeout(minion, salt_call_cli): + ret = salt_call_cli.run( + "test.raise_exception", "OSError", "2", "No such file or directory", "/tmp/foo.txt" +@@ -66,6 +71,7 @@ def test_salt_call_exception_handling_doesnt_timeout(minion, salt_call_cli): + assert ret.returncode == 1, ret + + ++@pytest.mark.skip("not compatible with sandbox") + def test_state_tree(minion, salt_call_cli): + sls_contents = """ + test: +diff --git a/tests/integration/factories/daemons/minion/test_restarts.py b/tests/integration/factories/daemons/minion/test_restarts.py +index ab1f044..4ac417d 100644 +--- a/tests/integration/factories/daemons/minion/test_restarts.py ++++ b/tests/integration/factories/daemons/minion/test_restarts.py +@@ -10,6 +10,7 @@ def master(salt_factories): + yield factory + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_multiple_start_stops(master): + factory = master.salt_minion_daemon(random_string("minion-")) + assert factory.is_running() is False +diff --git a/tests/integration/factories/daemons/proxy/test_proxy_minion.py b/tests/integration/factories/daemons/proxy/test_proxy_minion.py +index 1c58628..807cbe7 100644 +--- a/tests/integration/factories/daemons/proxy/test_proxy_minion.py ++++ b/tests/integration/factories/daemons/proxy/test_proxy_minion.py +@@ -36,6 +36,7 @@ def salt_call_cli(proxy_minion): + return proxy_minion.salt_call_cli() + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_proxy_minion(proxy_minion, salt_cli): + assert proxy_minion.is_running() + ret = salt_cli.run("test.ping", minion_tgt=proxy_minion.id) +@@ -43,6 +44,7 @@ def test_proxy_minion(proxy_minion, salt_cli): + assert ret.data is True + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_no_match(proxy_minion, salt_cli): + assert proxy_minion.is_running() + ret = salt_cli.run("test.ping", minion_tgt="proxy-minion-2") +@@ -50,6 +52,7 @@ def test_no_match(proxy_minion, salt_cli): + assert not ret.data + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_show_jid(proxy_minion, salt_cli): + if platform.is_darwin() and sys.version_info[:2] == (3, 7): + pytest.skip( +@@ -62,6 +65,7 @@ def test_show_jid(proxy_minion, salt_cli): + assert ret.data is True + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_proxy_minion_salt_call(proxy_minion, salt_call_cli): + assert proxy_minion.is_running() + ret = salt_call_cli.run("test.ping") +@@ -73,6 +77,7 @@ def test_proxy_minion_salt_call(proxy_minion, salt_call_cli): + assert ret.data is True + + ++@pytest.mark.skip("not compatible with sandbox") + def test_state_tree(proxy_minion, salt_call_cli): + sls_contents = """ + test: +diff --git a/tests/integration/factories/daemons/proxy/test_restarts.py b/tests/integration/factories/daemons/proxy/test_restarts.py +index a243c6d..7758c96 100644 +--- a/tests/integration/factories/daemons/proxy/test_restarts.py ++++ b/tests/integration/factories/daemons/proxy/test_restarts.py +@@ -16,6 +16,7 @@ def master(salt_factories): + yield factory + + ++@pytest.mark.skip("not compatible with sandbox") + def test_multiple_start_stops(master): + factory = master.salt_proxy_minion_daemon(random_string("proxy-minion-")) + assert factory.is_running() is False +diff --git a/tests/integration/factories/daemons/ssh/test_salt_ssh.py b/tests/integration/factories/daemons/ssh/test_salt_ssh.py +index 37e2449..73ac893 100644 +--- a/tests/integration/factories/daemons/ssh/test_salt_ssh.py ++++ b/tests/integration/factories/daemons/ssh/test_salt_ssh.py +@@ -51,6 +51,7 @@ def salt_ssh_cli(sshd, salt_factories, master): + + + @pytest.mark.skip_on_windows ++@pytest.mark.skip("not compatible with network-sandbox") + def test_salt_ssh(salt_ssh_cli): + ret = salt_ssh_cli.run("--ignore-host-keys", "test.echo", "It Works!", minion_tgt="localhost") + assert ret.returncode == 0 +diff --git a/tests/integration/factories/daemons/sshd/test_sshd.py b/tests/integration/factories/daemons/sshd/test_sshd.py +index 3b425fc..3e03636 100644 +--- a/tests/integration/factories/daemons/sshd/test_sshd.py ++++ b/tests/integration/factories/daemons/sshd/test_sshd.py +@@ -5,6 +5,7 @@ import pytest + + @pytest.fixture(scope="module") + @pytest.mark.skip_if_binaries_missing("sshd", "ssh-keygen") ++@pytest.mark.skip("not compatible with network-sandbox") + def sshd(salt_factories): + # Set StrictModes to no because our config directory lives in /tmp and those permissions + # are not acceptable by sshd strict paranoia. +@@ -15,12 +16,14 @@ def sshd(salt_factories): + + + @pytest.mark.skip_on_windows ++@pytest.mark.skip("not compatible with network-sandbox") + def test_sshd(sshd): + assert sshd.is_running() + + + @pytest.mark.skip_on_windows + @pytest.mark.skip_if_binaries_missing("ssh") ++@pytest.mark.skip("not compatible with network-sandbox") + def test_connect(sshd): + cmd = subprocess.run( + [ +diff --git a/tests/integration/utils/saltext/test_log_handlers.py b/tests/integration/utils/saltext/test_log_handlers.py +index 6d5b9c0..edc5b5a 100644 +--- a/tests/integration/utils/saltext/test_log_handlers.py ++++ b/tests/integration/utils/saltext/test_log_handlers.py +@@ -24,6 +24,7 @@ def salt_cli(master): + return master.salt_cli() + + ++@pytest.mark.skip("Not compatible with sandbox") + def test_logs_forwarded_from_sub_processes(salt_cli, minion, caplog): + assert minion.is_running() + +diff --git a/tests/scenarios/examples/test_echoext.py b/tests/scenarios/examples/test_echoext.py +index 238a442..d827467 100644 +--- a/tests/scenarios/examples/test_echoext.py ++++ b/tests/scenarios/examples/test_echoext.py +@@ -1,6 +1,8 @@ + from saltfactories import CODE_ROOT_DIR + ++import pytest + ++@pytest.mark.skip("Incompatible with sandbox") + def test_echoext(extension_venv): + extension_path = CODE_ROOT_DIR.parent.parent / "examples" / "echo-extension" + with extension_venv(extension_path) as venv: diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild new file mode 100644 index 000000000000..b1c4556a0d35 --- /dev/null +++ b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild @@ -0,0 +1,72 @@ +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="The new generation of the pytest-salt Plugin" +HOMEPAGE="https://github.com/saltstack/pytest-salt-factories" +SRC_URI="https://github.com/saltstack/${PN}/archive/${PV//_/}.tar.gz -> ${P}.tar.gz" +S=${WORKDIR}/${PN}-${PV//_/} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" + +RDEPEND=" + dev-python/attrs[${PYTHON_USEDEP}] + dev-python/pytest-tempdir[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}] + dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}] + dev-python/pytest-skip-markers[${PYTHON_USEDEP}] + dev-python/pytest-system-statistics[${PYTHON_USEDEP}] + dev-python/pytest-shell-utilities[${PYTHON_USEDEP}] + dev-python/pyzmq[${PYTHON_USEDEP}] + dev-python/msgpack[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + >=app-admin/salt-3001.0[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( + dev-python/pyfakefs[${PYTHON_USEDEP}] + dev-python/pytest-subtests[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/pytest-salt-factories-1.0.0_rc13-tests.patch" +) + +distutils_enable_tests --install pytest + +python_prepare_all() { + sed -r -e "s:use_scm_version=True:version='${PV}', name='${PN//-/.}':" -i setup.py || die + sed -r -e '/(setuptools|setup_requires)/ d' -i setup.cfg || die + + sed -i 's:tool.setuptools_scm:tool.disabled:' pyproject.toml || die + printf '__version__ = "%s"\n' "${PV}" > src/saltfactories/version.py || die + distutils-r1_python_prepare_all +} + +python_test() { + local tempdir + + # ${T} is too long a path for the tests to work + tempdir="$(mktemp -du --tmpdir=/tmp salt-XXX)" + addwrite "${tempdir}" + + distutils_install_for_testing --via-root + + ( + cleanup() { rm -rf "${tempdir}" || die; } + + trap cleanup EXIT + env SHELL="/bin/bash" TMPDIR="${tempdir}" \ + pytest -vv -x || die "Tests failed with ${EPYTHON}" + ) +} |