Skip to content

Commit

Permalink
Using API filters instead of manual filtration
Browse files Browse the repository at this point in the history
  • Loading branch information
aadel committed Feb 22, 2024
1 parent dfa7fd9 commit 4f377bd
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 21 deletions.
32 changes: 12 additions & 20 deletions tests/steps.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def create_database(self, session, headers):
self.delete_database(session, headers, db[0]["id"])
creation_params = {
"sqlalchemy_uri": self.settings["SOLR_CONNECTION_URI"],
"database_name": "sales_test_",
"database_name": self.settings["SUPERSET_DATABASE_NAME"],
}
db_creation_response = session.post(
self.settings["SUPERSET_URI"] + "/api/v1/database",
Expand All @@ -59,30 +59,22 @@ def get_database(self, session, headers, name):
return db

def delete_database(self, session, headers, database_id):
# pylint: disable=consider-using-f-string
datasets_response = session.get(
self.settings["SUPERSET_URI"] + "/api/v1/dataset", headers=headers,
params={"q":'{{"filters":[{{"col":"table_name","opr":"eq","value":"{}"}}]}}'.format(
self.settings["SUPERSET_DATABASE_NAME"])}
)
datasets = datasets_response.json()["result"]
for dataset in datasets:
self.delete_dataset(session, headers, dataset["id"])

response = session.delete(
self.settings["SUPERSET_URI"] + "/api/v1/database/" + str(database_id),
headers=headers,
)
if response.status_code != 200:
datasets_response = session.get(
self.settings["SUPERSET_URI"] + "/api/v1/dataset", headers=headers
)
datasets = datasets_response.json()["result"]
related_datasets = list(
filter(
lambda dataset: dataset["database"]["database_name"]
== self.settings["SUPERSET_DATABASE_NAME"],
datasets,
)
)
for dataset in related_datasets:
self.delete_dataset(session, headers, dataset["id"])
response = session.delete(
self.settings["SUPERSET_URI"] + "/api/v1/database/" + str(database_id),
headers=headers,
)
if response.status_code != 200:
raise CouldNotDeleteDatabaseException(response.text, response.status_code)
raise CouldNotDeleteDatabaseException(response.text, response.status_code)

def create_dataset(self, session, headers, database_id):
datasets_response = session.get(
Expand Down
5 changes: 4 additions & 1 deletion tests/test_get_columns.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,11 @@ def test_get_columns(self, settings):
test_steps = TestSteps(settings)
session, headers, db_response = create_database(settings)
test_steps.create_dataset(session, headers, db_response[0]["id"])
# pylint: disable=consider-using-f-string
datasets_response = session.get(
settings["SUPERSET_URI"] + "/api/v1/dataset", headers=headers
settings["SUPERSET_URI"] + "/api/v1/dataset", headers=headers,
params={"q":'{{"filters":[{{"col":"table_name","opr":"eq","value":"{}"}}]}}'.format(
settings["SUPERSET_DATABASE_NAME"])}
)
datasets = datasets_response.json()["result"]
sales_dataset = filter(
Expand Down

0 comments on commit 4f377bd

Please sign in to comment.