Files
deb-python-testtools/testtools/matchers/_const.py
2016-02-07 15:48:27 +00:00

59 lines
1.1 KiB
Python

# Copyright (c) 2016 testtools developers. See LICENSE for details.
__all__ = [
'Always',
'Never',
]
from testtools.compat import _u
from ._impl import Mismatch
class _Always(object):
"""Always matches."""
def __str__(self):
return 'Always()'
def match(self, value):
return None
def Always():
"""Always match.
That is::
self.assertThat(x, Always())
Will always match and never fail, no matter what ``x`` is. Most useful when
passed to other higher-order matchers (e.g.
:py:class:`~testtools.matchers.MatchesListwise`).
"""
return _Always()
class _Never(object):
"""Never matches."""
def __str__(self):
return 'Never()'
def match(self, value):
return Mismatch(
_u('Inevitable mismatch on %r' % (value,)))
def Never():
"""Never match.
That is::
self.assertThat(x, Never())
Will never match and always fail, no matter what ``x`` is. Included for
completeness with :py:func:`.Always`, but if you find a use for this, let
us know!
"""
return _Never()