Skip to content

Commit e4a7869

Browse files
committed
updated tests
1 parent e719d71 commit e4a7869

File tree

6 files changed

+77
-33
lines changed

6 files changed

+77
-33
lines changed

tests/functional/adapter/test_basic.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from dbt.tests.adapter.basic.test_singular_tests_ephemeral import BaseSingularTestsEphemeral
1414
from dbt.tests.adapter.basic.test_snapshot_check_cols import BaseSnapshotCheckCols
1515
from dbt.tests.adapter.basic.test_snapshot_timestamp import BaseSnapshotTimestamp
16+
from dbt.tests.adapter.basic.test_table_materialization import BaseTableMaterialization
1617
from dbt.tests.adapter.basic.test_validate_connection import BaseValidateConnection
1718

1819

@@ -69,3 +70,7 @@ class TestBaseCachingSQLServer(BaseAdapterMethod):
6970

7071
class TestValidateConnectionSQLServer(BaseValidateConnection):
7172
pass
73+
74+
75+
class TestTableMaterializationSQLServer(BaseTableMaterialization):
76+
...

tests/functional/adapter/test_data_types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def seeds(self):
4646
- name: expected
4747
config:
4848
column_types:
49-
timestamp_col: "datetimeoffset"
49+
timestamp_col: "datetime2"
5050
"""
5151

5252
return {

tests/functional/adapter/test_debug.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import os
22
import re
33

4+
import pytest
45
import yaml
6+
from dbt.cli.exceptions import DbtUsageException
57
from dbt.tests.adapter.dbt_debug.test_dbt_debug import BaseDebug, BaseDebugProfileVariable
68
from dbt.tests.util import run_dbt
79

@@ -48,7 +50,9 @@ def test_badproject(self, project):
4850
self.check_project(splitout)
4951

5052
def test_not_found_project(self, project):
51-
run_dbt(["debug", "--project-dir", "nopass"], expect_pass=False)
53+
with pytest.raises(DbtUsageException) as dbt_exeption:
54+
run_dbt(["debug", "--project-dir", "nopass"], expect_pass=False)
55+
dbt_exeption = dbt_exeption
5256
splitout = self.capsys.readouterr().out.split("\n")
5357
self.check_project(splitout, msg="ERROR not found")
5458

tests/functional/adapter/test_grants.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22
from dbt.tests.adapter.grants.test_invalid_grants import BaseInvalidGrants
33
from dbt.tests.adapter.grants.test_model_grants import BaseModelGrants
44
from dbt.tests.adapter.grants.test_seed_grants import BaseSeedGrants
5-
from dbt.tests.adapter.grants.test_snapshot_grants import BaseSnapshotGrants
5+
from dbt.tests.adapter.grants.test_snapshot_grants import (
6+
BaseSnapshotGrants,
7+
user2_snapshot_schema_yml,
8+
)
9+
from dbt.tests.util import get_manifest, run_dbt, run_dbt_and_capture, write_file
610

711

812
class TestIncrementalGrantsSQLServer(BaseIncrementalGrants):
@@ -26,4 +30,34 @@ class TestSeedGrantsSQLServer(BaseSeedGrants):
2630

2731

2832
class TestSnapshotGrantsSQLServer(BaseSnapshotGrants):
29-
pass
33+
def test_snapshot_grants(self, project, get_test_users):
34+
test_users = get_test_users
35+
select_privilege_name = self.privilege_grantee_name_overrides()["select"]
36+
37+
# run the snapshot
38+
results = run_dbt(["snapshot"])
39+
assert len(results) == 1
40+
manifest = get_manifest(project.project_root)
41+
snapshot_id = "snapshot.test.my_snapshot"
42+
snapshot = manifest.nodes[snapshot_id]
43+
expected = {select_privilege_name: [test_users[0]]}
44+
assert snapshot.config.grants == expected
45+
self.assert_expected_grants_match_actual(project, "my_snapshot", expected)
46+
47+
# run it again, nothing should have changed
48+
# we do expect to see the grant again.
49+
# dbt selects into a temporary table, drops existing, selects into original table name
50+
# this means we need to grant select again, so we will see the grant again
51+
(results, log_output) = run_dbt_and_capture(["--debug", "snapshot"])
52+
assert len(results) == 1
53+
assert "revoke " not in log_output
54+
assert "grant " in log_output
55+
self.assert_expected_grants_match_actual(project, "my_snapshot", expected)
56+
57+
# change the grantee, assert it updates
58+
updated_yaml = self.interpolate_name_overrides(user2_snapshot_schema_yml)
59+
write_file(updated_yaml, project.project_root, "snapshots", "schema.yml")
60+
(results, log_output) = run_dbt_and_capture(["--debug", "snapshot"])
61+
assert len(results) == 1
62+
expected = {select_privilege_name: [test_users[1]]}
63+
self.assert_expected_grants_match_actual(project, "my_snapshot", expected)

tests/functional/adapter/test_seed.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828
from dbt.adapters.sqlserver import SQLServerAdapter
2929

30-
fixed_setup_sql = seeds__expected_sql.replace("TIMESTAMP WITHOUT TIME ZONE", "DATETIME").replace(
31-
"TEXT", "VARCHAR(255)"
32-
)
30+
fixed_setup_sql = seeds__expected_sql.replace(
31+
"TIMESTAMP WITHOUT TIME ZONE", "DATETIME2(6)"
32+
).replace("TEXT", "VARCHAR(255)")
3333

3434
seeds__tricky_csv = """
3535
seed_id,seed_id_str,a_bool,looks_like_a_bool,a_date,looks_like_a_date,relative,weekday
@@ -104,7 +104,7 @@
104104
- name: a_date
105105
tests:
106106
- column_type:
107-
type: datetime
107+
type: datetime2
108108
- name: looks_like_a_date
109109
tests:
110110
- column_type:
@@ -217,5 +217,6 @@ def test_custom_batch_size(self, project, logs_dir):
217217
run_dbt(["seed"])
218218
with open(os.path.join(logs_dir, "dbt.log"), "r") as fp:
219219
logs = "".join(fp.readlines())
220-
221-
assert "Inserting batches of 350 records" in logs
220+
# this is changed from 350.
221+
# Fabric goes -1 of min batch of (2100/number of columns -1) or 400
222+
assert "Inserting batches of 349.0 records" in logs

tests/functional/adapter/test_utils.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ def macros(self):
4545
}
4646

4747

48-
class TestAnyValueSQLServer(BaseFixedMacro, BaseAnyValue):
48+
class TestAnyValueSQLServer(BaseAnyValue):
4949
pass
5050

5151

5252
@pytest.mark.skip("bool_or not supported in this adapter")
53-
class TestBoolOrSQLServer(BaseFixedMacro, BaseBoolOr):
53+
class TestBoolOrSQLServer(BaseBoolOr):
5454
pass
5555

5656

57-
class TestCastBoolToTextSQLServer(BaseFixedMacro, BaseCastBoolToText):
57+
class TestCastBoolToTextSQLServer(BaseCastBoolToText):
5858
@pytest.fixture(scope="class")
5959
def models(self):
6060
models__test_cast_bool_to_text_sql = """
@@ -82,7 +82,7 @@ def models(self):
8282
}
8383

8484

85-
class TestConcatSQLServer(BaseFixedMacro, BaseConcat):
85+
class TestConcatSQLServer(BaseConcat):
8686
@pytest.fixture(scope="class")
8787
def seeds(self):
8888
return {
@@ -94,7 +94,7 @@ def seeds(self):
9494
}
9595

9696

97-
class TestDateTruncSQLServer(BaseFixedMacro, BaseDateTrunc):
97+
class TestDateTruncSQLServer(BaseDateTrunc):
9898
pass
9999

100100

@@ -105,41 +105,41 @@ class TestDateTruncSQLServer(BaseFixedMacro, BaseDateTrunc):
105105
,d41d8cd98f00b204e9800998ecf8427e"""
106106

107107

108-
class TestHashSQLServer(BaseFixedMacro, BaseHash):
108+
class TestHashSQLServer(BaseHash):
109109
@pytest.fixture(scope="class")
110110
def seeds(self):
111111
return {"data_hash.csv": seeds__data_hash_csv}
112112

113113

114-
class TestStringLiteralSQLServer(BaseFixedMacro, BaseStringLiteral):
114+
class TestStringLiteralSQLServer(BaseStringLiteral):
115115
pass
116116

117117

118-
class TestSplitPartSQLServer(BaseFixedMacro, BaseSplitPart):
118+
class TestSplitPartSQLServer(BaseSplitPart):
119119
pass
120120

121121

122-
class TestDateDiffSQLServer(BaseFixedMacro, BaseDateDiff):
122+
class TestDateDiffSQLServer(BaseDateDiff):
123123
pass
124124

125125

126-
class TestEscapeSingleQuotesSQLServer(BaseFixedMacro, BaseEscapeSingleQuotesQuote):
126+
class TestEscapeSingleQuotesSQLServer(BaseEscapeSingleQuotesQuote):
127127
pass
128128

129129

130-
class TestIntersectSQLServer(BaseFixedMacro, BaseIntersect):
130+
class TestIntersectSQLServer(BaseIntersect):
131131
pass
132132

133133

134-
class TestLastDaySQLServer(BaseFixedMacro, BaseLastDay):
134+
class TestLastDaySQLServer(BaseLastDay):
135135
pass
136136

137137

138-
class TestLengthSQLServer(BaseFixedMacro, BaseLength):
138+
class TestLengthSQLServer(BaseLength):
139139
pass
140140

141141

142-
class TestListaggSQLServer(BaseFixedMacro, BaseListagg):
142+
class TestListaggSQLServer(BaseListagg):
143143
# Only supported in SQL Server 2017 and later or cloud versions
144144
# DISTINCT not supported
145145
# limit not supported
@@ -221,15 +221,15 @@ def models(self):
221221
}
222222

223223

224-
class TestRightSQLServer(BaseFixedMacro, BaseRight):
224+
class TestRightSQLServer(BaseRight):
225225
pass
226226

227227

228-
class TestSafeCastSQLServer(BaseFixedMacro, BaseSafeCast):
228+
class TestSafeCastSQLServer(BaseSafeCast):
229229
pass
230230

231231

232-
class TestDateAddSQLServer(BaseFixedMacro, BaseDateAdd):
232+
class TestDateAddSQLServer(BaseDateAdd):
233233
@pytest.fixture(scope="class")
234234
def project_config_update(self):
235235
return {
@@ -247,15 +247,15 @@ def project_config_update(self):
247247
}
248248

249249

250-
class TestExceptSQLServer(BaseFixedMacro, BaseExcept):
250+
class TestExceptSQLServer(BaseExcept):
251251
pass
252252

253253

254-
class TestPositionSQLServer(BaseFixedMacro, BasePosition):
254+
class TestPositionSQLServer(BasePosition):
255255
pass
256256

257257

258-
class TestReplaceSQLServer(BaseFixedMacro, BaseReplace):
258+
class TestReplaceSQLServer(BaseReplace):
259259
pass
260260

261261

@@ -264,15 +264,15 @@ class TestCurrentTimestampSQLServer(BaseCurrentTimestampNaive):
264264

265265

266266
@pytest.mark.skip(reason="arrays not supported")
267-
class TestArrayAppendSQLServer(BaseFixedMacro, BaseArrayAppend):
267+
class TestArrayAppendSQLServer(BaseArrayAppend):
268268
pass
269269

270270

271271
@pytest.mark.skip(reason="arrays not supporteTd")
272-
class TestArrayConcatSQLServer(BaseFixedMacro, BaseArrayConcat):
272+
class TestArrayConcatSQLServer(BaseArrayConcat):
273273
pass
274274

275275

276276
@pytest.mark.skip(reason="arrays not supported")
277-
class TestArrayConstructSQLServer(BaseFixedMacro, BaseArrayConstruct):
277+
class TestArrayConstructSQLServer(BaseArrayConstruct):
278278
pass

0 commit comments

Comments
 (0)