aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_process_spawn.py')
-rw-r--r--tests/test_process_spawn.py50
1 files changed, 28 insertions, 22 deletions
diff --git a/tests/test_process_spawn.py b/tests/test_process_spawn.py
index 8981c6e7..556b34cc 100644
--- a/tests/test_process_spawn.py
+++ b/tests/test_process_spawn.py
@@ -6,11 +6,11 @@ from snakeoil import process
from snakeoil.contexts import chdir
from snakeoil.process import spawn
-BASH_BINARY = process.find_binary("bash", fallback='')
+BASH_BINARY = process.find_binary("bash", fallback="")
-@pytest.mark.skipif(not BASH_BINARY, reason='missing bash binary')
-class TestSpawn:
+@pytest.mark.skipif(not BASH_BINARY, reason="missing bash binary")
+class TestSpawn:
@pytest.fixture(autouse=True)
def _setup(self, tmp_path):
orig_path = os.environ["PATH"]
@@ -37,21 +37,25 @@ class TestSpawn:
def test_get_output(self, tmp_path, dev_null):
filename = "spawn-getoutput.sh"
for r, s, text, args in (
- [0, ["dar\n"], "echo dar\n", {}],
- [0, ["dar"], "echo -n dar", {}],
- [1, ["blah\n", "dar\n"], "echo blah\necho dar\nexit 1", {}],
- [0, [], "echo dar 1>&2", {"fd_pipes": {1: 1, 2: dev_null}}]):
+ [0, ["dar\n"], "echo dar\n", {}],
+ [0, ["dar"], "echo -n dar", {}],
+ [1, ["blah\n", "dar\n"], "echo blah\necho dar\nexit 1", {}],
+ [0, [], "echo dar 1>&2", {"fd_pipes": {1: 1, 2: dev_null}}],
+ ):
fp = self.generate_script(tmp_path, filename, text)
- assert (r, s) == spawn.spawn_get_output(str(fp), spawn_type=spawn.spawn_bash, **args)
+ assert (r, s) == spawn.spawn_get_output(
+ str(fp), spawn_type=spawn.spawn_bash, **args
+ )
os.unlink(fp)
@pytest.mark.skipif(not spawn.is_sandbox_capable(), reason="missing sandbox binary")
def test_sandbox(self, tmp_path):
- fp = self.generate_script(
- tmp_path, "spawn-sandbox.sh", "echo $LD_PRELOAD")
+ fp = self.generate_script(tmp_path, "spawn-sandbox.sh", "echo $LD_PRELOAD")
ret = spawn.spawn_get_output(str(fp), spawn_type=spawn.spawn_sandbox)
assert ret[1], "no output; exit code was %s; script location %s" % (ret[0], fp)
- assert "libsandbox.so" in [os.path.basename(x.strip()) for x in ret[1][0].split()]
+ assert "libsandbox.so" in [
+ os.path.basename(x.strip()) for x in ret[1][0].split()
+ ]
os.unlink(fp)
@pytest.mark.skipif(not spawn.is_sandbox_capable(), reason="missing sandbox binary")
@@ -60,15 +64,17 @@ class TestSpawn:
this verifies our fix works.
"""
- fp = self.generate_script(
- tmp_path, "spawn-sandbox.sh", "echo $LD_PRELOAD")
+ fp = self.generate_script(tmp_path, "spawn-sandbox.sh", "echo $LD_PRELOAD")
dpath = tmp_path / "dar"
dpath.mkdir()
with chdir(dpath):
dpath.rmdir()
- assert "libsandbox.so" in \
- [os.path.basename(x.strip()) for x in spawn.spawn_get_output(
- str(fp), spawn_type=spawn.spawn_sandbox, cwd='/')[1][0].split()]
+ assert "libsandbox.so" in [
+ os.path.basename(x.strip())
+ for x in spawn.spawn_get_output(
+ str(fp), spawn_type=spawn.spawn_sandbox, cwd="/"
+ )[1][0].split()
+ ]
fp.unlink()
def test_process_exit_code(self):
@@ -98,13 +104,12 @@ class TestSpawn:
def test_spawn_bash(self, capfd):
# bash builtin for true without exec'ing true (eg, no path lookup)
- assert 0 == spawn.spawn_bash('echo bash')
+ assert 0 == spawn.spawn_bash("echo bash")
out, _err = capfd.readouterr()
- assert out.strip() == 'bash'
+ assert out.strip() == "bash"
def test_umask(self, tmp_path):
- fp = self.generate_script(
- tmp_path, "spawn-umask.sh", f"#!{BASH_BINARY}\numask")
+ fp = self.generate_script(tmp_path, "spawn-umask.sh", f"#!{BASH_BINARY}\numask")
try:
old_umask = os.umask(0)
if old_umask == 0:
@@ -113,7 +118,8 @@ class TestSpawn:
os.umask(desired)
else:
desired = 0
- assert str(desired).lstrip("0") == \
- spawn.spawn_get_output(str(fp))[1][0].strip().lstrip("0")
+ assert str(desired).lstrip("0") == spawn.spawn_get_output(str(fp))[1][
+ 0
+ ].strip().lstrip("0")
finally:
os.umask(old_umask)