Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,10 @@ models:
|----------------------------------|--------------------|-------------|
| `DATACONTRACT_POSTGRES_USERNAME` | `postgres` | Username |
| `DATACONTRACT_POSTGRES_PASSWORD` | `mysecretpassword` | Password |
| `DATACONTRACT_POSTGRES_HOST` | `localhost` | Hostname |
| `DATACONTRACT_POSTGRES_PORT` | `5432` | Port |
| `DATACONTRACT_POSTGRES_DATABASE` | `dbname` | Database |
| `DATACONTRACT_POSTGRES_SCHEMA` | `public` | Schema |


#### Trino
Expand Down Expand Up @@ -2157,4 +2161,4 @@ Created by [Stefan Negele](https://www.linkedin.com/in/stefan-negele-573153112/)



<a href="https://github.com/datacontract/datacontract-cli" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
<a href="https://github.com/datacontract/datacontract-cli" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
10 changes: 5 additions & 5 deletions datacontract/engines/soda/connections/postgres.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ def to_postgres_soda_configuration(server):
soda_configuration = {
f"data_source {server.type}": {
"type": "postgres",
"host": server.host,
"port": str(server.port),
"host": os.getenv("DATACONTRACT_POSTGRES_HOST", server.host),
"port": os.getenv("DATACONTRACT_POSTGRES_PORT", str(server.port)),
"username": os.getenv("DATACONTRACT_POSTGRES_USERNAME"),
"password": os.getenv("DATACONTRACT_POSTGRES_PASSWORD"),
"database": server.database,
"schema": server.schema_,
"database": os.getenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
"schema": os.getenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
}
}

soda_configuration_str = yaml.dump(soda_configuration)
return soda_configuration_str
return soda_configuration_str
26 changes: 25 additions & 1 deletion tests/test_test_postgres.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ def remove_container():
def test_test_postgres(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this actually needed in the test?

monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
Comment on lines +27 to +30
_init_sql("fixtures/postgres/data/data.sql")

datacontract_file = "fixtures/postgres/datacontract.yaml"
Expand All @@ -40,6 +44,10 @@ def test_test_postgres(postgres_container, monkeypatch):
def test_test_postgres_odcs(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
Comment on lines +47 to +50
_init_sql("fixtures/postgres/data/data.sql")

datacontract_file = "fixtures/postgres/odcs.yaml"
Expand All @@ -56,6 +64,10 @@ def test_test_postgres_odcs(postgres_container, monkeypatch):
def test_test_postgres_case_sensitive_table_name(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
_init_sql("fixtures/postgres/data/data_case_sensitive.sql")

datacontract_file = "fixtures/postgres/datacontract_case_sensitive.yaml"
Expand All @@ -72,6 +84,10 @@ def test_test_postgres_case_sensitive_table_name(postgres_container, monkeypatch
def test_test_postgres_case_sensitive_table_name_odcs(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
_init_sql("fixtures/postgres/data/data_case_sensitive.sql")

datacontract_file = "fixtures/postgres/odcs_case_sensitive.odcs.yaml"
Expand All @@ -88,6 +104,10 @@ def test_test_postgres_case_sensitive_table_name_odcs(postgres_container, monkey
def test_test_postgres_servicelevels_freshness_should_fail(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
_init_sql("fixtures/postgres/data/data.sql")

datacontract_file = "fixtures/postgres/datacontract_servicelevels.yaml"
Expand All @@ -103,6 +123,10 @@ def test_test_postgres_servicelevels_freshness_should_fail(postgres_container, m
def test_test_postgres_servicelevels_freshness_should_fail_odcs(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
_init_sql("fixtures/postgres/data/data.sql")

datacontract_file = "fixtures/postgres/servicelevels.odcs.yaml"
Expand Down Expand Up @@ -149,4 +173,4 @@ def _init_sql(file_path):
cursor.execute(sql_commands)
connection.commit()
cursor.close()
connection.close()
connection.close()
10 changes: 9 additions & 1 deletion tests/test_test_quality.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ def remove_container():
def test_test_quality_valid(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
Comment on lines +24 to +27
_init_sql("fixtures/quality/data/data.valid.sql")
datacontract_file = "fixtures/quality/datacontract.yaml"
data_contract_str = _setup_datacontract(datacontract_file)
Expand All @@ -36,6 +40,10 @@ def test_test_quality_valid(postgres_container, monkeypatch):
def test_test_quality_invalid(postgres_container, monkeypatch):
monkeypatch.setenv("DATACONTRACT_POSTGRES_USERNAME", postgres.username)
monkeypatch.setenv("DATACONTRACT_POSTGRES_PASSWORD", postgres.password)
monkeypatch.setenv("DATACONTRACT_POSTGRES_HOST", server.host),
monkeypatch.setenv("DATACONTRACT_POSTGRES_PORT", server.port),
monkeypatch.setenv("DATACONTRACT_POSTGRES_DATABASE", server.database),
monkeypatch.setenv("DATACONTRACT_POSTGRES_SCHEMA", server.schema_),
Comment on lines +43 to +46
_init_sql("fixtures/quality/data/data.invalid.sql")
datacontract_file = "fixtures/quality/datacontract.yaml"
data_contract_str = _setup_datacontract(datacontract_file)
Expand Down Expand Up @@ -98,4 +106,4 @@ def _init_sql(file_path):
cursor.execute(sql_commands)
connection.commit()
cursor.close()
connection.close()
connection.close()
Loading