summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Spacek <pspacek@redhat.com>2015-03-20 13:39:28 +0100
committerPetr Viktorin <pviktori@redhat.com>2015-05-21 14:25:12 +0200
commit1a2566c274834aacba20f3f77ebd651e8a58ee88 (patch)
tree170d270f45f6dd04bc8064f96ecd28b822a21a07
parent73544fe7ad500d792325fba01bebdedaf9f11f23 (diff)
downloaddnspython-1a2566c274834aacba20f3f77ebd651e8a58ee88.tar.gz
Test new DNSException behavior.
-rw-r--r--tests/test_exceptions.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_exceptions.py b/tests/test_exceptions.py
index 3fd7331..90a6af4 100644
--- a/tests/test_exceptions.py
+++ b/tests/test_exceptions.py
@@ -18,6 +18,12 @@ import unittest
from dns.exception import DNSException
+
+class FormatedError(DNSException):
+ fmt = "Custom format: {parameter}"
+ supp_kwargs = set(['parameter'])
+
+
class ExceptionTestCase(unittest.TestCase):
def test_custom_message(self):
@@ -33,6 +39,24 @@ class ExceptionTestCase(unittest.TestCase):
except DNSException as ex:
self.assertEqual(ex.__class__.__doc__, str(ex))
+ def test_formatted_error(self):
+ """Exceptions with explicit format has to respect it."""
+ params = {'parameter': 'value'}
+ try:
+ raise FormatedError(**params)
+ except FormatedError as ex:
+ msg = FormatedError.fmt.format(**params)
+ self.assertEqual(msg, str(ex))
+
+ def test_kwargs_only(self):
+ """Kwargs cannot be combined with args."""
+ with self.assertRaises(AssertionError):
+ raise FormatedError(1, a=2)
+
+ def test_kwargs_unsupported(self):
+ """Only supported kwargs are accepted."""
+ with self.assertRaises(AssertionError):
+ raise FormatedError(unsupported=2)
if __name__ == '__main__':
unittest.main()