zope.testbrowser 扩展
项目描述
为Zope 3 testbrowser提供的扩展
此软件包旨在提供Zope 3 testbrowser的扩展版本。特别是那些引入对外部产品依赖的扩展,例如lxml。
扩展:lxml支持
所有HTML页面都解析并提供为元素树。
扩展的testbrowser
此软件包为zope.testbrowser提供了一些扩展。这些扩展不包括在核心中,因为它们有额外的依赖项,例如lxml。
需求
lxml
etree支持
扩展的测试浏览器允许使用lxml(如果内容类型为text/html或text/xml)将请求结果解析为etree。
这有助于使用XPath和相关XML技术等执行更详细的网页分析。
示例
>>> from z3c.etestbrowser.testing import ExtendedTestBrowser >>> browser = ExtendedTestBrowser() >>> browser.open("https://127.0.0.1/") >>> print(browser.contents) <!DOCTYPE ...> ... </html> >>> browser.etree <Element html at ...> >>> browser.etree.xpath('//body') [<Element body at ...>]
严格的XML
可以强制测试浏览器使用xml解析器
>>> browser.xml_strict False >>> browser.xml_strict = True >>> browser.open("https://127.0.0.1/") >>> browser.etree <Element {http://www.w3.org/1999/xhtml}html at ...> >>> browser.etree.xpath( ... '//html:body', namespaces={'html': 'http://www.w3.org/1999/xhtml'}) [<Element {http://www.w3.org/1999/xhtml}body at ...>]
LXML Unicode支持
libxml2的一些版本可能无法正确解释UTF-8编码的字符串。我们为此提供了一个解决方案。让我们看看一个包含德语重音符号的视图。
>>> browser.xml_strict = False >>> browser.open('https://127.0.0.1/lxml.html') >>> browser.etree.xpath("//span")[0].text == u'K\xfcgelblitz.' True
无效的XML/HTML响应
包含无效XML/HTML内容的响应将在访问etree或normalized_contents属性时导致错误,但适用于一般的TestBrowser使用。
>>> browser.open("https://127.0.0.1/empty.html") >>> browser.contents '' >>> browser.etree Traceback (most recent call last): ValueError: ... >>> browser.normalized_contents Traceback (most recent call last): ValueError: ...
HTML/XML规范化
扩展测试浏览器允许输出HTML和XML的标准化形式,这使得在测试时,当不重要细节(如空白)发生变化时,测试HTML或XML示例变得更容易。
>>> browser.open('https://127.0.0.1/funny.html') >>> print(browser.contents) <html> <head> <title>Foo</title> </head> <body> <h1> Title </h1> </body> </html> <BLANKLINE>
与
>>> print(browser.normalized_contents) <html> <head> <title>Foo</title> </head> <body> <h1> Title </h1> </body> </html>
在互联网上使用testbrowser
z3c.etestbrowser.browser模块公开了一个ExtendedTestBrowser类,该类模拟了一个类似于Mozilla Firefox或IE的网页浏览器。
>>> from z3c.etestbrowser.browser import ExtendedTestBrowser >>> browser = ExtendedTestBrowser()
它可以发送任意头信息;这有助于设置语言值,因此您的测试可以按照您预期的格式输出值,如果您依赖于zope.i18n基于区域设置的格式化或类似方法。
>>> browser.addHeader('Accept-Language', 'en-US')
浏览器可以打开网页。
>>> browser.open('https://www.w3.org') >>> print(browser.contents) <!DOCTYPE html ... ...The World Wide Web Consortium (W3C) is an international community...
变更记录
4.0 (2023-02-21)
停止支持Python 2.7,3.5,3.6。
添加对Python 3.8,3.9,3.10,3.11的支持。
停止支持已弃用的python setup.py test。
停止支持已弃用的z3c.etestbrowser.wsgi。
3.0.1 (2019-03-05)
修复.wsgi中的弃用声明。
3.0 (2019-03-04)
不兼容的向后变更
添加对zope.testbrowser >= 5.0的支持,它使用WSGI,这要求测试更新到WSGI。
弃用使用WSGI的z3c.etestbrowser.wsgi,因为它现在是默认值。
停止支持在版本2.0.0中引入的zope.app.testing附加组件,因为它已停止对其特殊zope.testbrowser的支持。
停止支持.browser.ExtendedTestBrowser.pretty_print,因为其需求已被弃用或甚至从Python的StdLib中删除。
将代码适应更新的lxml版本,这些版本在字符串为空时不再引发异常。现在我们在这种情况下引发一个ValueError。
功能
添加对Python 3.6至3.7的支持。
2.0.1 (2015-11-09)
修复了over_the_wire.txt中的错误。
2.0.0 (2011-10-13)
不再依赖于zope.app.wsgi,而是依赖于zope.testbrowser >= 4.0作为testbrowser的WSGI风味。
添加了zope.app.testing附加组件。如果您想在z3c.etestbrowser.testing中使用浏览器,则应使用此附加组件。(那里使用的基测试浏览器已从zope.testbrowser移动到zope.app.testing,版本4.0。)
将z3c.etestbrowser.wsgi.ExtendedTestBrowser重命名为Browser,以与zope.testbrowser保持一致,但为了向后兼容,仍保留ExtendedTestBrowser。
1.5.0 (2010-08-22)
添加了z3c.etestbrowser.wsgi.ExtendedTestBrowser,这是一个变体,可以在使用zope.app.wsgi.testlayer设置测试层时使用。
1.4.0 (2010-07-08)
考虑了zope.securitypolicy重构和zope.testing.doctest弃用。
添加了z3c.etestbrowser.browser.ExtendedTestBrowser,这是一个变体,它使用HTTP而不是直接与发布者交谈,与发布者交谈,请参阅在互联网上使用testbrowser。
1.3.1 (2010-01-18)
将doctest添加到long_description中,以便在pypi上显示。
1.3.0 (2009-07-23)
将包升级到lxml 2.2。
修复了与normalized_contents相关的错误,这会破坏如果内容无法解析为HTML/XML,则测试浏览器的open函数。
1.2.0 (2008-05-29)
添加了normalized_contents属性,该属性重新缩进并规范化文档的etree结构,并允许在doctests中更容易地阅读HTML/XML示例。
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
z3c.etestbrowser-4.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8411732ad70cf1e2bdd49196eb067d0545aa12c31a248933bfb5e22b4904bdec |
|
MD5 | f59c3fb6438aaea95dabe7559ff58692 |
|
BLAKE2b-256 | 672d9e3fe4ac473d8b9ccf1a2246bef49bb59cc79976fd197a6f0c713fd432e9 |
z3c.etestbrowser-4.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 07985109b99f8b984380e3e4b65be522371128c266e08ca0332339772ff4aeb6 |
|
MD5 | 1f46ae050e1c65bc686f7ba6ff8872e0 |
|
BLAKE2b-256 | 20f2b52290e8d22c416364a4d3c24790604946fda0d5c19e84ebd6ff47d8f86a |