-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
474 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
100 changes: 100 additions & 0 deletions
100
lib/dl_api_lib/dl_api_lib_tests/db/data_api/result/test_parameters.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
from __future__ import annotations | ||
|
||
from http import HTTPStatus | ||
|
||
import pytest | ||
|
||
from dl_api_client.dsmaker.primitives import ( | ||
IntegerParameterValue, | ||
RangeParameterValueConstraint, | ||
) | ||
from dl_api_client.dsmaker.shortcuts.dataset import ( | ||
add_formulas_to_dataset, | ||
add_parameters_to_dataset, | ||
) | ||
from dl_api_client.dsmaker.shortcuts.result_data import get_data_rows | ||
from dl_api_lib_tests.db.base import DefaultApiTestBase | ||
from dl_constants.enums import UserDataType | ||
|
||
|
||
class TestParameters(DefaultApiTestBase): | ||
@pytest.mark.parametrize( | ||
("multiplier", "expected_status_code"), | ||
( | ||
(None, HTTPStatus.OK), | ||
(2, HTTPStatus.OK), | ||
(5, HTTPStatus.OK), | ||
(-1, HTTPStatus.BAD_REQUEST), | ||
), | ||
) | ||
def test_parameter_in_formula(self, control_api, data_api, saved_dataset, multiplier, expected_status_code): | ||
default_multiplier = 1 | ||
ds = add_parameters_to_dataset( | ||
api_v1=control_api, | ||
dataset_id=saved_dataset.id, | ||
parameters={ | ||
"Multiplier": ( | ||
IntegerParameterValue(default_multiplier), | ||
RangeParameterValueConstraint(min=IntegerParameterValue(default_multiplier)), | ||
), | ||
}, | ||
) | ||
|
||
integer_field = next(field for field in saved_dataset.result_schema if field.data_type == UserDataType.integer) | ||
ds = add_formulas_to_dataset( | ||
api_v1=control_api, | ||
dataset=ds, | ||
formulas={ | ||
"Multiplied Field": f"[{integer_field.title}] * [Multiplier]", | ||
}, | ||
) | ||
|
||
result_resp = data_api.get_result( | ||
dataset=ds, | ||
fields=[ | ||
integer_field, | ||
ds.find_field(title="Multiplier"), | ||
ds.find_field(title="Multiplied Field"), | ||
], | ||
parameters=[ | ||
ds.find_field(title="Multiplier").parameter_value(multiplier), | ||
], | ||
fail_ok=True, | ||
) | ||
assert result_resp.status_code == expected_status_code, result_resp.json | ||
|
||
if expected_status_code == HTTPStatus.OK: | ||
data_rows = get_data_rows(result_resp) | ||
assert data_rows | ||
for row in data_rows: | ||
assert int(row[1]) == (multiplier or default_multiplier) | ||
assert int(row[0]) * int(row[1]) == int(row[2]) | ||
|
||
def test_parameter_no_constraint(self, control_api, data_api, dataset_id): | ||
ds = add_parameters_to_dataset( | ||
api_v1=control_api, | ||
dataset_id=dataset_id, | ||
parameters={ | ||
"Param": (IntegerParameterValue(0), None), | ||
}, | ||
) | ||
ds = add_formulas_to_dataset( | ||
api_v1=control_api, | ||
dataset=ds, | ||
formulas={ | ||
"Value": "[Param]", | ||
}, | ||
) | ||
|
||
result_resp = data_api.get_result( | ||
dataset=ds, | ||
fields=[ | ||
ds.find_field(title="Value"), | ||
], | ||
parameters=[ | ||
ds.find_field(title="Param").parameter_value(1), | ||
], | ||
limit=1, | ||
) | ||
assert result_resp.status_code == HTTPStatus.OK, result_resp.json | ||
assert int(get_data_rows(result_resp)[0][0]) == 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
from __future__ import annotations | ||
|
||
import pytest | ||
import shortuuid | ||
|
||
from dl_api_lib_tests.db.base import DefaultApiTestBase | ||
from dl_configs.enums import RequiredService | ||
|
||
|
||
class TestPing(DefaultApiTestBase): | ||
@pytest.mark.asyncio | ||
async def test_ping(self, data_api_lowlevel_aiohttp_client): | ||
client = data_api_lowlevel_aiohttp_client | ||
req_id = shortuuid.uuid() | ||
|
||
resp = await client.get("/ping", headers={"x-request-id": req_id}) | ||
assert resp.status == 200 | ||
js = await resp.json() | ||
assert js["request_id"].startswith(req_id + "--") | ||
|
||
@pytest.mark.asyncio | ||
async def test_ping_ready(self, data_api_lowlevel_aiohttp_client): | ||
client = data_api_lowlevel_aiohttp_client | ||
req_id = shortuuid.uuid() | ||
|
||
resp = await client.get("/ping_ready", headers={"x-request-id": req_id}) | ||
assert resp.status == 200 | ||
js = await resp.json() | ||
assert js["request_id"].startswith(req_id + "--") | ||
details = js["details"] | ||
assert details[RequiredService.POSTGRES.name] is True | ||
assert details[RequiredService.RQE_INT_SYNC.name] == 200 | ||
assert details[RequiredService.RQE_EXT_SYNC.name] == 200 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
19 changes: 19 additions & 0 deletions
19
lib/dl_connector_mysql/dl_connector_mysql_tests/db/core/test_adapter.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
from dl_core_testing.testcases.adapter import BaseAsyncAdapterTestClass | ||
from dl_testing.regulated_test import RegulatedTestParams | ||
|
||
from dl_connector_mysql.core.async_adapters_mysql import AsyncMySQLAdapter | ||
from dl_connector_mysql.core.target_dto import MySQLConnTargetDTO | ||
from dl_connector_mysql_tests.db.core.base import BaseMySQLTestClass | ||
|
||
|
||
class TestAsyncMySQLAdapter( | ||
BaseMySQLTestClass, | ||
BaseAsyncAdapterTestClass[MySQLConnTargetDTO], | ||
): | ||
test_params = RegulatedTestParams( | ||
mark_tests_skipped={ | ||
BaseAsyncAdapterTestClass.test_default_pass_db_query_to_user: "Not relevant", | ||
}, | ||
) | ||
|
||
ASYNC_ADAPTER_CLS = AsyncMySQLAdapter |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.