galaxyproject / planemo

Command-line utilities to assist in developing Galaxy and Common Workflow Language artifacts - including tools, workflows, and training materials.
https://planemo.readthedocs.io/
MIT License
89 stars 85 forks source link

Planemo not playing nicely with a previously cloned galaxy from dev #380

Closed hexylena closed 7 years ago

hexylena commented 8 years ago
functional_tests.py INFO 2015-11-22 12:27:42,624 Embedded web server started
functional_tests.py INFO 2015-11-22 12:27:42,624 Functional tests will be run against localhost:8719
functional_tests.py ERROR 2015-11-22 12:27:42,626 Failure running tests
Traceback (most recent call last):
  File "./scripts/functional_tests.py", line 494, in main
    success = _run_functional_test( )
  File "./scripts/functional_tests.py", line 443, in _run_functional_test
    import functional.test_toolbox
  File "/home/hxr/work/galaxy/test/functional/test_toolbox.py", line 3, in <module>
    from base.twilltestcase import TwillTestCase
  File "/home/hxr/work/galaxy/test/base/twilltestcase.py", line 21, in <module>
    import twill
  File "/home/hxr/work/galaxy/.venv/local/lib/python2.7/site-packages/twill/__init__.py", line 52, in <module>
    from shell import TwillCommandLoop
  File "/home/hxr/work/galaxy/.venv/local/lib/python2.7/site-packages/twill/shell.py", line 9, in <module>
    from twill import commands, parse, __version__
  File "/home/hxr/work/galaxy/.venv/local/lib/python2.7/site-packages/twill/commands.py", line 7, in <module>
    from lxml import html
ImportError: No module named lxml
functional_tests.py INFO 2015-11-22 12:27:42,627 Shutting down
functional_tests.py INFO 2015-11-22 12:27:42,627 Shutting down embedded web server
functional_tests.py INFO 2015-11-22 12:27:42,628 Embedded web server stopped
functional_tests.py INFO 2015-11-22 12:27:42,628 Shutting down app
galaxy.jobs.handler INFO 2015-11-22 12:27:42,629 sending stop signal to worker thread
galaxy.jobs.handler INFO 2015-11-22 12:27:42,629 job handler queue stopped
galaxy.jobs.runners INFO 2015-11-22 12:27:42,629 TaskRunner: Sending stop signal to 2 worker threads
galaxy.jobs.runners INFO 2015-11-22 12:27:42,629 LocalRunner: Sending stop signal to 4 worker threads
galaxy.jobs.handler INFO 2015-11-22 12:27:42,629 sending stop signal to worker thread
galaxy.jobs.handler INFO 2015-11-22 12:27:42,629 job handler stop queue stopped
functional_tests.py INFO 2015-11-22 12:27:42,629 Embedded Universe application stopped
functional_tests.py INFO 2015-11-22 12:27:42,629 Cleaning up temporary files in /tmp/tmppyQasB/tmpITYao4
galaxy.jobs.handler INFO 2015-11-22 12:27:43,430 sending stop signal to worker thread
galaxy.jobs.handler INFO 2015-11-22 12:27:43,430 job handler queue stopped
galaxy.jobs.runners INFO 2015-11-22 12:27:43,430 TaskRunner: Sending stop signal to 2 worker threads
galaxy.jobs.runners INFO 2015-11-22 12:27:43,430 LocalRunner: Sending stop signal to 4 worker threads
galaxy.jobs.handler INFO 2015-11-22 12:27:43,431 sending stop signal to worker thread
galaxy.jobs.handler INFO 2015-11-22 12:27:43,431 job handler stop queue stopped
Cannot locate xUnit report option for tests - update Galaxy for more detailed breakdown.
Traceback (most recent call last):
  File "/usr/local/bin/planemo", line 11, in <module>
    sys.exit(planemo())
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 700, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 680, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 873, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/decorators.py", line 63, in new_func
    return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/planemo/commands/cmd_test.py", line 59, in cli
    return_value = run_in_config(ctx, config, **kwds)
  File "/usr/local/lib/python2.7/dist-packages/planemo/galaxy_test/actions.py", line 109, in run_in_config
    **kwds
  File "/usr/local/lib/python2.7/dist-packages/planemo/galaxy_test/actions.py", line 126, in __handle_summary
    **kwds
  File "/usr/local/lib/python2.7/dist-packages/planemo/galaxy_test/actions.py", line 139, in __summarize_tests_full
    num_tests = test_results.num_tests
  File "/usr/local/lib/python2.7/dist-packages/planemo/galaxy_test/structures.py", line 170, in num_tests
    return self.sd.num_tests
AttributeError: 'StructuredData' object has no attribute 'num_tests'

I get the impression that planemo's dependencies aren't getting installed and Galaxy's virtualenv is being used instead.

I removed and recreated an empty venv (with --system-site-packages), only to be greeted with

Testing using galaxy_root /home/hxr/work/galaxy
Testing tools with command [cd /home/hxr/work/galaxy; COMMON_STARTUP_ARGS=; $(grep -q 'skip-venv' run_tests.sh) && COMMON_STARTUP_ARGS="--skip-venv --skip-common-startup"; export COMMON_STARTUP_ARGS; echo "Set COMMON_STARTUP_ARGS to ${COMMON_STARTUP_ARGS}"; if [ -d .venv ] || [ -f dist-eggs.ini ]; then GALAXY_VIRTUAL_ENV=.venv;  else GALAXY_VIRTUAL_ENV=/home/hxr/.planemo/gx_venv; fi; export GALAXY_VIRTUAL_ENV; if [ ! -e $GALAXY_VIRTUAL_ENV ];  then type virtualenv >/dev/null 2>&1 && virtualenv $GALAXY_VIRTUAL_ENV;  else echo "Reusing existing virtualenv $GALAXY_VIRTUAL_ENV";  fi; [ -e $GALAXY_VIRTUAL_ENV ] && . $GALAXY_VIRTUAL_ENV/bin/activate; sh run_tests.sh $COMMON_STARTUP_ARGS --report_file /home/hxr/work/tools-iuc/tools/bcftools/tool_test_output.html --xunit_report_file /tmp/tmpU2gm1H/xunit.xml --structured_data_report_file /home/hxr/work/tools-iuc/tools/bcftools/tool_test_output.json functional.test_toolbox]
Set COMMON_STARTUP_ARGS to --skip-venv --skip-common-startup
Reusing existing virtualenv .venv
Traceback (most recent call last):
  File "./scripts/functional_tests.py", line 17, in <module>
    from base.tool_shed_util import parse_tool_panel_config
  File "/home/hxr/work/galaxy/test/base/tool_shed_util.py", line 8, in <module>
    from galaxy.util import parse_xml
  File "/home/hxr/work/galaxy/lib/galaxy/util/__init__.py", line 41, in <module>
    import wchartype
ImportError: No module named wchartype

so planemo isn't installing galaxy's requirements either, allowing it to crash.

--system-site-packages has its own "fun" quirks, like telling you there's an incompatible version of a dependency already installed ONLY after downloading two dozen related files which get thrown away on first error.

Installing collected packages: mercurial, numpy, python-lzo, pysam, Paste, PasteDeploy, wchartype, repoze.lru, six, Routes, WebOb, WebHelpers, Mako, Beaker, Markdown, Cheetah, bioblend, amqp, anyjson, kombu, pbr, sqlparse, decorator, Tempita, sqlalchemy-migrate, Parsley, nose, SVGFig, ecdsa, paramiko, Fabric, Whoosh
  Found existing installation: mercurial 3.1.2
Detected a distutils installed project ('mercurial') which we cannot uninstall. The metadata provided by distutils does not contain a list of files which have been installed, so pip does not know which files to uninstall.

So I've reverted to using --install_galaxy but that's horribly unpleasant waiting for 50 eggs to download on each run.

hexylena commented 7 years ago

Ancient issue, haven't been able to repro in a long time.