-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
🎉 Destination mssql : adding ssh tunnel for normalisation #11204
🎉 Destination mssql : adding ssh tunnel for normalisation #11204
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
@grishick / @alafanechere do you want me to publish this or will you handle it?
@edgao please publish. I actually don't know how to publish normalization changes. |
…l_normalisation_mssql_destination
(apologies for the spam; using a different computer from usual and accidentally committed without signing) |
/publish connector=bases/base-normalization
|
looks like tests are failing on master; skipping tests for publish |
/publish connector=bases/base-normalization run-tests=false
|
/publish connector=bases/base-normalization run-tests=false
|
autobump doesn't work on normalization because it's not present in the catalog. images were published successfully; merging |
What
mssql-destination
connector.mssql-destination
if the server is behind an ssh tunnel. When basic normalisation is requested,DBT
tries to connect to the server without using the ssh tunnel. As the mssql-destination already supports both SSH tunneling and basic normalization, it makes sense to make basic normalisation works with ssh tunnel.How
airbyte-integrations/bases/base-normalization/normalization/transform_config/transform.py
the same way it's done for the other connectors.dbt-sqlserver
does not work when the host islocalhost
, the config's host is replaced with127.0.0.1
.Recommended reading order
🚨 User Impact 🚨
Pre-merge Checklist
Updating a connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereConnector Generator
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changesTests
Unit
�[1m============================= test session starts ==============================�[0m
platform linux -- Python 3.8.10, pytest-6.1.2, py-1.11.0, pluggy-0.13.1 -- /home/juhelh/20_services/airbyte/airbyte-integrations/bases/base-normalization/.venv/bin/python
cachedir: .pytest_cache
rootdir: /home/juhelh/20_services/airbyte, configfile: pytest.ini
�[1mcollecting ... �[0mcollected 164 items
unit_tests/test_destination_name_transformer.py::test_needs_quote[Hello World-Postgres-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Hello World-BigQuery-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Hello World-Snowflake-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Hello World-Redshift-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Hello World-MySQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Hello World-MSSQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Groups-Postgres-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Groups-BigQuery-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Groups-Snowflake-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Groups-Redshift-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Groups-MySQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[Groups-MSSQL-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[100x200-Postgres-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[100x200-BigQuery-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[100x200-Snowflake-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[100x200-Redshift-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[100x200-MySQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[100x200-MSSQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[post.wall-Postgres-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[post.wall-BigQuery-False] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[post.wall-Snowflake-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[post.wall-Redshift-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[post.wall-MySQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_needs_quote[post.wall-MSSQL-True] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_strip_accents[Hello World!-Hello World!] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_strip_accents[\xe0\xea\xee \xf6\xd9-aei oU] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_name-identifier_name] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[IDENTIFIER_NAME-IDENTIFIER_NAME] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[123identifier_name-123identifier_name] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[i0d0e0n0t0i0f0i0e0r0n0a0m0e-i0d0e0n0t0i0f0i0e0r0n0a0m0e] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_name-,identifier+name] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_name-identifi\xear name] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[a_unicode_name-a_unicode_name\u6587] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier__name-identifier__name__] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_name_weee-identifier-name.weee] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_name-"identifier name"] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_name-identifier name] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier_-identifier%] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_transform_standard_naming[identifier-
identifier
] �[32mPASSED�[0munit_tests/test_destination_name_transformer.py::test_normalize_column_name[Identifier Name-Postgres-{{ adapter.quote('Identifier Name') }}-adapter.quote('Identifier Name')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Identifier Name-BigQuery-Identifier_Name-'Identifier_Name'] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Identifier Name-Snowflake-{{ adapter.quote('Identifier Name') }}-adapter.quote('Identifier Name')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Identifier Name-Redshift-{{ adapter.quote('identifier name') }}-adapter.quote('identifier name')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Identifier Name-MySQL-{{ adapter.quote('Identifier Name') }}-adapter.quote('Identifier Name')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Identifier Name-MSSQL-{{ adapter.quote('Identifier Name') }}-adapter.quote('Identifier Name')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Groups-Postgres-groups-'groups'] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Groups-BigQuery-{{ adapter.quote('Groups') }}-adapter.quote('Groups')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Groups-Snowflake-GROUPS-'GROUPS'] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Groups-Redshift-groups-'groups'] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Groups-MySQL-{{ adapter.quote('Groups') }}-adapter.quote('Groups')] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_column_name[Groups-MSSQL-groups-'groups'] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_truncate_identifier[Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh-Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh] Truncating from #39 to #39
�[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_truncate_identifier[Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh_Iii-Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh_Iii] Truncating from #43 to #43
�[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_truncate_identifier[Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh_Iiii-Aaaa_Bbbb_Cccc_Dddd___e_Ffff_Gggg_Hhhh_Iiii] Truncating from #44 to #43
Truncating Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh_Iiii (#44) to Aaaa_Bbbb_Cccc_Dddd__e_Ffff_Gggg_Hhhh_Iiii (#43)
�[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_truncate_identifier[Aaaa_Bbbb_Cccc_Dddd_Eeee_a_very_long_name_Ffff_Gggg_Hhhh_Iiii-Aaaa_Bbbb_Cccc_Dddd___e_Ffff_Gggg_Hhhh_Iiii] Truncating from #61 to #43
Truncating Aaaa_Bbbb_Cccc_Dddd_Eeee_a_very_long_name_Ffff_Gggg_Hhhh_Iiii (#61) to Aaaa_Bbbb_Cccc_Dddd__e_Ffff_Gggg_Hhhh_Iiii (#43)
�[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_truncate_identifier[Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh_Iiii_Jjjj_Kkkk-Aaaa_Bbbb_Cccc_Dddd___g_Hhhh_Iiii_Jjjj_Kkkk] Truncating from #54 to #43
Truncating Aaaa_Bbbb_Cccc_Dddd_Eeee_Ffff_Gggg_Hhhh_Iiii_Jjjj_Kkkk (#54) to Aaaa_Bbbb_Cccc_Dddd__g_Hhhh_Iiii_Jjjj_Kkkk (#43)
�[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_truncate_identifier[ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz_0123456789-ABCDEFGHIJKLMNOPQRST__qrstuvwxyz_0123456789] Truncating from #64 to #43
Truncating ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz_0123456789 (#64) to ABCDEFGHIJKLMNOPQRST_qrstuvwxyz_0123456789 (#43)
�[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Identifier Name1-Postgres-identifier_name1-{{ adapter.quote('Identifier Name1') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Identifier Name2-BigQuery-Identifier_Name2-Identifier_Name2] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Identifier Name3-Snowflake-IDENTIFIER_NAME3-{{ adapter.quote('Identifier Name3') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Identifier Name4-Redshift-identifier_name4-{{ adapter.quote('identifier name4') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Identifier Name5-MySQL-identifier_name5-{{ adapter.quote('Identifier Name5') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Identifier Name6-MSSQL-identifier_name6-{{ adapter.quote('Identifier Name6') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[a-Unicode_name_\u65871-Postgres-a_unicode_name__1-{{ adapter.quote('a-Unicode_name_\u65871') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[a-Unicode_name_\u65872-BigQuery-a_Unicode_name__2-a_Unicode_name__2] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[a-Unicode_name_\u65873-Snowflake-A_UNICODE_NAME__3-{{ adapter.quote('a-Unicode_name_\u65873') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[a-Unicode_name_\u65874-Redshift-a_unicode_name__4-{{ adapter.quote('a-unicode_name_\u65874') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[a-Unicode_name_\u65875-MySQL-a_unicode_name__5-{{ adapter.quote('a-Unicode_name_\u65875') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[a-Unicode_name_\u65876-MSSQL-a_unicode_name__6-{{ adapter.quote('a-Unicode_name_\u65876') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[100x2001-Postgres-100x2001-{{ adapter.quote('100x2001') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[100x2002-BigQuery-100x2002-_100x2002] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[\u65872_a-Unicode_name-BigQuery-_2_a_Unicode_name-_2_a_Unicode_name] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[100x2003-Snowflake-100x2003-{{ adapter.quote('100x2003') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[100x2004-Redshift-100x2004-{{ adapter.quote('100x2004') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[100x2005-MySQL-100x2005-{{ adapter.quote('100x2005') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[100x2006-MSSQL-_100x2006-{{ adapter.quote('100x2006') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Groups-Postgres-groups-groups] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Groups-BigQuery-Groups-{{ adapter.quote('Groups') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Groups-Snowflake-GROUPS-GROUPS] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Groups-Redshift-groups-groups] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Groups-MySQL-Groups-{{ adapter.quote('Groups') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[Groups-MSSQL-groups-groups] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[DisTincT-Postgres-DisTincT-{{ adapter.quote('DisTincT') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[DisTincT-BigQuery-DisTincT-{{ adapter.quote('DisTincT') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[DisTincT-Snowflake-DisTincT-{{ adapter.quote('DisTincT') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[DisTincT-Redshift-distinct-{{ adapter.quote('distinct') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[DisTincT-MySQL-DisTincT-{{ adapter.quote('DisTincT') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[DisTincT-MSSQL-DisTincT-{{ adapter.quote('DisTincT') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name['QuoTed1 IdenTifiER'-Postgres-quoted1_identifier-{{ adapter.quote('\'QuoTed1 IdenTifiER\'') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name['QuoTed2 IdenTifiER'-BigQuery-QuoTed2_IdenTifiER-QuoTed2_IdenTifiER] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name['QuoTed3 IdenTifiER'-Snowflake-QUOTED3_IDENTIFIER-{{ adapter.quote('\'QuoTed3 IdenTifiER\'') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name['QuoTed4 IdenTifiER'-Redshift-quoted4_identifier-{{ adapter.quote('\'quoted4 identifier\'') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name['QuoTed5 IdenTifiER'-MySQL-quoted5_identifier-{{ adapter.quote('\'QuoTed5 IdenTifiER\'') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name['QuoTed6 IdenTifiER'-MSSQL-quoted6_identifier-{{ adapter.quote('\'QuoTed6 IdenTifiER\'') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name["QuoTed7 IdenTifiER"-Postgres-quoted7_identifier-{{ adapter.quote('""QuoTed7 IdenTifiER""') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name["QuoTed8 IdenTifiER"-BigQuery-QuoTed8_IdenTifiER-QuoTed8_IdenTifiER] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name["QuoTed9 IdenTifiER"-Snowflake-QUOTED9_IDENTIFIER-{{ adapter.quote('""QuoTed9 IdenTifiER""') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name["QuoTed10 IdenTifiER"-Redshift-quoted10_identifier-{{ adapter.quote('""quoted10 identifier""') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name["QuoTed11 IdenTifiER"-MySQL-quoted11_identifier-{{ adapter.quote('"QuoTed11 IdenTifiER"') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name["QuoTed12 IdenTifiER"-MSSQL-quoted12_identifier-{{ adapter.quote('""QuoTed12 IdenTifiER""') }}] �[32mPASSED�[0m
unit_tests/test_destination_name_transformer.py::test_normalize_name[
QuoTed13 IdenTifiER
-Postgres-quoted13_identifier-{{ adapter.quote('QuoTed13 IdenTifiER
') }}] �[32mPASSED�[0munit_tests/test_destination_name_transformer.py::test_normalize_name[
QuoTed14 IdenTifiER
-BigQuery-QuoTed14_IdenTifiER-QuoTed14_IdenTifiER] �[32mPASSED�[0munit_tests/test_destination_name_transformer.py::test_normalize_name[
QuoTed15 IdenTifiER
-Snowflake-QUOTED15_IDENTIFIER-{{ adapter.quote('QuoTed15 IdenTifiER
') }}] �[32mPASSED�[0munit_tests/test_destination_name_transformer.py::test_normalize_name[
QuoTed16 IdenTifiER
-Redshift-quoted16_identifier-{{ adapter.quote('quoted16 identifier
') }}] �[32mPASSED�[0munit_tests/test_destination_name_transformer.py::test_normalize_name[
QuoTed17 IdenTifiER
-MySQL-quoted17_identifier-{{ adapter.quote('QuoTed17 IdenTifiER') }}] �[32mPASSED�[0munit_tests/test_destination_name_transformer.py::test_normalize_name[
QuoTed18 IdenTifiER
-MSSQL-quoted18_identifier-{{ adapter.quote('QuoTed18 IdenTifiER
') }}] �[32mPASSED�[0munit_tests/test_stream_processor.py::test_cursor_field[None-False-_airbyte_emitted_at] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_cursor_field[cursor_field1-False-updated_at] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_cursor_field[cursor_field2-False-_airbyte_emitted_at] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_cursor_field[cursor_field3-True-nested_field] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[primary_key0-string-False-expected_primary_keys0-{{ adapter.quote('id') }}] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[primary_key1-number-False-expected_primary_keys1-cast({{ adapter.quote('id') }} as {{ dbt_utils.type_string() }})] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[primary_key2-string-False-expected_primary_keys2-first_name, last_name] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[primary_key3-number-False-expected_primary_keys3-cast(float_id as {{ dbt_utils.type_string() }})] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[primary_key4-string-False-expected_primary_keys4-cast(_airbyte_emitted_at as {{ dbt_utils.type_string() }})] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[None-string-True-expected_primary_keys5-] �[32mPASSED�[0m
unit_tests/test_stream_processor.py::test_primary_key[primary_key6-string-True-expected_primary_keys6-] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.BIGQUERY-long_name_truncate_collisions_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.BIGQUERY-un-nesting_collisions_catalog] WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.BIGQUERY-nested_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.CLICKHOUSE-long_name_truncate_collisions_catalog] Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_ch_destinations_are_fine (#43)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_ch_destinations_are_fine (#43)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine (#94) to postgres_has_a_64_ch_destinations_are_fine (#43)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine_e5a (#85) to postgres_has_a_64_ch_inations_are_fine_e5a (#43)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine_d2b (#98) to postgres_has_a_64_ch_inations_are_fine_d2b (#43)
WARN: Resolving conflict: schema_test.postgres_has_a_64_ch__destinations_are_fine from 'postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_ch__inations_are_fine_e5a
WARN: Resolving conflict: schema_test.postgres_has_a_64_ch__destinations_are_fine from 'postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_ch__inations_are_fine_d2b
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.CLICKHOUSE-un-nesting_collisions_catalog] Truncating _airbyte_other_namespace_simple_b94_stream_name_f9d (#51) to _airbyte_other_names_e_b94_stream_name_f9d (#43)
Truncating _airbyte_yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_bae (#79) to _airbyte_yet_another_e_b94_stream_name_bae (#43)
Truncating yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_5d1 (#70) to yet_another_namespac_e_b94_stream_name_5d1 (#43)
WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.CLICKHOUSE-nested_catalog] Truncating adcreatives_object_story_spec_link_data_image_crops (#51) to adcreatives_object_s_link_data_image_crops (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x72 (#58) to adcreatives_object_s_ta_image_crops_100x72 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_90x160 (#58) to adcreatives_object_s_ta_image_crops_90x160 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x100 (#59) to adcreatives_object_s_a_image_crops_100x100 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_191x100 (#59) to adcreatives_object_s_a_image_crops_191x100 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x150 (#59) to adcreatives_object_s_a_image_crops_400x150 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x500 (#59) to adcreatives_object_s_a_image_crops_400x500 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_600x360 (#59) to adcreatives_object_s_a_image_crops_600x360 (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec (#53) to adcreatives_object_s_nk_data_app_link_spec (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ios (#57) to adcreatives_object_s_ata_app_link_spec_ios (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ipad (#58) to adcreatives_object_s_ta_app_link_spec_ipad (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_iphone (#60) to adcreatives_object_s__app_link_spec_iphone (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_android (#61) to adcreatives_object_s_app_link_spec_android (#43)
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.MSSQL-long_name_truncate_collisions_catalog] Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_cha_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_cha_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine (#94) to postgres_has_a_64_cha_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine_e5a (#85) to postgres_has_a_64_cha_inations_are_fine_e5a (#44)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine_d2b (#98) to postgres_has_a_64_cha_inations_are_fine_d2b (#44)
WARN: Resolving conflict: schema_test.postgres_has_a_64_cha__destinations_are_fine from 'postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_cha__inations_are_fine_e5a
WARN: Resolving conflict: schema_test.postgres_has_a_64_cha__destinations_are_fine from 'postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_cha__inations_are_fine_d2b
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.MSSQL-un-nesting_collisions_catalog] Truncating _airbyte_other_namespace_simple_b94_stream_name_f9d (#51) to _airbyte_other_namesp_e_b94_stream_name_f9d (#44)
Truncating _airbyte_yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_bae (#79) to _airbyte_yet_another__e_b94_stream_name_bae (#44)
Truncating yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_5d1 (#70) to yet_another_namespace_e_b94_stream_name_5d1 (#44)
WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.MSSQL-nested_catalog] Truncating adcreatives_object_story_spec_link_data_image_crops (#51) to adcreatives_object_st_link_data_image_crops (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x72 (#58) to adcreatives_object_st_ta_image_crops_100x72 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_90x160 (#58) to adcreatives_object_st_ta_image_crops_90x160 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x100 (#59) to adcreatives_object_st_a_image_crops_100x100 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_191x100 (#59) to adcreatives_object_st_a_image_crops_191x100 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x150 (#59) to adcreatives_object_st_a_image_crops_400x150 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x500 (#59) to adcreatives_object_st_a_image_crops_400x500 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_600x360 (#59) to adcreatives_object_st_a_image_crops_600x360 (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec (#53) to adcreatives_object_st_nk_data_app_link_spec (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ios (#57) to adcreatives_object_st_ata_app_link_spec_ios (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ipad (#58) to adcreatives_object_st_ta_app_link_spec_ipad (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_iphone (#60) to adcreatives_object_st__app_link_spec_iphone (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_android (#61) to adcreatives_object_st_app_link_spec_android (#44)
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.MYSQL-long_name_truncate_collisions_catalog] Truncating _airbyte_raw_postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#94) to _airbyte_raw_postgres_destinations_are_fine (#44)
Truncating _airbyte_raw_postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#94) to _airbyte_raw_postgres_destinations_are_fine (#44)
Truncating _airbyte_raw_postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine (#107) to _airbyte_raw_postgres_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_cha_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_cha_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine (#94) to postgres_has_a_64_cha_destinations_are_fine (#44)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine_e5a (#85) to postgres_has_a_64_cha_inations_are_fine_e5a (#44)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine_d2b (#98) to postgres_has_a_64_cha_inations_are_fine_d2b (#44)
WARN: Resolving conflict: schema_test.postgres_has_a_64_cha__destinations_are_fine from 'postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_cha__inations_are_fine_e5a
WARN: Resolving conflict: schema_test.postgres_has_a_64_cha__destinations_are_fine from 'postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_cha__inations_are_fine_d2b
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.MYSQL-un-nesting_collisions_catalog] Truncating _airbyte_other_namespace_simple_b94_stream_name_f9d (#51) to _airbyte_other_namesp_e_b94_stream_name_f9d (#44)
Truncating _airbyte_yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_bae (#79) to _airbyte_yet_another__e_b94_stream_name_bae (#44)
Truncating yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_5d1 (#70) to yet_another_namespace_e_b94_stream_name_5d1 (#44)
WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.MYSQL-nested_catalog] Truncating adcreatives_object_story_spec_link_data_image_crops (#51) to adcreatives_object_st_link_data_image_crops (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x72 (#58) to adcreatives_object_st_ta_image_crops_100x72 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_90x160 (#58) to adcreatives_object_st_ta_image_crops_90x160 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x100 (#59) to adcreatives_object_st_a_image_crops_100x100 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_191x100 (#59) to adcreatives_object_st_a_image_crops_191x100 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x150 (#59) to adcreatives_object_st_a_image_crops_400x150 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x500 (#59) to adcreatives_object_st_a_image_crops_400x500 (#44)
Truncating adcreatives_object_story_spec_link_data_image_crops_600x360 (#59) to adcreatives_object_st_a_image_crops_600x360 (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec (#53) to adcreatives_object_st_nk_data_app_link_spec (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ios (#57) to adcreatives_object_st_ata_app_link_spec_ios (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ipad (#58) to adcreatives_object_st_ta_app_link_spec_ipad (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_iphone (#60) to adcreatives_object_st__app_link_spec_iphone (#44)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_android (#61) to adcreatives_object_st_app_link_spec_android (#44)
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.ORACLE-long_name_truncate_collisions_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.ORACLE-un-nesting_collisions_catalog] WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.ORACLE-nested_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.POSTGRES-long_name_truncate_collisions_catalog] Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_ch_destinations_are_fine (#43)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine (#81) to postgres_has_a_64_ch_destinations_are_fine (#43)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine (#94) to postgres_has_a_64_ch_destinations_are_fine (#43)
Truncating postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine_e5a (#85) to postgres_has_a_64_ch_inations_are_fine_e5a (#43)
Truncating postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine_d2b (#98) to postgres_has_a_64_ch_inations_are_fine_d2b (#43)
WARN: Resolving conflict: schema_test.postgres_has_a_64_ch__destinations_are_fine from 'postgres_has_a_64_characters_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_ch__inations_are_fine_e5a
WARN: Resolving conflict: schema_test.postgres_has_a_64_ch__destinations_are_fine from 'postgres_has_a_64_characters_and_not_more_limit_to_table_names_but_other_destinations_are_fine' into postgres_has_a_64_ch__inations_are_fine_d2b
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.POSTGRES-un-nesting_collisions_catalog] Truncating _airbyte_other_namespace_simple_b94_stream_name_f9d (#51) to _airbyte_other_names_e_b94_stream_name_f9d (#43)
Truncating _airbyte_yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_bae (#79) to _airbyte_yet_another_e_b94_stream_name_bae (#43)
Truncating yet_another_namespace_with_a_very_long_name_simple_b94_stream_name_5d1 (#70) to yet_another_namespac_e_b94_stream_name_5d1 (#43)
WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.POSTGRES-nested_catalog] Truncating adcreatives_object_story_spec_link_data_image_crops (#51) to adcreatives_object_s_link_data_image_crops (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x72 (#58) to adcreatives_object_s_ta_image_crops_100x72 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_90x160 (#58) to adcreatives_object_s_ta_image_crops_90x160 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_100x100 (#59) to adcreatives_object_s_a_image_crops_100x100 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_191x100 (#59) to adcreatives_object_s_a_image_crops_191x100 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x150 (#59) to adcreatives_object_s_a_image_crops_400x150 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_400x500 (#59) to adcreatives_object_s_a_image_crops_400x500 (#43)
Truncating adcreatives_object_story_spec_link_data_image_crops_600x360 (#59) to adcreatives_object_s_a_image_crops_600x360 (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec (#53) to adcreatives_object_s_nk_data_app_link_spec (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ios (#57) to adcreatives_object_s_ata_app_link_spec_ios (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_ipad (#58) to adcreatives_object_s_ta_app_link_spec_ipad (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_iphone (#60) to adcreatives_object_s__app_link_spec_iphone (#43)
Truncating adcreatives_object_story_spec_link_data_app_link_spec_android (#61) to adcreatives_object_s_app_link_spec_android (#43)
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.REDSHIFT-long_name_truncate_collisions_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.REDSHIFT-un-nesting_collisions_catalog] WARN: Resolving conflict: namespace.simple_stream_name from 'simple stream name' into simple_stream_name_f35
WARN: Resolving conflict: namespace.simple_stream_name from 'simple.stream_name' into simple_b94_stream_name
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.REDSHIFT-nested_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.SNOWFLAKE-long_name_truncate_collisions_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.SNOWFLAKE-un-nesting_collisions_catalog] WARN: Resolving conflict: NAMESPACE.SIMPLE_STREAM_NAME from 'simple stream name' into SIMPLE_STREAM_NAME_F35
WARN: Resolving conflict: NAMESPACE.SIMPLE_STREAM_NAME from 'simple.stream_name' into SIMPLE_B94_STREAM_NAME
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_resolve_names[DestinationType.SNOWFLAKE-nested_catalog] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_get_simple_table_name[json_path0-parent_child-parent_child] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_get_simple_table_name[json_path1-the_parent_stream_ha___short_substream_name-The_parent_stream_has_a_nested_column_with_a_short_substream_name] Truncating The_parent_stream_has_a_nested_column_with_a_short_substream_name (#65) to The_parent_stream_ha__short_substream_name (#43)
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_get_simple_table_name[json_path2-the_parent_stream_ha__th_a_rather_long_name-The_parent_stream_has_a_nested_column_with_a_substream_with_a_rather_long_name] Truncating The_parent_stream_has_a_nested_column_with_a_substream_with_a_rather_long_name (#78) to The_parent_stream_ha_th_a_rather_long_name (#43)
�[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_get_nested_hashed_table_name[json_path0-parent_30c_child-parent_30c_child] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_get_nested_hashed_table_name[json_path1-the_parent_stream__cd9_short_substream_name-The_parent_stream_has_a_nested_column_with_a_cd9_short_substream_name] �[32mPASSED�[0m
unit_tests/test_table_name_registry.py::test_get_nested_hashed_table_name[json_path2-the_parent_0a5_substream_wi__her_long_name-The_parent_stream_has_a_nested_column_with_a_0a5_substream_with_a_rather_long_name] Truncating substream_with_a_rather_long_name (#33) to substream_wi_her_long_name (#27)
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_is_ssh_tunnelling �[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_is_port_free port 13055 is free
port 13055 unsuitable: [Errno 98] Address already in use
port 13055 is free
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_pick_a_port port 50001 is free
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_bigquery transform_bigquery
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_bigquery_no_credentials transform_bigquery
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_bigquery_with_embedded_project_id transform_bigquery
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_bigquery_with_embedded_mismatched_project_id transform_bigquery
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_bigquery_with_invalid_format transform_bigquery
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_postgres transform_postgres
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_postgres_ssh port 50001 is free
transform_postgres
port 50001 is free
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_snowflake transform_snowflake
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_mysql transform_mysql
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_mssql transform_mysql
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform_clickhouse transform_clickhouse
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_transform transform_postgres
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_parse Namespace(config='config.json', integration_type=<DestinationType.postgres: 'postgres'>, out='out.yml')
�[32mPASSED�[0m
unit_tests/test_transform_config.py::TestTransformConfig::test_write_ssh_config �[32mPASSED�[0m
�[32m============================= �[32m�[1m164 passed�[0m�[32m in 1.22s�[0m�[32m ==============================�[0m
Integration
Put your integration tests output here.
Acceptance
Put your acceptance tests output here.