Imported Upstream version 12.1.0
[contrib/python-twisted.git] / twisted / names / test / test_common.py
1 # Copyright (c) Twisted Matrix Laboratories.
2 # See LICENSE for details.
3
4 """
5 Tests for L{twisted.names.common}.
6 """
7
8 from twisted.trial.unittest import TestCase
9 from twisted.names.common import ResolverBase
10 from twisted.names.dns import EFORMAT, ESERVER, ENAME, ENOTIMP, EREFUSED
11 from twisted.names.error import DNSFormatError, DNSServerError, DNSNameError
12 from twisted.names.error import DNSNotImplementedError, DNSQueryRefusedError
13 from twisted.names.error import DNSUnknownError
14
15
16 class ExceptionForCodeTests(TestCase):
17     """
18     Tests for L{ResolverBase.exceptionForCode}.
19     """
20     def setUp(self):
21         self.exceptionForCode = ResolverBase().exceptionForCode
22
23
24     def test_eformat(self):
25         """
26         L{ResolverBase.exceptionForCode} converts L{EFORMAT} to
27         L{DNSFormatError}.
28         """
29         self.assertIdentical(self.exceptionForCode(EFORMAT), DNSFormatError)
30
31
32     def test_eserver(self):
33         """
34         L{ResolverBase.exceptionForCode} converts L{ESERVER} to
35         L{DNSServerError}.
36         """
37         self.assertIdentical(self.exceptionForCode(ESERVER), DNSServerError)
38
39
40     def test_ename(self):
41         """
42         L{ResolverBase.exceptionForCode} converts L{ENAME} to L{DNSNameError}.
43         """
44         self.assertIdentical(self.exceptionForCode(ENAME), DNSNameError)
45
46
47     def test_enotimp(self):
48         """
49         L{ResolverBase.exceptionForCode} converts L{ENOTIMP} to
50         L{DNSNotImplementedError}.
51         """
52         self.assertIdentical(
53             self.exceptionForCode(ENOTIMP), DNSNotImplementedError)
54
55
56     def test_erefused(self):
57         """
58         L{ResolverBase.exceptionForCode} converts L{EREFUSED} to
59         L{DNSQueryRefusedError}.
60         """
61         self.assertIdentical(
62             self.exceptionForCode(EREFUSED), DNSQueryRefusedError)
63
64
65     def test_other(self):
66         """
67         L{ResolverBase.exceptionForCode} converts any other response code to
68         L{DNSUnknownError}.
69         """
70         self.assertIdentical(
71             self.exceptionForCode(object()), DNSUnknownError)