跳转到主要内容

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 (13.3 kB 查看哈希值)

上传时间 源代码

构建分发

z3c.etestbrowser-4.0-py3-none-any.whl (13.9 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面