betty.assertion.error module

Provide assertion failures.

class betty.assertion.error.AssertionContext[source]

Bases: ABC

The context in which an assertion is invoked.

abstractmethod format() str[source]

Format this context to a string.

exception betty.assertion.error.AssertionFailed[source]

Bases: UserFacingError, ValueError

An assertion failure.

__init__(message: Localizable, *, contexts: tuple[AssertionContext | Localizable, ...] | None = None)[source]
property contexts: tuple[AssertionContext | Localizable, ...]

Get the human-readable contexts describing where the error occurred in the source data.

localize(localizer: Localizer) LocalizedStr[source]

Localize self to a human-readable string.

raised(error_type: type[AssertionFailed]) bool[source]

Check if the error matches the given error type.

with_context(*contexts: AssertionContext | Localizable) Self[source]

Add a message describing the error’s context.

exception betty.assertion.error.AssertionFailedGroup[source]

Bases: AssertionFailed

A group of zero or more assertion failures.

__init__(errors: Sequence[AssertionFailed] | None = None)[source]
append(*errors: AssertionFailed) None[source]

Append errors to this collection.

assert_valid(*contexts: AssertionContext | Localizable) Iterator[Self][source]

Assert that this collection contains no errors.

catch(*contexts: AssertionContext | Localizable) Iterator[AssertionFailedGroup][source]

Catch any errors raised within this context manager and add them to the collection.

Returns:

A new collection that will only contain any newly raised errors.

property invalid: bool

Check that this collection contains at least one error.

localize(localizer: Localizer) LocalizedStr[source]

Localize self to a human-readable string.

raised(error_type: type[AssertionFailed]) bool[source]

Check if the error matches the given error type.

property valid: bool

Check that this collection contains no errors.

with_context(*contexts: AssertionContext | Localizable) Self[source]

Add a message describing the error’s context.

class betty.assertion.error.Attr[source]

Bases: AssertionContext

An object attribute context.

__init__(attr: str)[source]
format() str[source]

Format this context to a string.

class betty.assertion.error.Index[source]

Bases: AssertionContext

A sequence index context.

__init__(index: int)[source]
format() str[source]

Format this context to a string.

class betty.assertion.error.Key[source]

Bases: AssertionContext

A mapping key context.

__init__(key: str)[source]
format() str[source]

Format this context to a string.

betty.assertion.error.localizable_contexts(*contexts: Contextey) Sequence[Localizable][source]

The contexts as betty.locale.localizable.Localizable instances.