GitHub user Kami opened a pull request: https://github.com/apache/libcloud/pull/763
Run tests with lxml on Travis CI This pull request builds on top of #762. That PR indicated that using lxml is broken in some scenarios so first step should be to get tests to run with lxml on Travis. Right now those tests are failing in some cases, but I marked them as allowed to fail on Travis so they won't cause the whole build to fail. You can merge this pull request into a Git repository by running: $ git pull https://github.com/Kami/libcloud travis_tests_with_lxml Alternatively you can review and apply these changes as the patch at: https://github.com/apache/libcloud/pull/763.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #763 ---- commit 48a02a628a05424ce88affe88f8b52203f8f8adb Author: Peter Schmidt <pe...@peterjs.com> Date: 2016-04-18T01:44:24Z Add py3.5-lxml to tox.ini So I can construct a bytes vs str test case that fails reproducibly under Python 3. Turned out there were already several so no need: ERROR: test_create_group_location_does_not_exist (libcloud.test.compute.test_abiquo.AbiquoNodeDriverTest) ...(not all 595 errors shown) ERROR: test_update_target (libcloud.test.backup.test_dimensiondata.DimensionDataTests) ERROR: test_update_target_DEFAULT (libcloud.test.backup.test_dimensiondata.DimensionDataTests) ERROR: test_update_target_STR (libcloud.test.backup.test_dimensiondata.DimensionDataTests) FAIL: test_wait_until_running_running_multiple_nodes_have_same_uuid (libcloud.test.compute.test_deployment.DeploymentTests) FAIL: test_wait_until_running_running_node_missing_from_list_nodes (libcloud.test.compute.test_deployment.DeploymentTests) FAIL: test_wait_until_running_timeout (libcloud.test.compute.test_deployment.DeploymentTests) FAIL: test_ex_set_control_access (libcloud.test.compute.test_vcloud.VCloud_1_5_Tests) FAILED (failures=4, errors=595, skipped=14) Others can let me know if it's a worthwhile trade off to add lxml testing against all environments. commit 99b420d01bd83b278860bb473972bbe96ff3cdbe Author: Peter Schmidt <pe...@peterjs.com> Date: 2016-04-18T02:07:52Z Add Python 3.5-lxml to travis Worked first time :) commit 8143e793bb6af1526c1d74ea7441ba612e82d048 Author: Peter Schmidt <pe...@peterjs.com> Date: 2016-04-18T06:39:50Z Try to create lxml versions of all tox envs commit 81c7035a7af969221b42579971b4d87de4626a12 Author: Peter Schmidt <pe...@peterjs.com> Date: 2016-04-18T07:00:53Z Actually spell out using both builtin xml and lxml Avoids my premature optimisation of assuming it worked for Python 2.x, as I find "FAILED (failures=1, errors=52, skipped=14)" under Python 2.7 Not actually tested against pypy (pypypy? or pypypy3?) Looks like a design decision about whether lxml should be: a) officially supported b) dropped entirely c) replaced with alternatives like defusedxml will be required, unless someone can suggest a workaround. (libcloud) pzrq@Peters-Mac-mini:~/Projects/libcloud$ tox GLOB sdist-make: /Users/pzrq/Projects/libcloud/setup.py py2.5 create: /Users/pzrq/Projects/libcloud/.tox/py2.5 ERROR: InterpreterNotFound: python2.5 py2.6 inst-nodeps: /Users/pzrq/Projects/libcloud/.tox/dist/apache-libcloud-1.0.0rc2.zip py2.6 installed: DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6,apache-libcloud==1.0.0rc2,argparse==1.4.0,backports.ssl-match-hostname==3.5.0.1,ecdsa==0.13,flake8==2.5.4,linecache2==1.0.0,lockfile==0.12.2,mccabe==0.4.0,mock==1.0.1,paramiko==1.16.0,pep8==1.7.0,pycrypto==2.6.1,pyflakes==1.0.0,six==1.10.0,traceback2==1.4.0,unittest2==1.1.0 py2.6 runtests: PYTHONHASHSEED='1836126779' py2.6 runtests: commands[0] | cp libcloud/test/secrets.py-dist libcloud/test/secrets.py py2.6 runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5442 tests in 65.366s OK py2.7 runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5442 tests in 39.533s OK pypypy create: /Users/pzrq/Projects/libcloud/.tox/pypypy ERROR: InterpreterNotFound: pypy pypypy3 create: /Users/pzrq/Projects/libcloud/.tox/pypypy3 ERROR: InterpreterNotFound: pypy3 py3.2 create: /Users/pzrq/Projects/libcloud/.tox/py3.2 ERROR: InterpreterNotFound: python3.2 py3.3 create: /Users/pzrq/Projects/libcloud/.tox/py3.3 ERROR: InterpreterNotFound: python3.3 ... py3.4 runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5442 tests in 27.719s OK (skipped=14) py3.5 runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5442 tests in 27.423s OK (skipped=14) py2.5-lxml create: /Users/pzrq/Projects/libcloud/.tox/py2.5-lxml ERROR: InterpreterNotFound: python2.5 ... py2.6-lxml runtests: commands[1] | python setup.py test /Users/pzrq/Projects/libcloud/.tox/py2.6-lxml/lib/python2.6/site-packages/setuptools/dist.py:285: UserWarning: Normalizing '1.0.0-rc2' to '1.0.0rc2' normalized_version, running test Python version: 2.6.9 (unknown, Oct 23 2015, 19:19:20) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] Missing "unittest2" library. unittest2 is library is needed to run the tests. You can install it using pip: pip install unittest2 ERROR: InvocationError: '/Users/pzrq/Projects/libcloud/.tox/py2.6-lxml/bin/python setup.py test' ... py2.7-lxml runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5424 tests in 27.047s FAILED (failures=1, errors=52, skipped=14) ERROR: InvocationError: '/Users/pzrq/Projects/libcloud/.tox/py2.7-lxml/bin/python setup.py test' pypypy-lxml create: /Users/pzrq/Projects/libcloud/.tox/pypypy-lxml ERROR: InterpreterNotFound: pypy pypypy3-lxml create: /Users/pzrq/Projects/libcloud/.tox/pypypy3-lxml ERROR: InterpreterNotFound: pypy3 py3.2-lxml create: /Users/pzrq/Projects/libcloud/.tox/py3.2-lxml ERROR: InterpreterNotFound: python3.2 py3.3-lxml create: /Users/pzrq/Projects/libcloud/.tox/py3.3-lxml ERROR: InterpreterNotFound: python3.3 ... py3.4-lxml runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5424 tests in 23.300s FAILED (failures=4, errors=595, skipped=14) ERROR: InvocationError: '/Users/pzrq/Projects/libcloud/.tox/py3.4-lxml/bin/python setup.py test' ... py3.5-lxml runtests: commands[1] | python setup.py test ... ---------------------------------------------------------------------- Ran 5424 tests in 23.433s FAILED (failures=4, errors=595, skipped=14) ERROR: InvocationError: '/Users/pzrq/Projects/libcloud/.tox/py3.5-lxml/bin/python setup.py test' ... ___________________________________ summary ____________________________________ ERROR: py2.5: InterpreterNotFound: python2.5 py2.6: commands succeeded py2.7: commands succeeded ERROR: pypypy: InterpreterNotFound: pypy ERROR: pypypy3: InterpreterNotFound: pypy3 ERROR: py3.2: InterpreterNotFound: python3.2 ERROR: py3.3: InterpreterNotFound: python3.3 py3.4: commands succeeded py3.5: commands succeeded ERROR: py2.5-lxml: InterpreterNotFound: python2.5 ERROR: py2.6-lxml: commands failed ERROR: py2.7-lxml: commands failed ERROR: pypypy-lxml: InterpreterNotFound: pypy ERROR: pypypy3-lxml: InterpreterNotFound: pypy3 ERROR: py3.2-lxml: InterpreterNotFound: python3.2 ERROR: py3.3-lxml: InterpreterNotFound: python3.3 ERROR: py3.4-lxml: commands failed ERROR: py3.5-lxml: commands failed lint: commands succeeded (libcloud) pzrq@Peters-Mac-mini:~/Projects/libcloud$ commit a552d711e1c07eefea4923e59d814651ddb1bb3d Author: Peter Schmidt <pe...@peterjs.com> Date: 2016-04-18T07:41:22Z Pad out the rest of Travis with lxml Hopefully makes this easier to review and decide one way or another what to do. commit 3bd16fd0c967ba5cf9072dff8f7ea41635411dcc Author: Tomaz Muraus <to...@tomaz.me> Date: 2016-04-18T09:07:16Z Allow failures for lxml builders. commit f66b81348430bd5f59d136df1ea353688c5607b5 Author: Tomaz Muraus <to...@tomaz.me> Date: 2016-04-18T09:08:52Z Update tox.ini, add missing dependencies. ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---