make py lib a self-contained directory again
- move and merge _py/ bits back to py/ - fixes all around --HG-- branch : trunk
This commit is contained in:
136
testing/plugin/test_pytest_runner_xunit.py
Normal file
136
testing/plugin/test_pytest_runner_xunit.py
Normal file
@@ -0,0 +1,136 @@
|
||||
#
|
||||
# test correct setup/teardowns at
|
||||
# module, class, and instance level
|
||||
|
||||
def test_module_and_function_setup(testdir):
|
||||
reprec = testdir.inline_runsource("""
|
||||
modlevel = []
|
||||
def setup_module(module):
|
||||
assert not modlevel
|
||||
module.modlevel.append(42)
|
||||
|
||||
def teardown_module(module):
|
||||
modlevel.pop()
|
||||
|
||||
def setup_function(function):
|
||||
function.answer = 17
|
||||
|
||||
def teardown_function(function):
|
||||
del function.answer
|
||||
|
||||
def test_modlevel():
|
||||
assert modlevel[0] == 42
|
||||
assert test_modlevel.answer == 17
|
||||
|
||||
class TestFromClass:
|
||||
def test_module(self):
|
||||
assert modlevel[0] == 42
|
||||
assert not hasattr(test_modlevel, 'answer')
|
||||
""")
|
||||
rep = reprec.matchreport("test_modlevel")
|
||||
assert rep.passed
|
||||
rep = reprec.matchreport("test_module")
|
||||
assert rep.passed
|
||||
|
||||
def test_class_setup(testdir):
|
||||
reprec = testdir.inline_runsource("""
|
||||
class TestSimpleClassSetup:
|
||||
clslevel = []
|
||||
def setup_class(cls):
|
||||
cls.clslevel.append(23)
|
||||
|
||||
def teardown_class(cls):
|
||||
cls.clslevel.pop()
|
||||
|
||||
def test_classlevel(self):
|
||||
assert self.clslevel[0] == 23
|
||||
|
||||
class TestInheritedClassSetupStillWorks(TestSimpleClassSetup):
|
||||
def test_classlevel_anothertime(self):
|
||||
assert self.clslevel == [23]
|
||||
|
||||
def test_cleanup():
|
||||
assert not TestSimpleClassSetup.clslevel
|
||||
assert not TestInheritedClassSetupStillWorks.clslevel
|
||||
""")
|
||||
reprec.assertoutcome(passed=1+2+1)
|
||||
|
||||
|
||||
def test_method_setup(testdir):
|
||||
reprec = testdir.inline_runsource("""
|
||||
class TestSetupMethod:
|
||||
def setup_method(self, meth):
|
||||
self.methsetup = meth
|
||||
def teardown_method(self, meth):
|
||||
del self.methsetup
|
||||
|
||||
def test_some(self):
|
||||
assert self.methsetup == self.test_some
|
||||
|
||||
def test_other(self):
|
||||
assert self.methsetup == self.test_other
|
||||
""")
|
||||
reprec.assertoutcome(passed=2)
|
||||
|
||||
def test_method_generator_setup(testdir):
|
||||
reprec = testdir.inline_runsource("""
|
||||
class TestSetupTeardownOnInstance:
|
||||
def setup_class(cls):
|
||||
cls.classsetup = True
|
||||
|
||||
def setup_method(self, method):
|
||||
self.methsetup = method
|
||||
|
||||
def test_generate(self):
|
||||
assert self.classsetup
|
||||
assert self.methsetup == self.test_generate
|
||||
yield self.generated, 5
|
||||
yield self.generated, 2
|
||||
|
||||
def generated(self, value):
|
||||
assert self.classsetup
|
||||
assert self.methsetup == self.test_generate
|
||||
assert value == 5
|
||||
""")
|
||||
reprec.assertoutcome(passed=1, failed=1)
|
||||
|
||||
def test_func_generator_setup(testdir):
|
||||
reprec = testdir.inline_runsource("""
|
||||
import sys
|
||||
|
||||
def setup_module(mod):
|
||||
print ("setup_module")
|
||||
mod.x = []
|
||||
|
||||
def setup_function(fun):
|
||||
print ("setup_function")
|
||||
x.append(1)
|
||||
|
||||
def teardown_function(fun):
|
||||
print ("teardown_function")
|
||||
x.pop()
|
||||
|
||||
def test_one():
|
||||
assert x == [1]
|
||||
def check():
|
||||
print ("check")
|
||||
sys.stderr.write("e\\n")
|
||||
assert x == [1]
|
||||
yield check
|
||||
assert x == [1]
|
||||
""")
|
||||
rep = reprec.matchreport("test_one", names="pytest_runtest_logreport")
|
||||
assert rep.passed
|
||||
|
||||
def test_method_setup_uses_fresh_instances(testdir):
|
||||
reprec = testdir.inline_runsource("""
|
||||
class TestSelfState1:
|
||||
memory = []
|
||||
def test_hello(self):
|
||||
self.memory.append(self)
|
||||
|
||||
def test_afterhello(self):
|
||||
assert self != self.memory[0]
|
||||
""")
|
||||
reprec.assertoutcome(passed=2, failed=0)
|
||||
|
||||
Reference in New Issue
Block a user