diff options
| author | Petr Spacek <pspacek@redhat.com> | 2015-03-20 13:39:28 +0100 |
|---|---|---|
| committer | Petr Viktorin <pviktori@redhat.com> | 2015-05-21 14:25:12 +0200 |
| commit | 1a2566c274834aacba20f3f77ebd651e8a58ee88 (patch) | |
| tree | 170d270f45f6dd04bc8064f96ecd28b822a21a07 | |
| parent | 73544fe7ad500d792325fba01bebdedaf9f11f23 (diff) | |
| download | dnspython-1a2566c274834aacba20f3f77ebd651e8a58ee88.tar.gz | |
Test new DNSException behavior.
| -rw-r--r-- | tests/test_exceptions.py | 24 |
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() |
