diff options
Diffstat (limited to 'tests/test_process_spawn.py')
-rw-r--r-- | tests/test_process_spawn.py | 50 |
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) |