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

[Task]: Use turmoil to simulate client and server environments in tests #48

Open
15 tasks
laysakura opened this issue Jun 18, 2023 · 5 comments
Open
15 tasks
Assignees
Labels

Comments

@laysakura
Copy link
Owner

What needs to happen?

See the description in #43

Issue Priority

Priority: 3 (nice-to-have improvement)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner
@github-actions github-actions bot added the P3 label Jun 18, 2023
@rahulssheth
Copy link

@laysakura any chance I could help out here?

@laysakura
Copy link
Owner Author

@rahulssheth Sure! If you find anything to discuss with other contributors, feel free to start chatting in the discord (I found you in discord).

@rahulssheth
Copy link

Thanks @laysakura! Do we have any analogous frameworks used in tests of other SDKs? I have an idea of a few cases that could benefit from this but a reference would be helpful.

@laysakura
Copy link
Owner Author

@sjvanrossum Any idea?

@sjvanrossum
Copy link
Collaborator

Nothing truly analogous, but the Java, Go, and Python SDKs all ship with modules to scaffold test pipelines (e.g. https://github.com/apache/beam/tree/master/sdks/java/core/src/main/java/org/apache/beam/sdk/testing) and the direct runner for each of those SDKs is used for testing purposes. Integration tests are largely expressed through those constructs.

Turmoil sits a level below that and enables us to define deterministic integration tests for distributed components. The level of granularity there is mostly left up to us, so this can be used both to test individual services (e.g. BeamFnControl client, BeamFnData client) and to build the equivalent of TestPipeline and similar higher level APIs like a TestRunner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants