Skip to content

Commit e616d80

Browse files
committed
fix test_missing_count
1 parent 73c88ed commit e616d80

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

integration_tests/tests/data_seeder.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import csv
2+
from contextlib import contextmanager
23
from pathlib import Path
3-
from typing import List
4+
from typing import Generator, List
45

56
from elementary.clients.dbt.base_dbt_runner import BaseDbtRunner
67
from logger import get_logger
@@ -18,7 +19,8 @@ def __init__(
1819
self.dbt_project_path = dbt_project_path
1920
self.seeds_dir_path = seeds_dir_path
2021

21-
def seed(self, data: List[dict], table_name: str):
22+
@contextmanager
23+
def seed(self, data: List[dict], table_name: str) -> Generator[None, None, None]:
2224
seed_path = self.seeds_dir_path.joinpath(f"{table_name}.csv")
2325
try:
2426
with seed_path.open("w") as seed_file:
@@ -28,5 +30,7 @@ def seed(self, data: List[dict], table_name: str):
2830
writer.writerows(data)
2931
seed_file.flush()
3032
self.dbt_runner.seed(select=str(relative_seed_path), full_refresh=True)
33+
34+
yield
3135
finally:
3236
seed_path.unlink()

integration_tests/tests/dbt_project.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from contextlib import contextmanager, nullcontext
44
from pathlib import Path
55
from tempfile import NamedTemporaryFile
6-
from typing import Any, Dict, List, Literal, Optional, Union, overload
6+
from typing import Any, Dict, Generator, List, Literal, Optional, Union, overload
77
from uuid import uuid4
88

99
from data_seeder import DbtDataSeeder
@@ -235,9 +235,19 @@ def test(
235235
return [test_result] if multiple_results else test_result
236236

237237
def seed(self, data: List[dict], table_name: str):
238-
return DbtDataSeeder(
238+
with DbtDataSeeder(
239239
self.dbt_runner, self.project_dir_path, self.seeds_dir_path
240-
).seed(data, table_name)
240+
).seed(data, table_name):
241+
return
242+
243+
@contextmanager
244+
def seed_context(
245+
self, data: List[dict], table_name: str
246+
) -> Generator[None, None, None]:
247+
with DbtDataSeeder(
248+
self.dbt_runner, self.project_dir_path, self.seeds_dir_path
249+
).seed(data, table_name):
250+
yield
241251

242252
@contextmanager
243253
def create_temp_model_for_existing_table(

integration_tests/tests/test_string_monitors.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
def test_missing_count(dbt_project: DbtProject, test_id: str):
77
missing_values = [None, " ", "null", "NULL"]
88
data = [{COLUMN_NAME: value} for value in ["a", "b", "c", " a "] + missing_values]
9-
dbt_project.seed(data, test_id)
10-
result = dbt_project.run_query(
11-
f"select {{{{ elementary.missing_count('{COLUMN_NAME}') }}}} "
12-
f"as missing_count from {{{{ generate_schema_name() }}}}.{test_id}"
13-
)[0]
9+
with dbt_project.seed_context(data, test_id):
10+
result = dbt_project.run_query(
11+
f"select {{{{ elementary.missing_count('{COLUMN_NAME}') }}}} "
12+
f'as missing_count from {{{{ ref("{test_id}") }}}}'
13+
)[0]
1414
assert result["missing_count"] == len(missing_values)

0 commit comments

Comments
 (0)