def test_generative_simple(): |
o = tmpdir.ensure('generativetest', dir=1) |
tfile = o.join('test_generative.py') |
tfile.write(py.code.Source(""" |
from __future__ import generators # python2.2! |
def func1(arg, arg2): |
assert arg == arg2 |
|
def test_gen(): |
yield func1, 17, 3*5 |
yield func1, 42, 6*7 |
|
class TestGenMethods: |
def test_gen(self): |
yield func1, 17, 3*5 |
yield func1, 42, 6*7 |
""")) |
col = py.test.collect.Module(tfile) |
l = col.run() |
assert len(l) == 2 |
l = col.multijoin(l) |
|
generator = l[0] |
assert isinstance(generator, py.test.collect.Generator) |
l2 = generator.run() |
assert len(l2) == 2 |
l2 = generator.multijoin(l2) |
assert isinstance(l2[0], py.test.collect.Function) |
assert isinstance(l2[1], py.test.collect.Function) |
assert l2[0].name == '[0]' |
assert l2[1].name == '[1]' |
|
assert l2[0].obj.func_name == 'func1' |
|
-> classlist = l[1].run() |
assert len(classlist) == 1 |
classlist = l[1].multijoin(classlist) |
cls = classlist[0] |
generator = cls.join(cls.run()[0]) |
assert isinstance(generator, py.test.collect.Generator) |
l2 = generator.run() |
assert len(l2) == 2 |
l2 = generator.multijoin(l2) |
assert isinstance(l2[0], py.test.collect.Function) |
assert isinstance(l2[1], py.test.collect.Function) |
assert l2[0].name == '[0]' |
assert l2[1].name == '[1]' |