Skip to content

Commit

Permalink
typing annotations
Browse files Browse the repository at this point in the history
  • Loading branch information
sdebruyn committed Mar 28, 2024
1 parent 1783909 commit 6b308db
Show file tree
Hide file tree
Showing 15 changed files with 39 additions and 25 deletions.
4 changes: 2 additions & 2 deletions dbt/include/timescaledb/macros/relations/hypertable.sql
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@

{% macro set_integer_now_func(relation, integer_now_func, integer_now_func_sql = none) %}
{% if integer_now_func_sql %}
create or replace function {{ integer_now_func }}() returns bigint language sql immutable as $$
create or replace function {{ relation.database }}.{{ relation.schema }}.{{ integer_now_func }}() returns bigint language sql immutable as $$
{{ integer_now_func_sql }}
$$;
{% endif %}
select set_integer_now_func('{{ relation }}', '{{ integer_now_func }}');
select set_integer_now_func('{{ relation }}', '{{ relation.database }}.{{ relation.schema }}.{{ integer_now_func }}');
{% endmacro %}
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,4 @@ ignore = ["PLR2004", "ANN101", "ANN401"]
[tool.pytest.ini_options]
env_files = ["test.env"]
testpaths = ["tests"]
addopts = "-v -n auto --cov-report=xml"
addopts = "-W ignore::pytest.PytestCollectionWarning -v -n auto --cov-report=xml"
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import (
check_result_nodes_by_name,
run_dbt,
Expand Down Expand Up @@ -42,7 +43,7 @@ def models(self) -> dict[str, Any]:
""",
}

def test_continuous_aggregate(self, project, unique_schema: str) -> None: # noqa: ANN001
def test_continuous_aggregate(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 2 # noqa
check_result_nodes_by_name(results, ["base", "test_model"])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import check_result_nodes_by_name, run_dbt


Expand Down Expand Up @@ -45,7 +46,7 @@ def models(self) -> dict[str, Any]:
""",
}

def test_continuous_aggregate(self, project, unique_schema: str) -> None: # noqa: ANN001
def test_continuous_aggregate(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 2
check_result_nodes_by_name(results, ["base", "test_model"])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import run_dbt


Expand Down Expand Up @@ -44,6 +45,6 @@ def models(self) -> dict[str, Any]:
"without_default.sql": self._model_sql(False),
}

def test_continuous_aggregate(self, project: Any) -> None:
def test_continuous_aggregate(self, project: TestProjInfo) -> None:
results = run_dbt(["run"])
assert len(results) == 3
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import (
check_result_nodes_by_name,
run_dbt,
Expand Down Expand Up @@ -41,7 +42,7 @@ def models(self) -> dict[str, Any]:
""",
}

def test_continuous_aggregate(self, project, unique_schema: str) -> None: # noqa: ANN001
def test_continuous_aggregate(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 2 # noqa
check_result_nodes_by_name(results, ["base", "test_model"])
Expand Down
3 changes: 2 additions & 1 deletion tests/functional/adapter/hypertable/test_hypertable.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import (
check_result_nodes_by_name,
relation_from_name,
Expand Down Expand Up @@ -40,7 +41,7 @@ def project_config_update(self) -> dict[str, Any]:
def models(self) -> dict[str, Any]:
return {f"{k}.sql": _model_sql for k in _models_with_configs.keys()}

def test_hypertable(self, project, unique_schema: str) -> None: # noqa: ANN001
def test_hypertable(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == len(_models_with_configs)
check_result_nodes_by_name(results, _models_with_configs.keys())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import check_result_nodes_by_name, run_dbt


Expand Down Expand Up @@ -55,7 +56,7 @@ def validate_jobs(self, timescale_jobs: list) -> None:
job = timescale_jobs[0]
assert job[9]

def test_hypertable(self, project, unique_schema: str) -> None: # noqa: ANN001
def test_hypertable(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 1
check_result_nodes_by_name(results, ["test_model"])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import check_result_nodes_by_name, run_dbt


Expand Down Expand Up @@ -31,7 +32,7 @@ def models(self) -> dict[str, Any]:
"test_model.sql": "select current_timestamp as time_column, 1 as id, 2 as col_1",
}

def test_hypertable_dimension(self, project: Any, unique_schema: str) -> None:
def test_hypertable_dimension(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 1
check_result_nodes_by_name(results, ["test_model"])
Expand Down Expand Up @@ -81,7 +82,7 @@ def project_config_update(self) -> dict[str, Any]:
},
}

def test_hypertable_dimension_throw_exception(self, project: Any) -> None:
def test_hypertable_dimension_throw_exception(self, project: TestProjInfo) -> None:
results = run_dbt(["run"], expect_pass=False)
assert len(results) == 1
assert str(results[0].status) == "error"
3 changes: 2 additions & 1 deletion tests/functional/adapter/hypertable/test_hypertable_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import run_dbt
from tests.utils import get_indexes_sql

Expand Down Expand Up @@ -32,7 +33,7 @@ def models(self) -> dict[str, Any]:
"without_default.sql": self._model_sql(False),
}

def test_table(self, project: Any, unique_schema: str) -> None:
def test_table(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 2

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import run_dbt


Expand Down Expand Up @@ -32,20 +33,21 @@ def models(self) -> dict[str, Any]:
"test_model.sql": "select 1::bigint as id",
}

def prepare_func(self, project: Any, unique_schema: str) -> None:
def prepare_func(self, project: TestProjInfo, unique_schema: str) -> None:
pass

def test_integer_now_func(self, project: Any, unique_schema: str) -> None:
def test_integer_now_func(self, project: TestProjInfo, unique_schema: str) -> None:
self.prepare_func(project, unique_schema)
results = run_dbt(["run"])
assert len(results) == 1


class TestHypertableIntegerNowFuncWithoutSQL(BaseTestHypertableIntegerNowFunc):
def prepare_func(self, project: Any, unique_schema: str) -> None:
def prepare_func(self, project: TestProjInfo, unique_schema: str) -> None:
project.run_sql(
f"""
create or replace function {unique_schema}.test_model_now() returns bigint language sql immutable as $$
create or replace function {project.database}.{unique_schema}.test_model_now()
returns bigint language sql immutable as $$
select extract(epoch from now())::bigint
$$;
"""
Expand Down
3 changes: 2 additions & 1 deletion tests/functional/adapter/hypertable/test_reorder_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import run_dbt
from tests.utils import get_indexes_sql

Expand Down Expand Up @@ -36,7 +37,7 @@ def models(self) -> dict[str, Any]:
"sep_index.sql": self._model_sql(False),
}

def test_reorder_policy(self, project: Any, unique_schema: str) -> None:
def test_reorder_policy(self, project: TestProjInfo, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == 2

Expand Down
5 changes: 3 additions & 2 deletions tests/functional/adapter/test_retention_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import run_dbt

RETENTION_CONFIGS: list = [
Expand Down Expand Up @@ -56,7 +57,7 @@ def project_config_update(self, model_configs: dict[str, Any]) -> dict[str, Any]
"models": {"retention_policy_tests": model_configs},
}

def test_retention_policy(self, project: Any, model_count: int, unique_schema: str) -> None:
def test_retention_policy(self, project: TestProjInfo, model_count: int, unique_schema: str) -> None:
results = run_dbt(["run"])
assert len(results) == model_count

Expand Down Expand Up @@ -95,7 +96,7 @@ def model_configs(self, retention_config: dict[str, Any]) -> dict[str, Any]:
}
}

def test_retention_policy(self, project: Any, model_count: int, unique_schema: str) -> None:
def test_retention_policy(self, project: TestProjInfo, model_count: int, unique_schema: str) -> None:
super().test_retention_policy(project, model_count, unique_schema)

cagg_jobs = project.run_sql(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import (
run_dbt,
)
Expand All @@ -27,10 +28,10 @@ def project_config_update(self, extra_model_config: dict[str, Any]) -> dict[str,
def models(self) -> dict[str, Any]:
return {"vht.sql": "--"}

def run_assertions(self, project, unique_schema: str, hypertable) -> None: # noqa: ANN001
def run_assertions(self, project: TestProjInfo, unique_schema: str, hypertable: Any) -> None:
pass

def test_virtual_hypertable(self, project, unique_schema: str) -> None: # noqa: ANN001
def test_virtual_hypertable(self, project: TestProjInfo, unique_schema: str) -> None:
project.run_sql(f"""
create table {unique_schema}.vht (time_column timestamp, col_1 int);
select create_hypertable('{unique_schema}.vht', by_range('time_column'));""")
Expand Down Expand Up @@ -76,7 +77,7 @@ class TestVirtualHypertableCompression(BaseTestVirtualHypertable):
def extra_model_config(self) -> dict[str, Any]:
return {"+compression": {"after": "interval '1 day'", "schedule_interval": "interval '6 day'"}}

def run_assertions(self, project, unique_schema: str, hypertable) -> None: # noqa: ANN001
def run_assertions(self, project: TestProjInfo, unique_schema: str, hypertable: Any) -> None:
assert hypertable[5] # compression_enabled

compression_settings = project.run_sql(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.tests.fixtures.project import TestProjInfo
from dbt.tests.util import run_dbt


Expand Down Expand Up @@ -31,19 +32,19 @@ def models(self) -> dict[str, Any]:
"vht.sql": "--",
}

def prepare_func(self, project: Any, unique_schema: str) -> None:
def prepare_func(self, project: TestProjInfo, unique_schema: str) -> None:
project.run_sql(f"""
create table {unique_schema}.vht (id bigint);
select create_hypertable('{unique_schema}.vht', by_range('id'));""")

def test_integer_now_func(self, project: Any, unique_schema: str) -> None:
def test_integer_now_func(self, project: TestProjInfo, unique_schema: str) -> None:
self.prepare_func(project, unique_schema)
results = run_dbt(["run"])
assert len(results) == 1


class TestVirtualHypertableIntegerNowFuncWithoutSQL(BaseTestVirtualHypertableIntegerNowFunc):
def prepare_func(self, project: Any, unique_schema: str) -> None:
def prepare_func(self, project: TestProjInfo, unique_schema: str) -> None:
super().prepare_func(project, unique_schema)
project.run_sql(
f"""
Expand Down

0 comments on commit 6b308db

Please sign in to comment.