Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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_),
Comment thread
jochenchrist marked this conversation as resolved.
_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_),
Comment thread
jochenchrist marked this conversation as resolved.
_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_),
Comment thread
jochenchrist marked this conversation as resolved.
_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_),
Comment thread
jochenchrist marked this conversation as resolved.
_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