opensearch-project / opensearch-project/data-prepper
Data Prepper Plugin Test Framework
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 374
- Forks
- 355
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 8
Description
Is your feature request related to a problem? Please describe.
Data Prepper has a growing community of plugin authors and a lot of plugins. As these grow, it becomes harder to maintain consistency across plugins and ensure that they remain backward compatibility.
Describe the solution you'd like
Data Prepper should provide a plugin test framework to assist in creating actual input using real pipeline configurations.
These tests can be annotated with an annotation such as:
@DataPrepperPluginTest(pluginName = "my_plugin", pluginType = Processor.class)
This would allow the framework to load the plugin and also be able to load configurations.
Here are some of the goals I have for this framework:
- Create standard tests for plugins. For example, can a plugin be loaded?
- Support loading pipeline configurations from YAML
- Utilize the new plugin DI work (#929) to allow creating plugin integration tests with optional mocks.
Tasks
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named in the issue. Start by reviewing the plugin DI work in #929 and the existing plugin loading and pipeline-configuration paths. Done means providing a framework that loads plugins, reads YAML pipeline configurations, supports standard plugin tests, and allows optional mocks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, yaml
- Domain
- testing-qa, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100