I’m having a heck of a time getting some custom `C...
# general
I’m having a heck of a time getting some custom
unit tests to behave correctly in a python/pytest project that has other async-based unit tests (FastAPI). The pulumi-specific tests behave fine by themselves, but introducing my other tests into the same pytest session causes problems. Everything is using asyncio/anyio. I end up getting the dreaded attached to a different loop exception after some hanging. I have tried forcing a single event loop with various pytest fixtures. Sometimes I’ve been able to get to work, but without consistency. I understand pulumi is doing some “interesting” things behind the scene with python async and event loops, but is there any hope in making it play nicely with other async pytests? Hoping someone has some secret sauce that I haven’t thought of yet. I’d like to be able to keep the tests together if possible. Some exception examples:
Copy code
Exception ignored in: <coroutine object Output.apply.<locals>.run at 0xffff7c22c460>
Traceback (most recent call last):
  File "/.pyenv/versions/3.11.2/lib/python3.11/site-packages/pulumi/output.py", line 228, in run
  File "/.pyenv/versions/3.11.2/lib/python3.11/asyncio/base_events.py", line 761, in call_soon
  File "/.pyenv/versions/3.11.2/lib/python3.11/asyncio/base_events.py", line 519, in _check_closed
    raise RuntimeError('Event loop is closed')
Copy code
Traceback (most recent call last):
  File "/.pyenv/versions/3.11.2/lib/python3.11/site-packages/pulumi/runtime/rpc_manager.py", line 71, in rpc_wrapper
    result = await rpc
  File "/.pyenv/versions/3.11.2/lib/python3.11/site-packages/pulumi/runtime/resource.py", line 811, in do_register
    resolver = await prepare_resource(res, ty, custom, remote, props, opts, typ)
  File "/.pyenv/versions/3.11.2/lib/python3.11/site-packages/pulumi/runtime/resource.py", line 187, in prepare_resource
    parent_urn = await opts.parent.urn.future()
  File "/.pyenv/versions/3.11.2/lib/python3.11/site-packages/pulumi/output.py", line 128, in get_value
    val = await self._future
RuntimeError: await wasn't used with future
Copy code
RuntimeError: Task <Task pending name='Task-116' coro=<Output.future.<locals>.get_value() running at /.pyenv/versions/3.11.2/lib/python3.11/site-packages/pulumi/output.py:128> cb=[Task.task_wakeup()]> got Future <Future pending> attached to a different loop
Would #python be likely to find a more targeted audience?
Yeah thanks, didn’t know that channel existed