diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2017-01-16 07:58:53 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2017-01-16 07:58:53 -0500 |
commit | 5f5510fba829e12d57adb949667ce8e3c5ff09d9 (patch) | |
tree | 9bdf075c6e0b02abf2865f21a56b655a07bb4c52 /tests/test_misc.py | |
parent | 8175a927c0189ff06e9f961bd780c9a8b7280abf (diff) | |
download | python-coveragepy-git-5f5510fba829e12d57adb949667ce8e3c5ff09d9.tar.gz |
A one_of decorator for checking function arguments.
Diffstat (limited to 'tests/test_misc.py')
-rw-r--r-- | tests/test_misc.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/test_misc.py b/tests/test_misc.py index d3dede4f..0b6c9144 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -9,7 +9,7 @@ import pytest import coverage from coverage.version import _make_url, _make_version -from coverage.misc import contract, Hasher, file_be_gone +from coverage.misc import contract, file_be_gone, Hasher, one_of from tests.coveragetest import CoverageTest @@ -78,24 +78,37 @@ class ContractTest(CoverageTest): def test_bytes(self): @contract(text='bytes|None') - def need_bytes(text): + def need_bytes(text=None): # pylint: disable=missing-docstring return text assert need_bytes(b"Hey") == b"Hey" - assert need_bytes(None) == None + assert need_bytes() is None with pytest.raises(Exception): need_bytes(u"Oops") def test_unicode(self): @contract(text='unicode|None') - def need_unicode(text): + def need_unicode(text=None): # pylint: disable=missing-docstring return text assert need_unicode(u"Hey") == u"Hey" - assert need_unicode(None) == None + assert need_unicode() is None with pytest.raises(Exception): need_unicode(b"Oops") + def test_one_of(self): + @one_of("a, b, c") + def give_me_one(a=None, b=None, c=None): # pylint: disable=missing-docstring + return (a, b, c) + + assert give_me_one(a=17) == (17, None, None) + assert give_me_one(b=17) == (None, 17, None) + assert give_me_one(c=17) == (None, None, 17) + with pytest.raises(AssertionError): + give_me_one(a=17, b=23) + with pytest.raises(AssertionError): + give_me_one() + class VersionTest(CoverageTest): """Tests of version.py""" |