forked from testing-cabal/testtools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassertions.py
More file actions
33 lines (25 loc) · 919 Bytes
/
assertions.py
File metadata and controls
33 lines (25 loc) · 919 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Copyright (c) 2008-2017 testtools developers. See LICENSE for details.
"""Assertion helpers."""
from typing import TypeVar
from testtools.matchers import (
Annotate,
Matcher,
MismatchError,
)
T = TypeVar("T")
def assert_that(
matchee: T, matcher: Matcher[T], message: str = "", verbose: bool = False
) -> None:
"""Assert that matchee is matched by matcher.
This should only be used when you need to use a function based
matcher, assertThat in Testtools.Testcase is preferred and has more
features
:param matchee: An object to match with matcher.
:param matcher: An object meeting the testtools.Matcher protocol.
:raises MismatchError: When matcher does not match thing.
"""
matcher = Annotate.if_message(message, matcher)
mismatch = matcher.match(matchee)
if not mismatch:
return
raise MismatchError(matchee, matcher, mismatch, verbose)