-
Notifications
You must be signed in to change notification settings - Fork 4.9k
feat(metadata-service): Add schema support for smoke test scenarios #69072
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
base: aj/fix-typed-ast-metadata-service
Are you sure you want to change the base?
feat(metadata-service): Add schema support for smoke test scenarios #69072
Conversation
Original prompt from AJ Steers |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
6 similar comments
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. Helpful Resources
PR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
|
Add JSON schema definitions to support the new smoke tests configuration format introduced in airbytehq/airbyte-python-cdk#775. Changes: - Created SmokeTestScenario.yaml schema defining the structure for individual smoke test scenarios with properties: name, config_file, config_settings, expect_failure, only_streams, exclude_streams, suggested_streams_only, and configured_catalog_path - Updated ConnectorTestSuiteOptions.yaml to add 'smokeTests' to the suite enum and added 'scenarios' property to support the new smoke test format - Regenerated Python models and bundled JSON schema This enables connectors to define smoke tests in their metadata.yaml file under data.connectorTestSuitesOptions with the following structure: connectorTestSuitesOptions: - suite: smokeTests scenarios: - name: default config_file: secrets/config_oauth.json config_settings: start_date: "2025-01-01T00:00:00Z" only_streams: - users Related: airbytehq/airbyte-python-cdk#775 Co-Authored-By: AJ Steers <[email protected]>
c6c225b to
af7ab8f
Compare
…0-add-smoke-tests-schema
Builds on:
What
Add JSON schema support for the new smoke tests configuration format introduced in airbytehq/airbyte-python-cdk#775.
This enables connectors to define smoke test scenarios in their
metadata.yamlfiles underdata.connectorTestSuitesOptions.How
Created
SmokeTestScenario.yaml- New schema file defining the structure for individual smoke test scenarios with the following properties:name(required): Name of the test scenarioconfig_file: Path to config fileconfig_settings: Dictionary to override configexpect_failure: Whether the test should failonly_streams: Streams to includeexclude_streams: Streams to excludesuggested_streams_only: Whether to limit to suggested streamsconfigured_catalog_path: Path to pre-configured catalogUpdated
ConnectorTestSuiteOptions.yaml- Added"smokeTests"to the suite enum and added ascenariosproperty (array of SmokeTestScenario)Regenerated models - Ran
poetry run poe generate-modelsto generate Python models and bundled JSON schemaReview guide
SmokeTestScenario.yaml- Verify field names and types match the CDK'sConnectorTestScenariomodel in scenario.pysuggested_streamsfield was intentionally excluded as it's derived from top-level metadata, not user inputConnectorTestSuiteOptions.yaml- Thescenariosfield is optional for all suite types but only applicable forsmokeTests. Consider if JSON schema should enforce this with conditional validation (e.g.,if/thenschema keywords)Generated files side effects - The regeneration process made incidental changes to other files:
type: const→type: stringin StreamBreakingChangeScopeBundled schema - Check
ConnectorMetadataDefinitionV0.jsonhas the smoke test scenario definition properly inlinedIntegration testing - This PR only tests schema generation. Should be tested with:
User Impact
Connector developers can now define smoke test scenarios in their metadata.yaml files:
The metadata service will validate these configurations against the schema.
Can this PR be safely reverted and rolled back?
This is purely additive - adds a new optional schema structure without modifying existing functionality.
Link to Devin run: https://app.devin.ai/sessions/2df71103d1fd4177a9691557c003b6ee
Requested by: AJ Steers ([email protected]) / @aaronsteers
Related: airbytehq/airbyte-python-cdk#775