pulumi/sdk/python/lib/test
Abhinav Gupta e6fc3893fe
sdk/py/stack: Original traceback in wait_for_rpcs
When the `await RPC_MANAGER.rpcs.pop()` explodes,
the traceback is for `RPC_MANAGER.rpcs.pop()`, e.g.

```
error: Program failed with an unhandled exception:
Traceback (most recent call last):
  File "/opt/hostedtoolcache/pulumi/3.43.1/x64/pulumi-language-python-exec", line 179, in <module>
    loop.run_until_complete(coro)
  File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "[..]/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 126, in run_in_stack
    await run_pulumi_func(lambda: Stack(func))
  File "[..]/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 51, in run_pulumi_func
    await wait_for_rpcs()
  File "[..]/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 73, in wait_for_rpcs
    await RPC_MANAGER.rpcs.pop()
RecursionError: maximum recursion depth exceeded
```

This isn't super helpful in debugging these errors.

RPC_MANAGER already tracks uncaught excpetions from such RPCs
but wait_for_rpcs doesn't account for these until aftewards.

This changes wait_for_rpcs to reproduce the original tracebacks
when it encounters errors in waiting for RPCs.

The included test verifies that the more helpful traceback is produced.

Refs #11887
2023-01-18 16:30:25 -08:00
..
automation Revert "Update Pulumi codegen to net6.0" 2023-01-10 09:12:56 -08:00
data/lazy_import_test Fix issue with lazy_import affecting pulumi-eks (#7024) 2021-05-11 22:48:08 -04:00
langhost fix(sdk/python): Allow for duplicate output values in python programs 2022-12-07 11:59:09 -05:00
provider fix(sdk/python): Makes SETTINGS attributes context-aware (#10402) 2022-08-23 13:45:37 -04:00
runtime sdk/py/stack: Original traceback in wait_for_rpcs 2023-01-18 16:30:25 -08:00
__init__.py Fix a couple of issues when projecting Protobuf and UNKNOWN in Python (#1468) 2018-06-06 16:09:07 -07:00
conftest.py feat: Supports optional arguments for pulumi.Config getters (#10344) 2022-08-11 10:21:46 -04:00
helpers.py Lower the BrokenDynamicProvider regression test from integration to mock (#7951) 2021-09-10 17:25:48 -04:00
test_broken_dynamic_provider.py ci: Fix Windows flake with longer timeout 2022-09-14 09:57:02 -07:00
test_monitor_termination.py ci: Fix Windows flake with longer timeout 2022-09-14 09:57:02 -07:00
test_next_serialize.py fix(sdk/python): Makes SETTINGS attributes context-aware (#10402) 2022-08-23 13:45:37 -04:00
test_output.py Fix a TypeError in Output.from_input 2023-01-13 18:14:50 +00:00
test_resource.py Correctly copy ResourceOptions during a merge 2022-11-10 13:14:52 -08:00
test_runtime_to_json.py [sdk/python] Add pulumi.runtime.to_json utility (#5307) 2020-09-09 12:08:45 -07:00
test_stack_registers_outputs.py fix(sdk/python): Makes SETTINGS attributes context-aware (#10402) 2022-08-23 13:45:37 -04:00
test_translate_output_properties.py [sdk/python] - Support enums (#5615) 2020-11-24 19:15:11 -06:00
test_types_input_type.py [sdk/python] Fix pulumi.property's default value handling (#7736) 2021-08-11 09:15:46 -07:00
test_types_input_type_types.py [sdk/python] Improved dict key translation support (#6695) 2021-04-14 19:32:18 +01:00
test_types_output_type.py Python SDK changes to support input/output classes (#5033) 2020-08-19 01:15:56 -07:00
test_types_resource_types.py Python SDK changes to support input/output classes (#5033) 2020-08-19 01:15:56 -07:00
test_urn.py Satisfy Python lint: factor out URN parsing in Python and other fixes (#7821) 2021-08-24 09:57:51 -04:00
test_utils.py Fix issue with lazy_import affecting pulumi-eks (#7024) 2021-05-11 22:48:08 -04:00