Skip to content

Commit

Permalink
fix #10422: add test for env_var casing on windows
Browse files Browse the repository at this point in the history
  • Loading branch information
aranke committed Jul 12, 2024
1 parent 1aeff2c commit 7367e5e
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,4 @@ venv/

# poetry
poetry.lock
.venv/
62 changes: 62 additions & 0 deletions tests/functional/context_methods/test_env_vars_casing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import os

import pytest

from dbt.tests.util import run_dbt

context_sql = """
{{
config(
materialized='table'
)
}}
select
'{{ env_var("local_user", "") }}' as lowercase,
'{{ env_var("LOCAL_USER", "") }}' as uppercase,
'{{ env_var("lOcAl_UsEr", "") }}' as mixedcase
"""


class TestEnvVars:
@pytest.fixture(scope="class")
def models(self):
return {"context.sql": context_sql}

@pytest.fixture(scope="class", autouse=True)
def setup(self):
os.environ["local_user"] = "dan"
yield
del os.environ["local_user"]

def get_ctx_vars(self, project):
fields = [
"lowercase",
"uppercase",
"mixedcase",
]
field_list = ", ".join(['"{}"'.format(f) for f in fields])
query = "select {field_list} from {schema}.context".format(
field_list=field_list, schema=project.test_schema
)
vals = project.run_sql(query, fetch="all")
ctx = dict([(k, v) for (k, v) in zip(fields, vals[0])])
return ctx

def test_env_vars(
self,
project,
):
results = run_dbt(["run"])
assert len(results) == 1
ctx = self.get_ctx_vars(project)

assert ctx["lowercase"] == "dan"

if os.name == "nt":
assert ctx["uppercase"] == "dan"
assert ctx["mixedcase"] == "dan"
else:
assert ctx["uppercase"] == ""
assert ctx["mixedcase"] == ""

0 comments on commit 7367e5e

Please sign in to comment.