174 lines
4.1 KiB
Python
174 lines
4.1 KiB
Python
import py
|
|
|
|
#def setup_module(mod):
|
|
# mod.datadir = setupdatadir()
|
|
# mod.tmpdir = py.test.ensuretemp(mod.__name__)
|
|
|
|
#def setupdatadir():
|
|
# datadir = py.test.ensuretemp("datadir")
|
|
# for name in namecontent:
|
|
# getexamplefile(name)
|
|
# return datadir
|
|
|
|
def getexamplefile(basename, tmpdir=None):
|
|
if tmpdir is None:
|
|
tmpdir = py.test.ensuretemp("example")
|
|
tmpdir.ensure("__init__.py")
|
|
path = tmpdir.join(basename)
|
|
if not path.check():
|
|
path.write(py.code.Source(namecontent[basename]))
|
|
print "creating testfile", path
|
|
return path
|
|
|
|
def getexamplecollector(names, tmpdir=None):
|
|
fn = getexamplefile(names[0], tmpdir=tmpdir)
|
|
config = py.test.config._reparse([fn.dirpath()])
|
|
col = config.getfsnode(fn)
|
|
return col._getitembynames(names[1:])
|
|
|
|
namecontent = {
|
|
'syntax_error.py': "this is really not python\n",
|
|
|
|
'disabled_module.py': '''
|
|
disabled = True
|
|
|
|
def setup_module(mod):
|
|
raise ValueError
|
|
|
|
class TestClassOne:
|
|
def test_func(self):
|
|
raise ValueError
|
|
|
|
class TestClassTwo:
|
|
def setup_class(cls):
|
|
raise ValueError
|
|
def test_func(self):
|
|
raise ValueError
|
|
''',
|
|
|
|
'brokenrepr.py': '''
|
|
import py
|
|
|
|
class BrokenRepr1:
|
|
"""A broken class with lots of broken methods. Let's try to make the test framework
|
|
immune to these."""
|
|
foo=0
|
|
def __repr__(self):
|
|
raise Exception("Ha Ha fooled you, I'm a broken repr().")
|
|
|
|
class BrokenRepr2:
|
|
"""A broken class with lots of broken methods. Let's try to make the test framework
|
|
immune to these."""
|
|
foo=0
|
|
def __repr__(self):
|
|
raise "Ha Ha fooled you, I'm a broken repr()."
|
|
|
|
|
|
class TestBrokenClass:
|
|
|
|
def test_explicit_bad_repr(self):
|
|
t = BrokenRepr1()
|
|
py.test.raises(Exception, 'repr(t)')
|
|
|
|
def test_implicit_bad_repr1(self):
|
|
t = BrokenRepr1()
|
|
assert t.foo == 1
|
|
|
|
def test_implicit_bad_repr2(self):
|
|
t = BrokenRepr2()
|
|
assert t.foo == 1
|
|
''',
|
|
|
|
'failingimport.py': "import gruetzelmuetzel\n",
|
|
|
|
'test_mod.py': """
|
|
class TestA:
|
|
def test_m1(self):
|
|
pass
|
|
def test_f1():
|
|
pass
|
|
def test_g1():
|
|
yield lambda x: None, 42
|
|
""",
|
|
|
|
'file_test.py': """
|
|
def test_one():
|
|
assert 42 == 43
|
|
|
|
class TestClass(object):
|
|
def test_method_one(self):
|
|
assert 42 == 43
|
|
|
|
""",
|
|
|
|
'test_threepass.py': """
|
|
def test_one():
|
|
assert 1
|
|
|
|
def test_two():
|
|
assert 1
|
|
|
|
def test_three():
|
|
assert 1
|
|
""",
|
|
|
|
'testspecial_importerror.py': """
|
|
|
|
import asdasd
|
|
|
|
""",
|
|
|
|
'disabled.py': """
|
|
class TestDisabled:
|
|
disabled = True
|
|
def test_method(self):
|
|
pass
|
|
""",
|
|
|
|
'test_funcexamples.py': """
|
|
import py
|
|
import time
|
|
def test_funcpassed():
|
|
pass
|
|
|
|
def test_funcfailed():
|
|
raise AssertionError("hello world")
|
|
|
|
def test_funcskipped():
|
|
py.test.skip("skipped")
|
|
|
|
def test_funcprint():
|
|
print "samfing"
|
|
|
|
def test_funcprinterr():
|
|
print >>py.std.sys.stderr, "samfing"
|
|
|
|
def test_funcprintfail():
|
|
print "samfing elz"
|
|
asddsa
|
|
|
|
def test_funcexplicitfail():
|
|
py.test.fail("3")
|
|
|
|
def test_funcraisesfails():
|
|
py.test.raises(ValueError, lambda: 123)
|
|
|
|
def test_funcoptioncustom():
|
|
assert py.test.config.getvalue("custom")
|
|
|
|
def test_funchang():
|
|
import time
|
|
time.sleep(1000)
|
|
|
|
def test_funckill15():
|
|
import os
|
|
os.kill(os.getpid(), 15)
|
|
""",
|
|
|
|
'docexample.txt': """
|
|
Aha!!!!!!
|
|
=========
|
|
""",
|
|
|
|
}
|