Edgewall Software
Modify

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#12777 closed defect (wontfix)

Functional tests fail with lxml 3.7.3 and twill 1.8: lxml.etree.XMLSyntaxError

Reported by: anonymous Owned by:
Priority: normal Milestone:
Component: general Version:
Severity: normal Keywords:
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

TracDev/FunctionalTests#Windowsspecificdependencies points out:

For lxml, the latest version is not always easy-installable for Windows, so you will have to download a somewhat older version from PyPI:

http://pypi.python.org/pypi/lxml/2.3

But pip install lxml==2.3 fails, while pip install lxml successfully installs lxml 3.7.3.

But then (with twill 1.8) functional tests fail:

C:\Trac>python trac\tests\functional\__init__.py
Traceback (most recent call last):
  File "trac\tests\functional\__init__.py", line 224, in <module>
    unittest.main(defaultTest='test_suite')
  File "c:\Python27\Lib\unittest\main.py", line 95, in __init__
    self.runTests()
  File "c:\Python27\Lib\unittest\main.py", line 232, in runTests
    self.result = testRunner.run(self.test)
  File "c:\Python27\Lib\unittest\runner.py", line 151, in run
    test(result)
  File "c:\Python27\Lib\unittest\suite.py", line 70, in __call__
    return self.run(*args, **kwds)
  File "c:\Python27\Lib\unittest\suite.py", line 108, in run
    test(result)
  File "c:\Python27\Lib\unittest\suite.py", line 70, in __call__
    return self.run(*args, **kwds)
  File "C:\Trac\trac\test.py", line 254, in run
    self.setUp()
  File "trac\tests\functional\__init__.py", line 151, in setUp
    self._tester = self.tester_class(baseurl)
  File "C:\Trac\trac\tests\functional\tester.py", line 45, in __init__
    self.login('admin')
  File "C:\Trac\trac\tests\functional\tester.py", line 53, in login
    tc.follow(r"\bLogin\b")
  File "C:\Python27\lib\site-packages\twill\commands.py", line 195, in follow
    browser.follow_link(link)
  File "C:\Python27\lib\site-packages\twill\browser.py", line 152, in follow_link
    self._journey('follow_link', link)
  File "C:\Python27\lib\site-packages\twill\browser.py", line 515, in _journey
    r = self._follow_redirections(r, self._session)
  File "C:\Python27\lib\site-packages\twill\browser.py", line 469, in _follow_redirections
    redirected, url = self._test_for_meta_redirections(r)
  File "C:\Python27\lib\site-packages\twill\browser.py", line 445, in _test_for_meta_redirections
    html_tree = html.fromstring(r.text)
  File "C:\Python27\lib\site-packages\lxml\html\__init__.py", line 876, in fromstring
    doc = document_fromstring(html, parser=parser, base_url=base_url, **kw)
  File "C:\Python27\lib\site-packages\lxml\html\__init__.py", line 762, in document_fromstring
    value = etree.fromstring(html, parser, **kw)
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src\lxml\lxml.etree.c:79010)
  File "src/lxml/parser.pxi", line 1848, in lxml.etree._parseMemoryDocument (src\lxml\lxml.etree.c:118341)
  File "src/lxml/parser.pxi", line 1729, in lxml.etree._parseDoc (src\lxml\lxml.etree.c:116899)
  File "src/lxml/parser.pxi", line 1063, in lxml.etree._BaseParser._parseUnicodeDoc (src\lxml\lxml.etree.c:110886)
  File "src/lxml/parser.pxi", line 595, in lxml.etree._ParserContext._handleParseResultDoc (src\lxml\lxml.etree.c:105109)
  File "src/lxml/parser.pxi", line 706, in lxml.etree._handleParseResult (src\lxml\lxml.etree.c:106817)
  File "src/lxml/parser.pxi", line 646, in lxml.etree._raiseParseError (src\lxml\lxml.etree.c:105963)
  File "<string>", line 0
lxml.etree.XMLSyntaxError

In html_tree = html.fromstring(r.text) the parameter r.text is the empty string ''.

C:\Trac>python.exe
>>> import lxml.html
>>> lxml.html.fromstring('')
...
lxml.etree.XMLSyntaxError

With pip install twill==0.9.1 it works.

Attachments (0)

Change History (5)

comment:1 by Jun Omae, 7 years ago

Resolution: wontfix
Status: newclosed

twill 1.8 is broken. See [14792] (#11642)

comment:2 by Jun Omae, 7 years ago

Added twill==0.9.1 in TracDev/FunctionalTests@20. See also trunk/.travis.yml@15409.

in reply to:  description comment:3 by Jun Omae, 7 years ago

Replying to 匿名:

TracDev/FunctionalTests#Windowsspecificdependencies points out:

For lxml, the latest version is not always easy-installable for Windows, so you will have to download a somewhat older version from PyPI:

http://pypi.python.org/pypi/lxml/2.3

But pip install lxml==2.3 fails, while pip install lxml successfully installs lxml 3.7.3.

That page says that you will have to download a somewhat older version from PyPI. Not using pip.

comment:4 by anonymous, 7 years ago

Sorry I edited TracDev/FunctionalTests@21 before noticing your reply. Why not using pip? What should be done with the downloaded older version? Must easy-install from local egg be used?

comment:5 by Ryan J Ollos, 7 years ago

You can use pip as far as I'm aware. Just use a version specifier: pip install twill==0.9.1.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The ticket will remain with no owner.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from (none) to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.