=====================================================

zc.customdoctests的Python项目详细描述


doctest(以及最近的manuel)提供了使用自定义doctest的钩子 解析程序。zc.customdoctests有助于利用它来支持其他 语言,如javascript:

js> function double (x) {
...     return x*2;
... }
js> double(2)
4

有了manuel,它 促进混合多种语言的doctest,例如python, javascript和sh。

Detailed documentation

Custom doctest parsers

customdoctests在创建自定义 doctest解析器的工作方式非常类似于常规doctest,但是 使用另一种方法来评估示例。使用它,你打电话 zc.customdoctests.doctestparser并传递以下任何选项:

ps1

第一行提示符,默认为'>>>'

这必须是与3个字符完全匹配的正则表达式。

(请注意,您不能覆盖第二行提示。)

注释前缀
注释前缀正则表达式,默认为“”。
变换
用于转换示例源的函数,默认为 无操作功能。

js模块支持在doctests中使用javascript python-spidermonkey。它提供了一些 定义自定义doctest解析器的示例。

Javascript and Python-Spidermonkey support

要将此连接起来,您可以使用以下内容:

import doctest, zc.customdoctests.js

test_suite = doctest.DocTestSuite(
    parser=zc.customdoctests.js.parser,
    setUp=zc.customdoctests.js.spidermonkeySetUp)

或者,使用manuel:

test_suite = manuel.testing.TestSuite(
    manuel.doctest.Manuel(parser=zc.customdoctests.js.parser) +
    manuel.doctest.Manuel(parser=zc.customdoctests.js.eq_parser) +
    manuel.doctest.Manuel() +
    manuel.capture.Manuel(),
    'spidermonkey.txt',
    setUp=zc.customdoctests.js.spidermonkeySetUp)

注意,zc.customdoctests不需要spidermonkey,所以您需要 如果您想使用SpiderMonkey,请单独安装它。

使用manuel的一个优点是可以在 同样的文件。在上面的示例中,2个javascript示例 语法(如下所述)和标准doctest语法是 支持。此文档与manuel一起运行,以允许所有3个语法。

在本文档的其余部分中,我们将展示javascript的示例 用于支持javascript和 集成javascript和python。

javascript doctests使用“js>;”提示(如rhino和 spidermonkey解释器):

js> 2 +
... 'Hi world' // doctest: +ELLIPSIS
u'2Hi...

赋值返回值。这会产生恼人的输出 在博士学位中:

js> ob = {a: 1, b: 2}
[object Object]

如果你使用manuel,你可以使用js来避免这个问题!:

js! x = 3

它抑制表达式值。

加载和打印函数(类似于rhino中的函数)是 提供。例如,给定一个javascript文件,double.js:

function double (x) {
    return x*2;
}

我们可以加载文件:

js> load('double.js')
js> double(10)
20

我们可以打印值:

js> print('Hi')
Hi

python对象提供对open函数和os的访问 模块:

js> python.os.path.exists('double.js')
True

js! f = python.open('double.js')
js> print(f.read())
function double (x) {
    return x*2;
}
<BLANKLINE>

js> f.close()

如果您使用manuel,可以混合使用python和javascript 示例和有许多api可帮助使用python和 一起使用javascript。

有一个add_js_global函数可以从python复制数据:

>>> add_js_global('y', 1)

js> y
1

还有一个js对象提供对js globals的属性访问:

>>> js.x
3

>>> js.z = 4

js> z
4

您也可以调用它来运行js代码,而不返回结果值:

>>> js('a = x + y')

js> a
4

Changelog

1.0.1 (2013-02-14)

  • 修复了PYPI页上的RestructedText错误。

1.0.0 (2013-02-13)

  • 增加了Python3.3支持。
  • 清除setup.py,添加tox.ini和manifest。

0.1.0 (2011-05-19)

  • 初始版本

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

推荐PyPI第三方库


热门话题
java从其BlobKey获取Google云存储文件   java*Vert。x*:如何在同步代码中处理   java HikaiCP:如何查看连接池大小?   java解析依赖项的重复版本   java如何删除TableColumn中的HTML标记   Maven依赖项找不到sendgridjava的zip文件   Java可用的垃圾收集算法   java IntelliJ git集成技巧和技巧   java如何在安卓中实现应用内支付?   java如何在安卓中从whatsapp获取pdf文件数据到我的应用程序?   有没有一种方法可以使用JavaScript(Vue.js)将Java应用程序(游戏)实现到网站中   使用SWT浏览器进行java-to-javascript通信的问题   java在Android手机上更改字体大小后启用textView内的滚动条