-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Create comprehensive data type tests for MySQL #3562
Comments
Source links:
|
@DoNotPanicUA This looks great. I think you have covered all the data types and values. Regarding the question
I think yes, even though we have not mentioned these data types in our document, it would be nice if we would have an idea of how Airbyte would tackle these data types. I would also advice that dont spend too much time on these data types and just have a test so that we understand the output of syncs. For the tests that are failing, I would advice just raise a PR with all your tests and ignore/disable the failing ones, as part of another ticket we would go back and fix the code to fix those tests. Also have you tested this against the CDC path of MySQL as well? |
@subodh1810 |
@subodh1810 |
@DoNotPanicUA the result table looks fine. I think you can raise the PR for these tests. |
The ticket scope is extended during the PR review. |
Tell us about the problem you're trying to solve
child of airbytehq/airbyte-internal-issues#61. See that issue's description for an understanding of what we are trying to achieve here.
Describe the solution you’d like
Example table:
weird charactersets: UTF-16 or UTF-8
null
NaN
,infinity
1.23451236211
How to do this ticket:
FAQs when implementing this ticket
Where to place the tests?
You should create a new test file for the connector under the integration tests directory for the connector: https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mysql/src/test-integration/java/io/airbyte/integrations/source/mysql
How should I structure the tests?
There's probably a few ways to go about writing these tests. For all of them, we assume you've started up a TestContainer.
First way is to create one monolithic table with many columns, each column resembling a value from your proposed table above. This will probably be hard to maintain so i'd suggest against it.
You can alternatively create a separate table, one per data type e.g:
test_integers
for ints,test_varchar
for varchars, etc... and verify that the connector can accurately read all those values.There will probably be some significant code duplication if we do this naively, so please explore how we can parametrize this implementation. Ideally, we would be able to copy the same pattern to all our other databases so we can apply the same testing here.
Please create a sub-ticket of this one (GH doesn't have a concept of sub-tickets so just create another ticket and include a URL to this ticket somewhere in the description body) to encapsulate the first part of this ticket (filling out the table) and another ticket to encapsulate the second part(s) of this ticket (implementation).
┆Issue is synchronized with this Asana task by Unito
The text was updated successfully, but these errors were encountered: