diff options
Diffstat (limited to 'dev-python/pytest-salt-factories')
5 files changed, 369 insertions, 47 deletions
diff --git a/dev-python/pytest-salt-factories/Manifest b/dev-python/pytest-salt-factories/Manifest index aa2b8070aeb9..810b7bb0d87c 100644 --- a/dev-python/pytest-salt-factories/Manifest +++ b/dev-python/pytest-salt-factories/Manifest @@ -1 +1 @@ -DIST pytest-salt-factories-0.94.4.tar.gz 117281 BLAKE2B 9b42dbf4329fe2afd875de55e96604896c6f46d3c3736b644466dd5db6091cf5b9b1d2188c0e0a22b4b15a227dfacc7692ea6499aa7f58ce6adb9b802f00b1f7 SHA512 5c670aa7dd64441b1bd3a188335a35be00d7406bc8d76f9a1213cc3414061c3dfc51a9319008c29c83fb5abec1d7b677aec76ac4b9c00adcd878ef6da599041a +DIST pytest-salt-factories-0.121.1.tar.gz 102121 BLAKE2B 92cd5953b11377f1646f01b86a677a50216d16bcb944235a3f04176aecbb005974c415adcbf23cc391aab41b1ee9596984516ab61ecdd8c944d4ce707c39ab00 SHA512 32252695c6e8b17ef17d3330c4b0b38bdce89201d5573b4efa3531a72e826ee1fb26fea3ad0408401dec867cee405f21031804c32eb8fe6ceaa00925b17725a1 diff --git a/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch b/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch new file mode 100644 index 000000000000..3e85580c9158 --- /dev/null +++ b/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch @@ -0,0 +1,294 @@ +diff --git a/saltfactories/plugin.py b/saltfactories/plugin.py +index b29a115..9d68c34 100644 +--- a/saltfactories/plugin.py ++++ b/saltfactories/plugin.py +@@ -21,7 +21,7 @@ def pytest_tempdir_temproot(): + tempdir = os.environ.get("TMPDIR") or tempfile.gettempdir() + else: + tempdir = "/tmp" +- return os.path.abspath(os.path.realpath(tempdir)) ++ return os.path.abspath(tempdir) + + + def pytest_tempdir_basename(): +diff --git a/tests/functional/markers/test_requires_network.py b/tests/functional/markers/test_requires_network.py +index 8b57368..d58f0a1 100644 +--- a/tests/functional/markers/test_requires_network.py ++++ b/tests/functional/markers/test_requires_network.py +@@ -9,7 +9,10 @@ from unittest import mock + from saltfactories.utils import ports + from saltfactories.utils import socket + ++import pytest + ++ ++@pytest.mark.skip("not compatible with network-sandbox") + def test_has_local_network(testdir): + testdir.makepyfile( + """ +diff --git a/tests/integration/factories/cli/test_salt.py b/tests/integration/factories/cli/test_salt.py +index 17fce6c..7bd2789 100644 +--- a/tests/integration/factories/cli/test_salt.py ++++ b/tests/integration/factories/cli/test_salt.py +@@ -17,6 +17,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.exitcode == 0, ret +@@ -27,6 +28,7 @@ def test_merged_json_out(salt_cli, salt_minion, salt_minion_2): + assert ret.json[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.exitcode == 0, ret +diff --git a/tests/integration/factories/daemons/api/test_api.py b/tests/integration/factories/daemons/api/test_api.py +index 78b8bb7..e20f28c 100644 +--- a/tests/integration/factories/daemons/api/test_api.py ++++ b/tests/integration/factories/daemons/api/test_api.py +@@ -23,5 +23,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 a6c5472..dd15c17 100644 +--- a/tests/integration/factories/daemons/api/test_restarts.py ++++ b/tests/integration/factories/daemons/api/test_restarts.py +@@ -16,6 +16,7 @@ def master(salt_factories): + yield factory + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_multiple_start_stops(master): + factory = master.get_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 2676dfa..cbf598e 100644 +--- a/tests/integration/factories/daemons/master/test_master.py ++++ b/tests/integration/factories/daemons/master/test_master.py +@@ -46,10 +46,12 @@ def salt_key(master): + return master.get_salt_key_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") +@@ -57,6 +59,7 @@ def test_salt_run(master, salt_run): + assert ret.json == max_open_files_config_value + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_salt_cp(master, minion, salt_cp, tempfiles): + """ + Test copying a file from the master to the minion +@@ -98,6 +101,7 @@ def test_salt_cp(master, minion, salt_cp, tempfiles): + os.unlink(dest) + + ++@pytest.mark.skip("not compatible with network-sandbox") + def test_salt_cp_no_match(master, minion, salt_cp, tempfiles): + assert master.is_running() + assert minion.is_running() +@@ -119,6 +123,7 @@ def test_salt_cp_no_match(master, minion, salt_cp, tempfiles): + os.unlink(dest) + + ++@pytest.mark.skip("not compatible with sandbox") + @pytest.mark.skip_on_salt_system_install + def test_salt_key(master, minion, minion_3, salt_key): + ret = salt_key.run("--list-all") +diff --git a/tests/integration/factories/daemons/master/test_restarts.py b/tests/integration/factories/daemons/master/test_restarts.py +index 6a6852d..70415d0 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 d63e640..653693e 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.get_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 64a3df6..ab82e55 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.get_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.json 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.json + + ++@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.json 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.json 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" +diff --git a/tests/integration/factories/daemons/minion/test_restarts.py b/tests/integration/factories/daemons/minion/test_restarts.py +index a7d9ae0..8f0401b 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.get_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 3bbca21..2e2fb8b 100644 +--- a/tests/integration/factories/daemons/proxy/test_proxy_minion.py ++++ b/tests/integration/factories/daemons/proxy/test_proxy_minion.py +@@ -35,6 +35,7 @@ def salt_call_cli(proxy_minion): + return proxy_minion.get_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) +@@ -42,6 +43,7 @@ def test_proxy_minion(proxy_minion, salt_cli): + assert ret.json 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") +@@ -49,6 +51,7 @@ def test_no_match(proxy_minion, salt_cli): + assert not ret.json + + ++@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( +@@ -61,6 +64,7 @@ def test_show_jid(proxy_minion, salt_cli): + assert ret.json 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") +diff --git a/tests/integration/factories/daemons/proxy/test_restarts.py b/tests/integration/factories/daemons/proxy/test_restarts.py +index 3101204..28652ff 100644 +--- a/tests/integration/factories/daemons/proxy/test_restarts.py ++++ b/tests/integration/factories/daemons/proxy/test_restarts.py +@@ -17,6 +17,7 @@ def master(salt_factories): + yield factory + + ++@pytest.mark.skip("not compatible with sandbox") + def test_multiple_start_stops(master): + factory = master.get_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 f58eac4..c3df3de 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.exitcode == 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/unit/utils/markers/test_skip_if_no_remote_network.py b/tests/unit/utils/markers/test_skip_if_no_remote_network.py +index 1aa72dc..c4d079e 100644 +--- a/tests/unit/utils/markers/test_skip_if_no_remote_network.py ++++ b/tests/unit/utils/markers/test_skip_if_no_remote_network.py +@@ -9,7 +9,10 @@ from unittest import mock + import saltfactories.utils.markers as markers + from saltfactories.utils import socket + ++import pytest + ++ ++@pytest.mark.skip("not compatible with network-sandbox") + def test_has_remote_network(): + assert markers.skip_if_no_remote_network() is None + diff --git a/dev-python/pytest-salt-factories/metadata.xml b/dev-python/pytest-salt-factories/metadata.xml index b8b1eaa537d2..e992c69661a1 100644 --- a/dev-python/pytest-salt-factories/metadata.xml +++ b/dev-python/pytest-salt-factories/metadata.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>chutzpah@gentoo.org</email> - <name>Patrick McLean</name> - </maintainer> - <upstream> - <remote-id type="pypi">pytest-salt-factories</remote-id> - </upstream> -</pkgmetadata> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <upstream> + <remote-id type="pypi">pytest-salt-factories</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata>
\ No newline at end of file diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-0.121.1.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-0.121.1.ebuild new file mode 100644 index 000000000000..735972093838 --- /dev/null +++ b/dev-python/pytest-salt-factories/pytest-salt-factories-0.121.1.ebuild @@ -0,0 +1,64 @@ +# Copyright 2020-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8,9,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" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="test" + +RDEPEND=" + >=dev-python/pytest-6.1.1[${PYTHON_USEDEP}] + dev-python/attrs[${PYTHON_USEDEP}] + dev-python/pytest-tempdir[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + dev-python/pyzmq[${PYTHON_USEDEP}] + dev-python/msgpack[${PYTHON_USEDEP}] +" +BDEPEND="${RDEPEND} + test? ( >=app-admin/salt-3001.0[${PYTHON_USEDEP}] ) +" + +PATCHES=( + "${FILESDIR}/pytest-salt-factories-0.121.1-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}" > 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)" + mkdir "${T}/$(basename "${tempdir}")" + + addwrite "${tempdir}" + ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}" || die + + distutils_install_for_testing --via-root + + ( + cleanup() { rm -f "${tempdir}" || die; } + + trap cleanup EXIT + SHELL="/bin/bash" TMPDIR="${tempdir}" \ + pytest -vv || die "Tests failed with ${EPYTHON}" + ) +} diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-0.94.4.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-0.94.4.ebuild deleted file mode 100644 index 7244c02569e6..000000000000 --- a/dev-python/pytest-salt-factories/pytest-salt-factories-0.94.4.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2020-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8,9,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" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm ~x86" -IUSE="test" - -RDEPEND=" - >=dev-python/pytest-6.1.1[${PYTHON_USEDEP}] - dev-python/attrs[${PYTHON_USEDEP}] - dev-python/pytest-tempdir[${PYTHON_USEDEP}] - dev-python/psutil[${PYTHON_USEDEP}] - dev-python/pyzmq[${PYTHON_USEDEP}] - dev-python/msgpack[${PYTHON_USEDEP}] -" -BDEPEND="${RDEPEND} - test? ( >=app-admin/salt-3000.0[${PYTHON_USEDEP}] ) -" - -# pytest just bombs -RESTRICT="test" - -PATCHES=( - "${FILESDIR}/pytest-salt-factories-0.92.0-setup.patch" -) - -distutils_enable_tests pytest |
