Skip to content

Commit

Permalink
Weird tests not running
Browse files Browse the repository at this point in the history
  • Loading branch information
elzette-van-rensburg committed Apr 3, 2024
1 parent 142d157 commit e36333c
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 4 deletions.
98 changes: 98 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
import pytest
import os

pytest_plugins = ["dbt.tests.fixtures.project"]


def pytest_addoption(parser):
parser.addoption("--profile", action="store", default="postgres", type=str)


# Using @pytest.mark.skip_profile('postgres') uses the 'skip_by_profile_type'
# autouse fixture below
def pytest_configure(config):
config.addinivalue_line(
"markers",
"skip_profile(profile): skip test for the given profile",
)
config.addinivalue_line(
"markers",
"only_profile(profile): only test the given profile",
)


@pytest.fixture(scope="session")
def dbt_profile_target(request):
profile_type = request.config.getoption("--profile")
if profile_type == "postgres":
target = postgres_target()
elif profile_type == "redshift":
target = redshift_target()
elif profile_type == "snowflake":
target = snowflake_target()
elif profile_type == "bigquery":
target = bigquery_target()
else:
raise ValueError(f"Invalid profile type '{profile_type}'")
return target


def postgres_target():
return {
"type": "postgres",
"host": os.getenv('POSTGRES_TEST_HOST'),
"user": os.getenv('POSTGRES_TEST_USER'),
"pass": os.getenv('POSTGRES_TEST_PASS'),
"port": int(os.getenv('POSTGRES_TEST_PORT')),
"dbname": os.getenv('POSTGRES_TEST_DBNAME'),
}


def redshift_target():
return {
"type": "redshift",
"host": os.getenv('REDSHIFT_TEST_HOST'),
"user": os.getenv('REDSHIFT_TEST_USER'),
"pass": os.getenv('REDSHIFT_TEST_PASS'),
"port": int(os.getenv('REDSHIFT_TEST_PORT')),
"dbname": os.getenv('REDSHIFT_TEST_DBNAME'),
}


def bigquery_target():
return {
"type": "bigquery",
"method": "service-account",
"keyfile": os.getenv('BIGQUERY_SERVICE_KEY_PATH'),
"project": os.getenv('BIGQUERY_TEST_DATABASE'),
}


def snowflake_target():
return {
"type": "snowflake",
"account": os.getenv('SNOWFLAKE_TEST_ACCOUNT'),
"user": os.getenv('SNOWFLAKE_TEST_USER'),
"password": os.getenv('SNOWFLAKE_TEST_PASSWORD'),
"role": os.getenv('SNOWFLAKE_TEST_ROLE'),
"database": os.getenv('SNOWFLAKE_TEST_DATABASE'),
"warehouse": os.getenv('SNOWFLAKE_TEST_WAREHOUSE'),
}


@pytest.fixture(autouse=True)
def skip_by_profile_type(request):
profile_type = request.config.getoption("--profile")
if request.node.get_closest_marker("skip_profile"):
for skip_profile_type in request.node.get_closest_marker("skip_profile").args:
if skip_profile_type == profile_type:
pytest.skip("skipped on '{profile_type}' profile")


@pytest.fixture(autouse=True)
def only_profile_type(request):
profile_type = request.config.getoption("--profile")
if request.node.get_closest_marker("only_profile"):
for only_profile_type in request.node.get_closest_marker("only_profile").args:
if only_profile_type != profile_type:
pytest.skip("skipped on '{profile_type}' profile")
2 changes: 1 addition & 1 deletion dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ snapshot-paths: ["jaffle_shop/snapshots"]
target-path: "target"
clean-targets:
- "target"
- "dbt_modules"
- "dbt_packages"
- "logs"

require-dbt-version: [">=1.0.0", "<2.0.0"]
Expand Down
6 changes: 3 additions & 3 deletions packages.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
packages:
- package: dbt-labs/dbt_utils
version: 0.8.6
version: 1.1.1
- package: dbt-labs/spark_utils
version: 0.3.0
- package: dbt-labs/codegen
version: 0.7.0
version: 0.12.1
- package: dbt-labs/dbt_project_evaluator
version: 0.1.3
version: 0.6.2

0 comments on commit e36333c

Please sign in to comment.