-
Project description
how to use
from yieldfixture import create
run, yield_fixture = create()
@yield_fixture
def f():
print(">>> f")
yield 1
print(">>> f")
@yield_fixture
def g():
print(" >>> g")
yield 2
print(" >>> g")
@run
def use_it(x, y):
print("{} + {} = {}".format(x, y, x + y))
output
>>> f
>>> g
1 + 2 = 3
>>> g
>>> f
with context
from yieldfixture import create, with_context
run, yield_fixture = create()
@yield_fixture
@with_context
def f(ctx):
i = ctx["i"] = 0
print("{}>>> f".format(" " * i))
yield 1
print("{}>>> f".format(" " * i))
@yield_fixture
@with_context
def g(ctx):
i = ctx["i"] = ctx["i"] + 1
print("{}>>> g".format(" " * i))
yield 2
print("{}>>> g".format(" " * i))
@run
def use_it(x, y, *, i=0):
print("{}{} + {} = {}".format(" " * (i + 1), x, y, x + y))
output
>>> f
>>> g
1 + 2 = 3
>>> g
>>> f
when a exception is raised
from yieldfixture import create, with_context
run, yield_fixture = create()
@yield_fixture
@with_context
def f(ctx):
i = ctx["i"] = 0
print("{}>>> f".format(" " * i))
try:
yield 1
finally:
print("{}>>> f".format(" " * i))
@yield_fixture
@with_context
def g(ctx):
i = ctx["i"] = ctx["i"] + 1
print("{}>>> g".format(" " * i))
try:
yield 2
finally:
print("{}>>> g".format(" " * i))
@run
def use_it(x, y, *, i=0):
print("{}{} + {} = {}".format(" " * (i + 1), x, y, x + y))
1 / 0
output
>>> f
>>> g
1 + 2 = 3
>>> g
>>> f
Traceback (most recent call last):
File "examples/02withexception.py", line 28, in <module>
def use_it(x, y, *, i=0):
File "/Users/nao/vboxshare/venvs/my3/yieldfixture/yieldfixture/__init__.py", line 98, in run_with
return fn(*ctx.args, **ctx.kwargs)
File "examples/02withexception.py", line 30, in use_it
1 / 0
ZeroDivisionError: division by zero
selective fixture activation
from yieldfixture import create, with_context
run, yield_fixture = create()
@yield_fixture
@with_context
def f(ctx):
i = ctx["i"] = ctx.get("i", -1) + 1
print("{}>>> f".format(" " * i))
try:
yield 1
finally:
print("{}>>> f".format(" " * i))
@yield_fixture
@with_context
def g(ctx):
i = ctx["i"] = ctx.get("i", -1) + 1
print("{}>>> g".format(" " * i))
try:
yield 2
finally:
print("{}>>> g".format(" " * i))
@run
def use_it(x, y, *, i=0):
print("{}{} + {} = {}".format(" " * (i + 1), x, y, x + y))
@run([g, f])
def use_it2(x, y, *, i=0):
print("{}{} + {} = {}".format(" " * (i + 1), x, y, x + y))
output
>>> f
>>> g
1 + 2 = 3
>>> g
>>> f
>>> g
>>> f
2 + 1 = 3
>>> f
>>> g
0.1.0
first release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
yieldfixture-0.1.0.tar.gz
(3.1 kB
view hashes)
Built Distribution
Close
Hashes for yieldfixture-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d8856d76a4251eb694bce4a6e240f58a977c5a95eca2996a88561e98c1e7a04 |
|
MD5 | 2157661651d15bc867cdee26f53e887f |
|
BLAKE2b-256 | 19bd9d811d69ddcaeec9c2d0664cc4615b92b40d7a0841f1e00a80b6daf143b5 |