conda-store: [BUG] - Tests fail if you pass arguments to pytest

Describe the bug

If you run the tests with pytest and try to pass arguments to pytest, like -v, you get a bunch of failures like

---------------------------------------------------------------------------------------------------- Captured stderr call ----------------------------------------------------------------------------------------------------
usage: pytest [-h] [--standalone] [--config CondaStoreWorker.config_file]
              [extra_args ...]
pytest: error: argument -v: expected one argument
Restoring 1 unacknowledged message(s)
----------------------------------------------------------------------------------------------------- Captured log call ------------------------------------------------------------------------------------------------------
CRITICAL celery.worker:worker.py:206 Unrecoverable error: TypeError('cannot unpack non-iterable ExceptionInfo object')
Traceback (most recent call last):
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1853, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2062, in _parse_known_args
    start_index = consume_optional(start_index)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1992, in consume_optional
    arg_count = match_argument(action, selected_patterns)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2157, in _match_argument
    raise ArgumentError(action, msg)
argparse.ArgumentError: argument -v: expected one argument

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 30, in apply_target
    ret = target(*args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 654, in trace_task_ret
    R, I, T, Rstr = trace_task(app.tasks[name],
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 610, in trace_task
    return task.__trace__(uuid, args, kwargs, request)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/home/aaronmeurer/Documents/conda-store/conda-store-server/conda_store_server/worker/tasks.py", line 174, in task_solve_conda_environment
    conda_store = self.worker.conda_store
  File "/home/aaronmeurer/Documents/conda-store/conda-store-server/conda_store_server/worker/tasks.py", line 45, in worker
    self._worker.initialize()
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
  File "/home/aaronmeurer/Documents/conda-store/conda-store-server/conda_store_server/worker/app.py", line 63, in initialize
    super().initialize(*args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 465, in initialize
    self.parse_command_line(argv)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 880, in parse_command_line
    self.cli_config = deepcopy(loader.load_config())
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 884, in load_config
    self._parse_args(argv)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 945, in _parse_args
    self.parsed_data = self.parser.parse_args(to_parse)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1820, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 784, in parse_known_args
    return super().parse_known_args(args, namespace)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1856, in parse_known_args
    self.error(str(err))
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2577, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2564, in exit
    _sys.exit(status)
SystemExit: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 39, in apply_target
    reraise(WorkerLostError, WorkerLostError(repr(exc)),
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/exceptions.py", line 109, in reraise
    raise value.with_traceback(tb)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 30, in apply_target
    ret = target(*args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 654, in trace_task_ret
    R, I, T, Rstr = trace_task(app.tasks[name],
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 610, in trace_task
    return task.__trace__(uuid, args, kwargs, request)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/home/aaronmeurer/Documents/conda-store/conda-store-server/conda_store_server/worker/tasks.py", line 174, in task_solve_conda_environment
    conda_store = self.worker.conda_store
  File "/home/aaronmeurer/Documents/conda-store/conda-store-server/conda_store_server/worker/tasks.py", line 45, in worker
    self._worker.initialize()
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
  File "/home/aaronmeurer/Documents/conda-store/conda-store-server/conda_store_server/worker/app.py", line 63, in initialize
    super().initialize(*args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 465, in initialize
    self.parse_command_line(argv)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 880, in parse_command_line
    self.cli_config = deepcopy(loader.load_config())
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 884, in load_config
    self._parse_args(argv)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 945, in _parse_args
    self.parsed_data = self.parser.parse_args(to_parse)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1820, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 784, in parse_known_args
    return super().parse_known_args(args, namespace)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1856, in parse_known_args
    self.error(str(err))
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2577, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2564, in exit
    _sys.exit(status)
billiard.exceptions.WorkerLostError: SystemExit(2)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/worker.py", line 202, in start
    self.blueprint.start(self)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/bootsteps.py", line 365, in start
    return self.obj.start()
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 336, in start
    blueprint.start(self)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 726, in start
    c.loop(*c.loop_args())
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/loops.py", line 130, in synloop
    connection.drain_events(timeout=2.0)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/connection.py", line 341, in drain_events
    return self.transport.drain_events(self.connection, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 997, in drain_events
    get(self._deliver, timeout=timeout)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/utils/scheduling.py", line 55, in get
    return self.fun(resource, callback, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 1035, in _drain_channel
    return channel.drain_events(callback=callback, timeout=timeout)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 754, in drain_events
    return self._poll(self.cycle, callback, timeout=timeout)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 414, in _poll
    return cycle.get(callback)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/utils/scheduling.py", line 55, in get
    return self.fun(resource, callback, **kwargs)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 418, in _get_and_deliver
    callback(message, queue)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 1017, in _deliver
    callback(message)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 639, in _callback
    return callback(message)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/messaging.py", line 656, in _receive_callback
    return on_m(message) if on_m else self.receive(decoded, message)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 668, in on_task_received
    strategy(
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/strategy.py", line 207, in task_message_handler
    handle(req)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/worker.py", line 225, in _process_task
    req.execute_using_pool(self.pool)
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/request.py", line 754, in execute_using_pool
    result = apply_async(
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 153, in apply_async
    return self.on_apply(target, args, kwargs,
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 42, in apply_target
    callback(ExceptionInfo())
  File "/home/aaronmeurer/anaconda3/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/request.py", line 772, in on_success
    failed, retval, runtime = failed__retval__runtime
TypeError: cannot unpack non-iterable ExceptionInfo object

It seems that something is parsing the pytest arguments as command line arguments to the conda-store-server command.

Expected behavior

The tests should pass

How to Reproduce the problem?

Run pytest -v tests

Output

No response

Versions and dependencies used.

No response

Anything else?

No response

About this issue

  • Original URL
  • State: closed
  • Created 10 months ago
  • Reactions: 2
  • Comments: 16 (16 by maintainers)

Most upvoted comments

Yeah that works. @steff456 weird that this happens with the -x at the end. Anyways thanks for finding that!

I think this is fine to close

I’m also not reproducing it now. I’m on a different machine, so I’ll need to go check the machine I was using when I opened this issue. It’s possible it has already been fixed.