dev-python/pytest-salt-factories: Version bump

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
This commit is contained in:
Patrick McLean
2021-12-03 14:55:16 -08:00
parent a7b4a66e76
commit 45764ac8a6
3 changed files with 540 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST pytest-salt-factories-0.121.1.tar.gz 102121 BLAKE2B 92cd5953b11377f1646f01b86a677a50216d16bcb944235a3f04176aecbb005974c415adcbf23cc391aab41b1ee9596984516ab61ecdd8c944d4ce707c39ab00 SHA512 32252695c6e8b17ef17d3330c4b0b38bdce89201d5573b4efa3531a72e826ee1fb26fea3ad0408401dec867cee405f21031804c32eb8fe6ceaa00925b17725a1
DIST pytest-salt-factories-0.911.0.tar.gz 161682 BLAKE2B b5a827c9a9acc55c53bc4152b648f96845f513e2d1c8425cbde0862909996a653df4debbf798a3d7461da4fc221acd5fc8e6052e123f3e64e0c8f4345557f141 SHA512 bada21cfe990ccb10b0e298cb05a7f3842d0fe24e2c8664352ae991363d0094dd1ff877adea5fcc0c1040e3f20f82ba616607c595511cade93ebadddd336a26b

View File

@@ -0,0 +1,469 @@
diff --git a/src/saltfactories/plugins/__init__.py b/src/saltfactories/plugins/__init__.py
index 679acad..ea6f23f 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 813e36c..2b2b3d8 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/markers/test_requires_network.py b/tests/functional/markers/test_requires_network.py
index 0b21ede..70343fb 100644
--- a/tests/functional/markers/test_requires_network.py
+++ b/tests/functional/markers/test_requires_network.py
@@ -9,7 +9,9 @@ from unittest import mock
from saltfactories.utils import ports
from saltfactories.utils import socket
+import pytest
+@pytest.mark.skip("Incompatible with network-sandbox")
def test_has_local_network(pytester):
pytester.makepyfile(
"""
diff --git a/tests/functional/markers/test_requires_salt_modules.py b/tests/functional/markers/test_requires_salt_modules.py
index 034d5e6..6e50a22 100644
--- a/tests/functional/markers/test_requires_salt_modules.py
+++ b/tests/functional/markers/test_requires_salt_modules.py
@@ -4,9 +4,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",
[
@@ -31,6 +33,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",
[
@@ -55,6 +58,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 6ec469d..79d9052 100644
--- a/tests/functional/markers/test_requires_salt_states.py
+++ b/tests/functional/markers/test_requires_salt_states.py
@@ -4,9 +4,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",
[
@@ -31,6 +33,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",
[
@@ -55,6 +58,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 61963e0..e1e7531 100644
--- a/tests/functional/test_sys_info.py
+++ b/tests/functional/test_sys_info.py
@@ -4,9 +4,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(
@@ -30,6 +32,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 91babb9..bc9e854 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 8202585..0e57d98 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 7b91c33..7cd633a 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 e3c20e4..9be3631 100644
--- a/tests/integration/factories/daemons/master/test_master.py
+++ b/tests/integration/factories/daemons/master/test_master.py
@@ -1,4 +1,5 @@
import os
+import sys
import tempfile
import pytest
@@ -51,10 +52,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")
@@ -62,6 +65,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
@@ -103,6 +107,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()
@@ -124,6 +129,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")
@@ -138,6 +144,7 @@ def test_salt_key(master, 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:
@@ -147,6 +154,7 @@ def test_exit_status_unknown_user(salt_factories):
assert "The user is not available." in exc.value.stderr, str(exc.value)
+@pytest.mark.skip("not compatible with sandbox")
def test_state_tree(master, salt_call):
sls_contents = """
test:
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 7983e29..ac1085d 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 8e73efc..4501f9d 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.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"
@@ -66,6 +71,7 @@ def test_salt_call_exception_handling_doesnt_timeout(minion, salt_call_cli):
assert ret.exitcode == 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 926e6ac..f30c986 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.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")
@@ -72,6 +76,7 @@ def test_proxy_minion_salt_call(proxy_minion, salt_call_cli):
assert ret.json 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 22ef97d..c781059 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.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 e74471a..a288b6b 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/integration/utils/saltext/test_log_handlers.py b/tests/integration/utils/saltext/test_log_handlers.py
index 96ad66d..118062b 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 3d5ce65..5fd503f 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/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/tests/unit/utils/test_platform.py b/tests/unit/utils/test_platform.py
index 28dac0c..b28bcbb 100644
--- a/tests/unit/utils/test_platform.py
+++ b/tests/unit/utils/test_platform.py
@@ -120,6 +120,7 @@ def test_is_not_aix():
assert saltfactories.utils.platform.is_aix() is return_value
+@pytest.mark.skip("Doesn't work with salt-3004")
def test_is_aarch64():
return_value = True
with mock.patch("sys.platform", "aarch64"):

View File

@@ -0,0 +1,70 @@
# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{7..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 ~arm64 ~x86"
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/pyzmq[${PYTHON_USEDEP}]
dev-python/msgpack[${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-0.911.0-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)"
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
env SHELL="/bin/bash" TMPDIR="${tempdir}" \
pytest -vv || die "Tests failed with ${EPYTHON}"
)
}