Skip to content
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

Migrate to dbt-common + dbt-adapters #342

Merged
Merged
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
1e25859
Migrate to dbt-common + dbt-adapters
jtcohen6 Feb 19, 2024
86eface
Try different install reqs
jtcohen6 Feb 19, 2024
2d36968
Fix unit tests
jtcohen6 Feb 19, 2024
3ad787e
Bonus: functional tests for dbt unit testing
jtcohen6 Feb 19, 2024
d4d5939
bump dbt-common and dbt-adapters to 1.0.0b1
MichelleArk Feb 29, 2024
10034b3
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
MichelleArk Feb 29, 2024
5712711
implement DuckDbRelation.create_from, fix TestExternalSources::test_e…
MichelleArk Feb 29, 2024
af5f989
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
MichelleArk Mar 15, 2024
9c8113a
use RelationConfig attributes in create_from_source
MichelleArk Mar 15, 2024
80b709d
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
MichelleArk Mar 19, 2024
b8fdca0
formatting + initial mypy fixes
MichelleArk Mar 19, 2024
6527752
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
jtcohen6 Apr 9, 2024
9a0ba02
Revert dev-requirements
jtcohen6 Apr 10, 2024
6dcc39c
Readd dbt-tests-adapter
jtcohen6 Apr 10, 2024
5f594c4
Readd dbt-core to setup.py for install back-compat
jtcohen6 Apr 16, 2024
8511b94
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
jtcohen6 Apr 16, 2024
0750e0c
Merge remote-tracking branch 'origin/master' into jerco/migrate-dbt-c…
jtcohen6 Apr 16, 2024
a85cef9
Skip BV for TestUnitTestingTypesDuckDB
jtcohen6 Apr 19, 2024
298f27c
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
jwills May 3, 2024
08d5530
Merge branch 'master' into jerco/migrate-dbt-common-adapters-interfaces
jwills May 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Bonus: functional tests for dbt unit testing
  • Loading branch information
jtcohen6 committed Feb 19, 2024
commit 3ad787e1a2406c6db50968edd8c8d06595a02c4e
35 changes: 35 additions & 0 deletions tests/functional/adapter/test_unit_testing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import pytest

from dbt.tests.adapter.unit_testing.test_types import BaseUnitTestingTypes
from dbt.tests.adapter.unit_testing.test_case_insensitivity import BaseUnitTestCaseInsensivity
from dbt.tests.adapter.unit_testing.test_invalid_input import BaseUnitTestInvalidInput


class TestUnitTestingTypesDuckDB(BaseUnitTestingTypes):
Copy link
Contributor Author

@jtcohen6 jtcohen6 Apr 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jwills I pulled these in (selfishly), since it seemed like unit testing might "just work" on dbt-duckdb with the v1.8 interface updates.

It's all well & good on the Real Duck, but it looks like the test is failing on BuenaVista for the last data type in the list (ARRAY[1,2,3]):

  File "/home/runner/work/dbt-duckdb/dbt-duckdb/.tox/buenavista/lib/python3.9/site-packages/buenavista/postgres.py", line 104, in <lambda>
    BVType.INTEGERARRAY: (1007, lambda v: "{" + ",".join(v) + "}"),
TypeError: sequence item 0: expected str instance, int found
sequence item 0: expected str instance, int found
---------------------- CSV report: buenavista_results.csv ----------------------
=========================== short test summary info ============================
FAILED tests/functional/adapter/test_unit_testing.py::TestUnitTestingTypesDuckDB::test_unit_test_data_type - AssertionError: unit test failed when testing model with ARRAY[1,2,3]

How would you feel about me adding @pytest.mark.skip_profile("buenavista") to this test? I know that adds a bit of tech debt / mystery for you later on

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that’s just because I don’t properly support array types in the BV Postgres serialization, so it’s perfectly understandable and okay to mark it as skipped

@pytest.fixture
def data_types(self):
# sql_value, yaml_value
return [
["1", "1"],
["2.0", "2.0"],
["'12345'", "12345"],
["'string'", "string"],
["true", "true"],
["DATE '2020-01-02'", "2020-01-02"],
["TIMESTAMP '2013-11-03 00:00:00-0'", "2013-11-03 00:00:00-0"],
["'2013-11-03 00:00:00-0'::TIMESTAMPTZ", "2013-11-03 00:00:00-0"],
[
"{'Alberta':'Edmonton','Manitoba':'Winnipeg'}",
"{'Alberta':'Edmonton','Manitoba':'Winnipeg'}",
],
["ARRAY['a','b','c']", "['a','b','c']"],
["ARRAY[1,2,3]", "[1, 2, 3]"],
]


class TestUnitTestCaseInsensitivityDuckDB(BaseUnitTestCaseInsensivity):
pass


class TestUnitTestInvalidInputDuckDB(BaseUnitTestInvalidInput):
pass
Loading