tests.test_utils

Tests for the various utility operations.

Module Contents

Classes

DummyEnum

Utility enum.Enum methods.

TestUtils

A class whose instances are single test cases.

class tests.test_utils.DummyEnum[source]

Bases: cowbird.utils.ExtendedEnum

Utility enum.Enum methods.

Create an extended enum with these utilities as follows:

class CustomEnum(ExtendedEnum):
    ItemA = "A"
    ItemB = "B"
VALUE1 = 'value-1'[source]
VALUE2 = 'value-2'[source]
class tests.test_utils.TestUtils(methodName='runTest')[source]

Bases: unittest.TestCase

A class whose instances are single test cases.

By default, the test code itself should be placed in a method named ‘runTest’.

If the fixture may be used for many test cases, create as many test methods as are needed. When instantiating such a TestCase subclass, specify in the constructor arguments the name of the test method that the instance is to execute.

Test authors should subclass TestCase for their own tests. Construction and deconstruction of the test’s environment (‘fixture’) can be implemented by overriding the ‘setUp’ and ‘tearDown’ methods respectively.

If it is necessary to override the __init__ method, the base class __init__ method must always be called. It is important that subclasses should not change the signature of their __init__ method, since instances of the classes are instantiated automatically by parts of the framework in order to be run.

When subclassing TestCase, you can set these attributes: * failureException: determines which exception will be raised when

the instance’s assertion methods fail; test methods raising this exception will be deemed to have ‘failed’ rather than ‘errored’.

  • longMessage: determines whether long messages (including repr of

    objects used in assert methods) will be printed on failure in addition to any explicit message passed.

  • maxDiff: sets the maximum length of a diff in failure messages

    by assert methods using difflib. It is looked up as an instance attribute so can be configured by individual tests if required.

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

classmethod setUpClass()[source]

Hook method for setting up class fixture before running tests in the class.

test_get_header_split()[source]
test_get_query_param()[source]
test_verify_param_proper_verifications_raised()[source]
test_verify_param_proper_verifications_passed()[source]
test_verify_param_args_incorrect_usage()[source]

Invalid usage of function raises internal server error instead of ‘normal HTTP error’.

test_verify_param_compare_types()[source]

Arguments param and param_compare must be of same type for valid comparison, except for is_type where compare parameter must be the type directly.

Changed in version 2.0: Since param can come from user input, we should NOT raise HTTPInternalServerError because the whole point of the method is to ensure that values are compared accordingly in a controlled fashion. Therefore, error to be raised is an ‘expected’ validation failure (HTTPBadRequest or whichever http_error provided) instead of runtime ‘unexpected’ processing error.

On the other hand, when is_type flag is requested, we know that param_compare must be a type. Inversely, param_compare must not be a type if is_type is not requested, but other flags require some form of comparison between values. We evaluate these use cases here.

See also

test_enum_values_listing()[source]
test_enum_get_by_value()[source]
test_enum_other()[source]
test_evaluate_call_callable_incorrect_usage()[source]

Verifies that incorrect usage of utility is raised accordingly.

test_evaluate_call_recursive_safeguard()[source]

Validate use case if internal function that handles formatting and generation of a resulting HTTP response raises itself an error (because of implementation issue), while it is processing another pre-raised error, that it does not end up into an endless recursive call stack of raised errors.

test_format_content_json_str_invalid_usage()[source]
test_generate_response_http_format_invalid_usage()[source]
test_guess_target_format_default()[source]