Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/Assert messages enhancement. #14

Merged
merged 1 commit into from
Nov 26, 2021
Merged
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
111 changes: 80 additions & 31 deletions connect/devops_testing/asserts.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,121 +20,170 @@ def _prepare_assert_argument(param: dict, expected: Any) -> Tuple[Optional[Any],


def request_status(request: dict, expected: str):
assert request.get('status') == expected
assert request.get('status') == expected, f"Request status '{request.get('status')}' is not '{expected}'."


def request_reason(request: dict, expected: str):
assert request.get('reason') == expected
assert request.get('reason') == expected, f"Request reason '{request.get('reason')}' is not '{expected}'."


def request_note(request: dict, expected: str):
assert request.get('note') == expected
assert request.get('note') == expected, f"Request note '{request.get('note')}' is not '{expected}'."


def task_response_status(task_response, expected: str):
assert task_response.status == expected
assert task_response.status == expected, f"Task Response status '{task_response.status}' is not '{expected}'."


def asset_status(request: dict, expected: str):
assert request.get('asset', {}).get('status') == expected
value = request.get('asset', {}).get('status')
assert value == expected, f"Asset status '{value}' is not '{expected}'."


def asset_param_value(request: dict, param_id: str, operator: str, expected: Any):
def asset_param_value(request: dict, param_id: str, operator: str, expected: Any, msg: Optional[str] = None):
fn = __operators.get(operator)
param = find_by_id(request.get('asset', {}).get('params', []), param_id, {})

assert fn(*_prepare_assert_argument(param, expected))
value, expected = _prepare_assert_argument(param, expected)
assert fn(value, expected), 'Assertion failed.' if msg is None else msg.format(
param_id=param_id,
value=value,
expected=expected,
)


def asset_param_value_equal(request: dict, param_id: str, expected: Any):
asset_param_value(request, param_id, '==', expected)
msg = "{param_id} parameter value '{value}' is not equal to '{expected}'."
asset_param_value(request, param_id, '==', expected, msg)


def asset_param_value_match(request: dict, param_id: str, pattern: str):
asset_param_value(request, param_id, 'match', pattern)
msg = "{param_id} parameter value '{value}' does not match expression '{expected}'."
asset_param_value(request, param_id, 'match', pattern, msg)


def asset_param_value_not_equal(request: dict, param_id: str, expected: Any):
asset_param_value(request, param_id, '!=', expected)
msg = "{param_id} parameter value '{value}' is equal to '{expected}'."
asset_param_value(request, param_id, '!=', expected, msg)


def asset_param_value_contains(request: dict, param_id: str, expected: Any):
asset_param_value(request, param_id, 'in', expected)
msg = "{param_id} parameter value '{value}' does not contain '{expected}'."
asset_param_value(request, param_id, 'in', expected, msg)


def asset_param_value_error(request: dict, param_id: str, operator: str, expected: Any):
def asset_param_value_error(request: dict, param_id: str, operator: str, expected: Any, msg: Optional[str] = None):
fn = __operators.get(operator)
param = find_by_id(request.get('asset', {}).get('params', []), param_id, {})
assert fn(param.get('value_error'), expected)
value = param.get('value_error')
assert fn(value, expected), 'Assertion failed.' if msg is None else msg.format(
param_id=param_id,
value=value,
expected=expected,
)


def asset_param_value_error_equal(request: dict, param_id: str, expected: Any):
asset_param_value_error(request, param_id, '==', expected)
msg = "{param_id} parameter value error '{value}' is not equal to '{expected}'."
asset_param_value_error(request, param_id, '==', expected, msg)


def asset_param_value_error_not_equal(request: dict, param_id: str, expected: Any):
asset_param_value_error(request, param_id, '!=', expected)
msg = "{param_id} parameter value error '{value}' is equal to '{expected}'."
asset_param_value_error(request, param_id, '!=', expected, msg)


def asset_param_value_error_contains(request: dict, param_id: str, expected: Any):
asset_param_value_error(request, param_id, 'in', expected)
msg = "{param_id} parameter value error '{value}' does not contain '{expected}'."
asset_param_value_error(request, param_id, 'in', expected, msg)


def asset_param_value_error_match(request: dict, param_id: str, pattern: str):
asset_param_value_error(request, param_id, 'match', pattern)
msg = "{param_id} parameter value error '{value}' does not match '{expected}'."
asset_param_value_error(request, param_id, 'match', pattern, msg)


def tier_configuration_status(request: dict, expected: str):
assert request.get('configuration', {}).get('status') == expected
value = request.get('configuration', {}).get('status')
assert value == expected, f"Tier Configuration status '{value}' is not '{expected}'."


def tier_configuration_param_value(request: dict, param_id: str, operator: str, expected: Any):
def tier_configuration_param_value(
request: dict,
param_id: str,
operator: str,
expected: Any,
msg: Optional[str] = None,
):
fn = __operators.get(operator)
param = find_by_id(
request.get('params', request.get('configuration', {}).get('params', [])),
param_id,
{},
)
assert fn(*_prepare_assert_argument(param, expected))
value, expected = _prepare_assert_argument(param, expected)
assert fn(value, expected), 'Assertion failed.' if msg is None else msg.format(
param_id=param_id,
value=value,
expected=expected,
)


def tier_configuration_param_value_equal(request: dict, param_id: str, expected: Any):
tier_configuration_param_value(request, param_id, '==', expected)
msg = "{param_id} parameter value '{value}' is not equal to '{expected}'."
tier_configuration_param_value(request, param_id, '==', expected, msg)


def tier_configuration_param_value_not_equal(request: dict, param_id: str, expected: Any):
tier_configuration_param_value(request, param_id, '!=', expected)
msg = "{param_id} parameter value '{value}' is equal to '{expected}'."
tier_configuration_param_value(request, param_id, '!=', expected, msg)


def tier_configuration_param_value_contains(request: dict, param_id: str, expected: Any):
tier_configuration_param_value(request, param_id, 'in', expected)
msg = "{param_id} parameter value '{value}' does not contain '{expected}'."
tier_configuration_param_value(request, param_id, 'in', expected, msg)


def tier_configuration_param_value_match(request: dict, param_id: str, pattern: str):
tier_configuration_param_value(request, param_id, 'match', pattern)
msg = "{param_id} parameter value '{value}' does not match expression '{expected}'."
tier_configuration_param_value(request, param_id, 'match', pattern, msg)


def tier_configuration_param_value_error(request: dict, param_id: str, operator: str, expected: Any):
def tier_configuration_param_value_error(
request: dict,
param_id: str,
operator: str,
expected: Any,
msg: Optional[str] = None,
):
fn = __operators.get(operator)
param = find_by_id(
request.get('params', request.get('configuration', {}).get('params', [])),
param_id,
{},
)
assert fn(param.get('value_error'), expected)
value = param.get('value_error')
assert fn(value, expected), 'Assertion failed.' if msg is None else msg.format(
param_id=param_id,
value=value,
expected=expected,
)


def tier_configuration_param_value_error_equal(request: dict, param_id: str, expected: Any):
tier_configuration_param_value_error(request, param_id, '==', expected)
msg = "{param_id} parameter value error '{value}' is not equal to '{expected}'."
tier_configuration_param_value_error(request, param_id, '==', expected, msg)


def tier_configuration_param_value_error_not_equal(request: dict, param_id: str, expected: Any):
tier_configuration_param_value_error(request, param_id, '!=', expected)
msg = "{param_id} parameter value error '{value}' is equal to '{expected}'."
tier_configuration_param_value_error(request, param_id, '!=', expected, msg)


def tier_configuration_param_value_error_contains(request: dict, param_id: str, expected: Any):
tier_configuration_param_value_error(request, param_id, 'in', expected)
msg = "{param_id} parameter value error '{value}' does not contain '{expected}'."
tier_configuration_param_value_error(request, param_id, 'in', expected, msg)


def tier_configuration_param_value_error_match(request: dict, param_id: str, pattern: str):
tier_configuration_param_value_error(request, param_id, 'match', pattern)
msg = "{param_id} parameter value error '{value}' does not match '{expected}'."
tier_configuration_param_value_error(request, param_id, 'match', pattern, msg)