微屈服夹具

yieldfixture的Python项目详细描述


https://travis-ci.org/podhmo/yieldfixture.svg?branch=master

如何使用

fromyieldfixtureimportcreaterun,yield_fixture=create()@yield_fixturedeff():print(">>> f")yield1print(">>> f")@yield_fixturedefg():print("  >>> g")yield2print("  >>> g")@rundefuse_it(x,y):print("{} + {} = {}".format(x,y,x+y))

输出

>>> f
  >>> g
1 + 2 = 3
  >>> g
>>> f

上下文

fromyieldfixtureimportcreate,with_contextrun,yield_fixture=create()@yield_fixture@with_contextdeff(ctx):i=ctx["i"]=0print("{}>>> f".format("  "*i))yield1print("{}>>> f".format("  "*i))@yield_fixture@with_contextdefg(ctx):i=ctx["i"]=ctx["i"]+1print("{}>>> g".format("  "*i))yield2print("{}>>> g".format("  "*i))@rundefuse_it(x,y,*,i=0):print("{}{} + {} = {}".format("  "*(i+1),x,y,x+y))

输出

>>> f
  >>> g
    1 + 2 = 3
  >>> g
>>> f

当引发异常时

fromyieldfixtureimportcreate,with_contextrun,yield_fixture=create()@yield_fixture@with_contextdeff(ctx):i=ctx["i"]=0print("{}>>> f".format("  "*i))yield1print("{}>>> f".format("  "*i))@yield_fixture@with_contextdefg(ctx):i=ctx["i"]=ctx["i"]+1print("{}>>> g".format("  "*i))yield2print("{}>>> g".format("  "*i))@rundefuse_it(x,y,*,i=0):print("{}{} + {} = {}".format("  "*(i+1),x,y,x+y))1/0

输出

>>> f
  >>> g
    1 + 2 = 3
  >>> g
>>> f
Traceback (most recent call last):
  File "examples/02withexception.py", line 24, in <module>
    def use_it(x, y, *, i=0):
  File "$HOME/vboxshare/venvs/my3/yieldfixture/yieldfixture/__init__.py", line 125, in run_with
    return fn(*ctx.args, **ctx.kwargs)
  File "examples/02withexception.py", line 26, in use_it
    1 / 0
ZeroDivisionError: division by zero

选择性夹具激活

fromyieldfixtureimportcreate,with_contextrun,yield_fixture=create()@yield_fixture@with_contextdeff(ctx):i=ctx["i"]=ctx.get("i",-1)+1print("{}>>> f".format("  "*i))yield1print("{}>>> f".format("  "*i))@yield_fixture@with_contextdefg(ctx):i=ctx["i"]=ctx.get("i",-1)+1print("{}>>> g".format("  "*i))yield2print("{}>>> g".format("  "*i))@rundefuse_it(x,y,*,i=0):print("{}{} + {} = {}".format("  "*(i+1),x,y,x+y))@run([g,f])defuse_it2(x,y,*,i=0):print("{}{} + {} = {}".format("  "*(i+1),x,y,x+y))

输出

>>> f
  >>> g
    1 + 2 = 3
  >>> g
>>> f
>>> g
  >>> f
    2 + 1 = 3
  >>> f
>>> g

0.3.2

  • 只有元组被视为多个值

0.3.1

  • 调度挂钩

0.3.0

  • 一些内部重构(主要是重命名方法)

0.2.0

  • 绝对要进行拆卸操作

0.1.1

  • 首次发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android Java在活动之间传递值   java当实体中存在关系时,我可以只使用实体的id而不是从DB中获取实体吗?   bouncycastle Java运行SSHD服务器错误未找到类定义   java SWT/Swing>Threads n'Hell   java多线程数据库读取   java如何在Eclipse中轻松提交Git   java在哪里可以找到字符串相等比较的一组特定排序规则?   无连接表的java单向单域关系   java扩展三角文件   java spring。杰克逊。序列化。failonemptybeans   java无法加载请求的类:oracle。jdbc。驾驶员OracleDriver   java通过数组进行索引循环并打印出元素?   找不到eclipse错误类中的java提交Hadoop作业   Java:随机设定种子   java片段、异步任务和侦听器   java在分号后使用{}