Skip to main content

Generic way to create meaningful and easy to use assertions for the Robot Framework libraries.

Project description

Assertion Engine

Generic way to create meaningful and easy to use assertions for the Robot Framework libraries. This tool is a spin off from the Browser library project, where the Assertion Engine was developed as part of that library.

CI License

Supported Assertions

Currently supported assertion operators are:

Operator Alternative Operators Description Validate Equivalent
== equal, equals, should be Checks if returned value is equal to expected value. value == expected
!= inequal, should not be Checks if returned value is not equal to expected value. value != expected
> greater than Checks if returned value is greater than expected value. value > expected
>= Checks if returned value is greater than or equal to expected value. value >= expected
< less than Checks if returned value is less than expected value. value < expected
<= Checks if returned value is less than or equal to expected value. value <= expected
*= contains Checks if returned value contains expected value as substring. expected in value
(no operator) not contains Checks if returned value does not contain expected value as substring. expected not in value
^= should start with, starts Checks if returned value starts with expected value. re.search(f"^{expected}", value)
$= should end with, ends Checks if returned value ends with expected value. re.search(f"{expected}$", value)
matches Checks if given RegEx matches minimum once in returned value (supports Python Regex inline flags). re.search(expected, value)
validate Checks if given Python expression evaluates to True.
evaluate / then When using this operator, the keyword returns the evaluated Python expression.

Supported formatters

Formatter Description
normalize spaces Substitutes multiple spaces to single space from the value
strip Removes spaces from the beginning and end of the value
apply to expected Applies rules also for the expected value
case insensitive Converts value to lower case

Usage

When library developers want to do an assertion inline with the keyword call, AssertionEngine provides automatic validation within a single keyword call. The keyword method should get the value (for example from a page, database or any other source) and then use verify_assertion from AssertionEngine to perform the validation. The verify_assertion method needs three things to perform the assertion: the value from the system, an assertion_operator describing how the validation is performed and assertion_expected which represents the expected value. It is also possible to provide a custom error message and prefix the default error message.

Example:

def keyword(
    arg_to_get_value: str,
    assertion_operator: Optional[AssertionOperator] = None,
    assertion_expected: Any = None,
    message: str = None,
):
    value = method_to_get_value(arg_to_get_value)
    return verify_assertion(
        value,
        assertion_operator,
        assertion_expected,
        "Prefix message",
        message,
    )

AssertionEngine provides an interface to define scope for the formatters, but because scoping is a library-specific implementation, it is up to the library to decide how scoping is actually implemented. AssertionEngine Formatter class is an ABC which provides get_formatter and set_formatter interface methods for library developers. The AssertionEngine atest directory has examples how the interface can be implemented in practice: https://github.com/MarketSquare/AssertionEngine/tree/main/atest


For more information about Robot Framework see: http://robotframework.org For Browser library see: https://robotframework-browser.org/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework_assertion_engine-4.0.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotframework_assertion_engine-4.0.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file robotframework_assertion_engine-4.0.0.tar.gz.

File metadata

File hashes

Hashes for robotframework_assertion_engine-4.0.0.tar.gz
Algorithm Hash digest
SHA256 44c0299faa1e0fe2b4731707bf57a6d317353a4e13a17893c725fb6d215a0c7d
MD5 a762a67923c057a7232cec2b67f35aa4
BLAKE2b-256 176095f147d398d64df296893ccfac4d063c89c0163981cad84743eb3b288885

See more details on using hashes here.

File details

Details for the file robotframework_assertion_engine-4.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_assertion_engine-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2ad3805ba4fc427e9880bd27ff43ce5806d765938a6d879ff2806a09e28ada4
MD5 a79b0dbacf9a8882307c116eb88f5f89
BLAKE2b-256 b550b2855aec50e426f253912263f45f4d76b92e2fa02d6ecd8d2eea34d00d52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page