airbyte-lib: Lightweight validation #34475
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To enable us to publish the long tail of python connectors without running the full test suite, this PR prepares the most basic smoketest:
This will give us enough confidence for the initial publish as it eliminates a lot of error classes that render the connector completely unusable.
There are still some scenarios that could lead to broken connectors being shipped like this (e.g. lazily loaded modules cause an error, API changes rendered the connector useless), but this risk is accepted.
Drive-by change
I noticed an issue with
airbyte_messages_to_record_dicts
- its types state that it returns a iterator of dicts, but it will return none if an emitted message is not a record message. I fixed this by not emitting anything in this case (this broke the validation logic if the first airbyte message returned from the connector is not a record).