09 2022 档案
摘要:常用系统模块 os:与操作系统交互 os.name/ os.sep/ os.linesep.: 系统名称/系统路径分隔符/系统换行符 os.mkdir()/os.makedirs(): 建立目录/建立多级目录 os.getenv("PATH"): 获取系统PATH环境变了的设置 os.curdir/
阅读全文
摘要:本系列前五篇其实已经将pluggy的流程原理等分析完了,只有PluginManager类还有几个方法的源代码没有提到,这里将这些方法拿出来简单的分析一下,因为有可能会用到,当然也有可能根本不会用这些 (1)unregister 取消注册插件 注册插件的过程都分析过了,取消注册过程就简单了,这里可以简
阅读全文
摘要:经过pluggy源码解读系列1-4的分析,已经完成插件定义、spec定义,插件注册等环节,下面就到了调用插件执行了,即hook钩子函数是如何被调用执行的,下面还是先把pluggy使用的代码放下面: import pluggy # HookspecMarker 和 HookimplMarker 实质上
阅读全文
摘要:首先还是把pluggy使用的代码放在这,前面已经分析完add_hookspecs的源代码,下面紧接着就是注册插件了 import pluggy # HookspecMarker 和 HookimplMarker 实质上是一个装饰器带参数的装饰器类,作用是给函数增加额外的属性设置 hookspec =
阅读全文
摘要:pluggy使用举例子代码: 下面这个例子中前面已经分析完了,下面的步骤就是pm.add_hookspecs(MySpec) 这个一步骤了,同样,这个add_hookspecs方法也是PluginManager类的一个方法,下面就针对这个函数进行分析 import pluggy # Hookspec
阅读全文
摘要:PluginManager类简介 首先还是把pluggy的小例子放在这: import pluggy # HookspecMarker 和 HookimplMarker 实质上是一个装饰器带参数的装饰器类,作用是给函数增加额外的属性设置 hookspec = pluggy.HookspecMarke
阅读全文
摘要:简介 pluggy是一个非常优秀的插件系统,它是理解pytest的核心,只有理解了pluggy的原理,才能更好的理解和使用pytest,否则见到了pytest的很多应用都会感觉很难理解 pluggy插件总共的代码量不足一千行,而实现的功能却是如此的强大和好用,这不由得让我们对pytest的源码实现充
阅读全文