Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Async state and message handler #1005

Open
2 tasks done
JP-Ellis opened this issue Feb 27, 2025 · 0 comments
Open
2 tasks done

Async state and message handler #1005

JP-Ellis opened this issue Feb 27, 2025 · 0 comments

Comments

@JP-Ellis
Copy link
Contributor

Have you read the Contributing Guidelines on issues?

Description

Original suggestion by Val on Slack

To allow the state_handler and message_handler functions to handle asynchronous functions.

Motivation

These two functions are used to interface with code outside of Pact Python to setup/teardown states and generate messages. Especially in the case of the state setup and teardown, a common pattern would be to make a number of calls to (mocked or not) databases or other services to ensure they are in a particular state. These requests can be significantly sped up by running them in parallel, such as with an asyncio.gather call or using a task group.

Have you tried building it?

Not yet, but I will first open this issue and ask for anyone with specific examples to work towards.

While asynchronous function bring a number of advantages, they can also bring some complications. In particular:

  • There are a number of underlying runtimes: asyncio, trio, curio. If possible, it would be ideal to support all of these.
  • The use of threads has implications for ContextVar (if used)

Self-service

  • I'd be willing to contribute this feature to Pact Python myself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant