mirror of https://github.com/apache/cloudstack.git
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
import pytest
|
|
import os
|
|
|
|
needsfork = pytest.mark.skipif(not hasattr(os, "fork"),
|
|
reason="os.fork required")
|
|
|
|
@needsfork
|
|
def test_functional_boxed(testdir):
|
|
p1 = testdir.makepyfile("""
|
|
import os
|
|
def test_function():
|
|
os.kill(os.getpid(), 15)
|
|
""")
|
|
result = testdir.runpytest(p1, "--boxed")
|
|
result.stdout.fnmatch_lines([
|
|
"*CRASHED*",
|
|
"*1 failed*"
|
|
])
|
|
|
|
@needsfork
|
|
@pytest.mark.parametrize("capmode", [
|
|
"no",
|
|
pytest.mark.xfail("sys", reason="capture cleanup needed"),
|
|
pytest.mark.xfail("fd", reason="capture cleanup needed")])
|
|
def test_functional_boxed_capturing(testdir, capmode):
|
|
p1 = testdir.makepyfile("""
|
|
import os
|
|
import sys
|
|
def test_function():
|
|
sys.stdout.write("hello\\n")
|
|
sys.stderr.write("world\\n")
|
|
os.kill(os.getpid(), 15)
|
|
""")
|
|
result = testdir.runpytest(p1, "--boxed", "--capture=%s" % capmode)
|
|
result.stdout.fnmatch_lines("""
|
|
*CRASHED*
|
|
*stdout*
|
|
hello
|
|
*stderr*
|
|
world
|
|
*1 failed*
|
|
""")
|
|
|
|
class TestOptionEffects:
|
|
def test_boxed_option_default(self, testdir):
|
|
tmpdir = testdir.tmpdir.ensure("subdir", dir=1)
|
|
config = testdir.parseconfig()
|
|
assert not config.option.boxed
|
|
pytest.importorskip("execnet")
|
|
config = testdir.parseconfig('-d', tmpdir)
|
|
assert not config.option.boxed
|
|
|
|
def test_is_not_boxed_by_default(self, testdir):
|
|
config = testdir.parseconfig(testdir.tmpdir)
|
|
assert not config.option.boxed
|
|
|