streamline pytester API majorly:
- integrate conftest into pytester plugin - introduce runpytest() to either call runpytest_inline (default) or runpytest_subprocess (python -m pytest) - move testdir.inline_runsource1 to pdb tests - strike some unneccessary methods. - a new section "writing plugins" and some better pytester docs --HG-- branch : testrefactor
This commit is contained in:
@@ -33,7 +33,7 @@ class TestFillFixtures:
|
||||
def test_func(some):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest() # "--collect-only")
|
||||
result = testdir.runpytest_inprocess() # "--collect-only")
|
||||
assert result.ret != 0
|
||||
result.stdout.fnmatch_lines([
|
||||
"*def test_func(some)*",
|
||||
@@ -78,7 +78,7 @@ class TestFillFixtures:
|
||||
def test_method(self, something):
|
||||
assert something is self
|
||||
""")
|
||||
result = testdir.inline_runpytest(p)
|
||||
result = testdir.runpytest_inprocess(p)
|
||||
result.stdout.fnmatch_lines([
|
||||
"*1 passed*"
|
||||
])
|
||||
@@ -119,9 +119,9 @@ class TestFillFixtures:
|
||||
def test_spam(self, spam):
|
||||
assert spam == 'spamspam'
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
def test_extend_fixture_conftest_module(self, testdir):
|
||||
@@ -142,9 +142,9 @@ class TestFillFixtures:
|
||||
def test_spam(spam):
|
||||
assert spam == 'spamspam'
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
def test_extend_fixture_conftest_conftest(self, testdir):
|
||||
@@ -168,9 +168,9 @@ class TestFillFixtures:
|
||||
def test_spam(spam):
|
||||
assert spam == "spamspam"
|
||||
"""))
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
def test_extend_fixture_conftest_plugin(self, testdir):
|
||||
@@ -195,7 +195,7 @@ class TestFillFixtures:
|
||||
def test_foo(foo):
|
||||
assert foo == 14
|
||||
""")
|
||||
result = testdir.inline_runpytest('-s')
|
||||
result = testdir.runpytest_inprocess('-s')
|
||||
assert result.ret == 0
|
||||
|
||||
def test_extend_fixture_plugin_plugin(self, testdir):
|
||||
@@ -221,7 +221,7 @@ class TestFillFixtures:
|
||||
def test_foo(foo):
|
||||
assert foo == 14
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret == 0
|
||||
|
||||
def test_override_parametrized_fixture_conftest_module(self, testdir):
|
||||
@@ -243,9 +243,9 @@ class TestFillFixtures:
|
||||
def test_spam(spam):
|
||||
assert spam == 'spam'
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
def test_override_parametrized_fixture_conftest_conftest(self, testdir):
|
||||
@@ -270,9 +270,9 @@ class TestFillFixtures:
|
||||
def test_spam(spam):
|
||||
assert spam == "spam"
|
||||
"""))
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
def test_override_non_parametrized_fixture_conftest_module(self, testdir):
|
||||
@@ -297,9 +297,9 @@ class TestFillFixtures:
|
||||
assert spam == params['spam']
|
||||
params['spam'] += 1
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*3 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*3 passed*"])
|
||||
|
||||
def test_override_non_parametrized_fixture_conftest_conftest(self, testdir):
|
||||
@@ -327,9 +327,9 @@ class TestFillFixtures:
|
||||
assert spam == params['spam']
|
||||
params['spam'] += 1
|
||||
"""))
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines(["*3 passed*"])
|
||||
result = testdir.inline_runpytest(testfile)
|
||||
result = testdir.runpytest_inprocess(testfile)
|
||||
result.stdout.fnmatch_lines(["*3 passed*"])
|
||||
|
||||
def test_autouse_fixture_plugin(self, testdir):
|
||||
@@ -349,7 +349,7 @@ class TestFillFixtures:
|
||||
def test_foo(request):
|
||||
assert request.function.foo == 7
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret == 0
|
||||
|
||||
def test_funcarg_lookup_error(self, testdir):
|
||||
@@ -357,7 +357,7 @@ class TestFillFixtures:
|
||||
def test_lookup_error(unknown):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines([
|
||||
"*ERROR*test_lookup_error*",
|
||||
"*def test_lookup_error(unknown):*",
|
||||
@@ -386,7 +386,7 @@ class TestFillFixtures:
|
||||
traceback.print_exc()
|
||||
assert sys.exc_info() == (None, None, None)
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret == 0
|
||||
|
||||
|
||||
@@ -529,7 +529,7 @@ class TestRequestBasic:
|
||||
def test_second():
|
||||
assert len(l) == 1
|
||||
""")
|
||||
result = testdir.inline_runpytest(p)
|
||||
result = testdir.runpytest_inprocess(p)
|
||||
result.stdout.fnmatch_lines([
|
||||
"*1 error*" # XXX the whole module collection fails
|
||||
])
|
||||
@@ -614,7 +614,7 @@ class TestRequestBasic:
|
||||
"""))
|
||||
p = b.join("test_module.py")
|
||||
p.write("def test_func(arg1): pass")
|
||||
result = testdir.inline_runpytest(p, "--fixtures")
|
||||
result = testdir.runpytest_inprocess(p, "--fixtures")
|
||||
assert result.ret == 0
|
||||
result.stdout.fnmatch_lines("""
|
||||
*fixtures defined*conftest*
|
||||
@@ -783,7 +783,7 @@ class TestRequestCachedSetup:
|
||||
def test_two_different_setups(arg1, arg2):
|
||||
assert arg1 != arg2
|
||||
""")
|
||||
result = testdir.inline_runpytest("-v")
|
||||
result = testdir.runpytest_inprocess("-v")
|
||||
result.stdout.fnmatch_lines([
|
||||
"*1 passed*"
|
||||
])
|
||||
@@ -798,7 +798,7 @@ class TestRequestCachedSetup:
|
||||
def test_two_funcarg(arg1):
|
||||
assert arg1 == 11
|
||||
""")
|
||||
result = testdir.inline_runpytest("-v")
|
||||
result = testdir.runpytest_inprocess("-v")
|
||||
result.stdout.fnmatch_lines([
|
||||
"*1 passed*"
|
||||
])
|
||||
@@ -825,7 +825,7 @@ class TestRequestCachedSetup:
|
||||
def test_check_test0_has_teardown_correct():
|
||||
assert test_0.l == [2]
|
||||
""")
|
||||
result = testdir.inline_runpytest("-v")
|
||||
result = testdir.runpytest_inprocess("-v")
|
||||
result.stdout.fnmatch_lines([
|
||||
"*3 passed*"
|
||||
])
|
||||
@@ -841,7 +841,7 @@ class TestRequestCachedSetup:
|
||||
def test_func(app):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret != 0
|
||||
result.stdout.fnmatch_lines([
|
||||
"*3/x*",
|
||||
@@ -896,7 +896,7 @@ class TestFixtureUsages:
|
||||
def test_add(arg2):
|
||||
assert arg2 == 2
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines([
|
||||
"*ScopeMismatch*involved factories*",
|
||||
"* def arg2*",
|
||||
@@ -918,7 +918,7 @@ class TestFixtureUsages:
|
||||
def test_add(arg1, arg2):
|
||||
assert arg2 == 2
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines([
|
||||
"*ScopeMismatch*involved factories*",
|
||||
"* def arg2*",
|
||||
@@ -942,7 +942,7 @@ class TestFixtureUsages:
|
||||
assert arg2 == arg1 + 1
|
||||
assert len(l) == arg1
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines([
|
||||
"*2 passed*"
|
||||
])
|
||||
@@ -962,7 +962,7 @@ class TestFixtureUsages:
|
||||
def test_missing(call_fail):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines("""
|
||||
*pytest.fixture()*
|
||||
*def call_fail(fail)*
|
||||
@@ -1044,7 +1044,7 @@ class TestFixtureUsages:
|
||||
reprec.assertoutcome(passed=2)
|
||||
|
||||
def test_usefixtures_seen_in_showmarkers(self, testdir):
|
||||
result = testdir.inline_runpytest("--markers")
|
||||
result = testdir.runpytest_inprocess("--markers")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*usefixtures(fixturename1*mark tests*fixtures*
|
||||
""")
|
||||
@@ -1311,7 +1311,7 @@ class TestAutouseDiscovery:
|
||||
conftest.move(a.join(conftest.basename))
|
||||
a.join("test_something.py").write("def test_func(): pass")
|
||||
b.join("test_otherthing.py").write("def test_func(): pass")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines("""
|
||||
*1 passed*1 error*
|
||||
""")
|
||||
@@ -1765,7 +1765,7 @@ class TestFixtureMarker:
|
||||
def test_1(arg):
|
||||
pass
|
||||
""" % method)
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret != 0
|
||||
result.stdout.fnmatch_lines([
|
||||
"*ScopeMismatch*You tried*function*session*request*",
|
||||
@@ -1823,7 +1823,7 @@ class TestFixtureMarker:
|
||||
def test_mismatch(arg):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines([
|
||||
"*ScopeMismatch*",
|
||||
"*1 error*",
|
||||
@@ -1874,7 +1874,7 @@ class TestFixtureMarker:
|
||||
def test_func4(marg):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-v")
|
||||
result = testdir.runpytest_inprocess("-v")
|
||||
result.stdout.fnmatch_lines("""
|
||||
test_mod1.py::test_func[s1] PASSED
|
||||
test_mod2.py::test_func2[s1] PASSED
|
||||
@@ -1926,7 +1926,7 @@ class TestFixtureMarker:
|
||||
def test_3(self):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-vs")
|
||||
result = testdir.runpytest_inprocess("-vs")
|
||||
result.stdout.fnmatch_lines("""
|
||||
test_class_ordering.py::TestClass2::test_1[1-a] PASSED
|
||||
test_class_ordering.py::TestClass2::test_1[2-a] PASSED
|
||||
@@ -2017,7 +2017,7 @@ class TestFixtureMarker:
|
||||
def test_finish():
|
||||
assert not l
|
||||
""")
|
||||
result = testdir.inline_runpytest("-v")
|
||||
result = testdir.runpytest_inprocess("-v")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*3 passed*
|
||||
""")
|
||||
@@ -2047,7 +2047,7 @@ class TestFixtureMarker:
|
||||
def test_browser(browser):
|
||||
assert browser['visited'] is True
|
||||
"""))
|
||||
reprec = testdir.inline_runpytest("-s")
|
||||
reprec = testdir.runpytest_inprocess("-s")
|
||||
for test in ['test_browser']:
|
||||
reprec.stdout.fnmatch_lines('*Finalized*')
|
||||
|
||||
@@ -2258,7 +2258,7 @@ class TestFixtureMarker:
|
||||
def test_foo(fix):
|
||||
assert 1
|
||||
""")
|
||||
res = testdir.inline_runpytest('-v')
|
||||
res = testdir.runpytest_inprocess('-v')
|
||||
res.stdout.fnmatch_lines([
|
||||
'*test_foo*alpha*',
|
||||
'*test_foo*beta*'])
|
||||
@@ -2275,7 +2275,7 @@ class TestFixtureMarker:
|
||||
def test_foo(fix):
|
||||
assert 1
|
||||
""")
|
||||
res = testdir.inline_runpytest('-v')
|
||||
res = testdir.runpytest_inprocess('-v')
|
||||
res.stdout.fnmatch_lines([
|
||||
'*test_foo*alpha*',
|
||||
'*test_foo*beta*'])
|
||||
@@ -2335,7 +2335,7 @@ class TestErrors:
|
||||
def test_something(gen):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret != 0
|
||||
result.stdout.fnmatch_lines([
|
||||
"*def gen(qwe123):*",
|
||||
@@ -2361,7 +2361,7 @@ class TestErrors:
|
||||
def test_3():
|
||||
assert l[0] != l[1]
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
result.stdout.fnmatch_lines("""
|
||||
*ERROR*teardown*test_1*
|
||||
*KeyError*
|
||||
@@ -2381,7 +2381,7 @@ class TestErrors:
|
||||
def test_something():
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest()
|
||||
result = testdir.runpytest_inprocess()
|
||||
assert result.ret != 0
|
||||
result.stdout.fnmatch_lines([
|
||||
"*def gen(qwe123):*",
|
||||
@@ -2395,7 +2395,7 @@ class TestShowFixtures:
|
||||
assert config.option.showfixtures
|
||||
|
||||
def test_show_fixtures(self, testdir):
|
||||
result = testdir.inline_runpytest("--fixtures")
|
||||
result = testdir.runpytest_inprocess("--fixtures")
|
||||
result.stdout.fnmatch_lines([
|
||||
"*tmpdir*",
|
||||
"*temporary directory*",
|
||||
@@ -2403,7 +2403,7 @@ class TestShowFixtures:
|
||||
)
|
||||
|
||||
def test_show_fixtures_verbose(self, testdir):
|
||||
result = testdir.inline_runpytest("--fixtures", "-v")
|
||||
result = testdir.runpytest_inprocess("--fixtures", "-v")
|
||||
result.stdout.fnmatch_lines([
|
||||
"*tmpdir*--*tmpdir.py*",
|
||||
"*temporary directory*",
|
||||
@@ -2420,7 +2420,7 @@ class TestShowFixtures:
|
||||
def arg1():
|
||||
""" hello world """
|
||||
''')
|
||||
result = testdir.inline_runpytest("--fixtures", p)
|
||||
result = testdir.runpytest_inprocess("--fixtures", p)
|
||||
result.stdout.fnmatch_lines("""
|
||||
*tmpdir
|
||||
*fixtures defined from*
|
||||
@@ -2442,7 +2442,7 @@ class TestShowFixtures:
|
||||
def test_hello():
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("--fixtures")
|
||||
result = testdir.runpytest_inprocess("--fixtures")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*tmpdir*
|
||||
*fixtures defined from*conftest*
|
||||
@@ -2468,7 +2468,7 @@ class TestShowFixtures:
|
||||
|
||||
"""
|
||||
''')
|
||||
result = testdir.inline_runpytest("--fixtures", p)
|
||||
result = testdir.runpytest_inprocess("--fixtures", p)
|
||||
result.stdout.fnmatch_lines("""
|
||||
* fixtures defined from test_show_fixtures_trimmed_doc *
|
||||
arg2
|
||||
@@ -2496,7 +2496,7 @@ class TestContextManagerFixtureFuncs:
|
||||
print ("test2 %s" % arg1)
|
||||
assert 0
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*setup*
|
||||
*test1 1*
|
||||
@@ -2519,7 +2519,7 @@ class TestContextManagerFixtureFuncs:
|
||||
def test_2(arg1):
|
||||
print ("test2 %s" % arg1)
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*setup*
|
||||
*test1 1*
|
||||
@@ -2537,7 +2537,7 @@ class TestContextManagerFixtureFuncs:
|
||||
def test_1(arg1):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*pytest.fail*setup*
|
||||
*1 error*
|
||||
@@ -2553,7 +2553,7 @@ class TestContextManagerFixtureFuncs:
|
||||
def test_1(arg1):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*pytest.fail*teardown*
|
||||
*1 passed*1 error*
|
||||
@@ -2569,7 +2569,7 @@ class TestContextManagerFixtureFuncs:
|
||||
def test_1(arg1):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*fixture function*
|
||||
*test_yields*:2*
|
||||
@@ -2585,7 +2585,7 @@ class TestContextManagerFixtureFuncs:
|
||||
def test_1(arg1):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*yield_fixture*requires*yield*
|
||||
*yield_fixture*
|
||||
@@ -2601,7 +2601,7 @@ class TestContextManagerFixtureFuncs:
|
||||
def test_1(arg1):
|
||||
pass
|
||||
""")
|
||||
result = testdir.inline_runpytest("-s")
|
||||
result = testdir.runpytest_inprocess("-s")
|
||||
result.stdout.fnmatch_lines("""
|
||||
*fixture*cannot use*yield*
|
||||
*def arg1*
|
||||
|
||||
Reference in New Issue
Block a user