summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2017-01-16 07:29:26 -0500
committerNed Batchelder <ned@nedbatchelder.com>2017-01-16 07:29:26 -0500
commit697202cca950b04fd27cdb06b67b0b7c627e3d69 (patch)
tree688a52bcbf1a9bb9f8a97f9642cbc16cfbaddb1f
parentedd2754414015dbe0890b560a5c405227693a77a (diff)
downloadpython-coveragepy-697202cca950b04fd27cdb06b67b0b7c627e3d69.tar.gz
Tests of our bytes and unicode custom contracts
-rw-r--r--tests/test_misc.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/tests/test_misc.py b/tests/test_misc.py
index 83a2aec..d3dede4 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -5,9 +5,11 @@
import sys
+import pytest
+
import coverage
from coverage.version import _make_url, _make_version
-from coverage.misc import Hasher, file_be_gone
+from coverage.misc import contract, Hasher, file_be_gone
from tests.coveragetest import CoverageTest
@@ -69,6 +71,32 @@ class RemoveFileTest(CoverageTest):
file_be_gone(".")
+class ContractTest(CoverageTest):
+ """Tests of our contract decorators."""
+
+ run_in_temp_dir = False
+
+ def test_bytes(self):
+ @contract(text='bytes|None')
+ def need_bytes(text):
+ return text
+
+ assert need_bytes(b"Hey") == b"Hey"
+ assert need_bytes(None) == None
+ with pytest.raises(Exception):
+ need_bytes(u"Oops")
+
+ def test_unicode(self):
+ @contract(text='unicode|None')
+ def need_unicode(text):
+ return text
+
+ assert need_unicode(u"Hey") == u"Hey"
+ assert need_unicode(None) == None
+ with pytest.raises(Exception):
+ need_unicode(b"Oops")
+
+
class VersionTest(CoverageTest):
"""Tests of version.py"""