Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: third_party/twisted_8_1/twisted/names/test/test_srvconnect.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2007 Twisted Matrix Laboratories.
2 # See LICENSE for details.
3
4 """
5 Test cases for L{twisted.names.srvconnect}.
6 """
7
8 from twisted.internet import defer, protocol
9 from twisted.names import client, dns, srvconnect
10 from twisted.names.common import ResolverBase
11 from twisted.names.error import DNSNameError
12 from twisted.internet.error import DNSLookupError
13 from twisted.trial import unittest
14
15 class FakeResolver(ResolverBase):
16 """
17 Resolver that only gives out one given result.
18
19 Either L{results} or L{failure} must be set and will be used for
20 the return value of L{_lookup}
21
22 @ivar results: List of L{dns.RRHeader} for the desired result.
23 @type results: C{list}
24 @ivar failure: Failure with an exception from L{twisted.names.error}.
25 @type failure: L{Failure<twisted.python.failure.Failure>}
26 """
27
28 def __init__(self, results=None, failure=None):
29 self.results = results
30 self.failure = failure
31
32 def _lookup(self, name, cls, qtype, timeout):
33 """
34 Return the result or failure on lookup.
35 """
36 if self.results is not None:
37 return defer.succeed((self.results, [], []))
38 else:
39 return defer.fail(self.failure)
40
41 class DummyReactor(object):
42 """
43 Dummy reactor with fake connectTCP that stores the passed parameters.
44 """
45 def __init__(self):
46 self.host = None
47 self.port = None
48 self.factory = None
49
50 def connectTCP(self, host, port, factory, timeout=30, bindaddress=None):
51 self.host = host
52 self.port = port
53 self.factory = factory
54
55 class DummyFactory(protocol.ClientFactory):
56 """
57 Dummy client factory that stores the reason of connection failure.
58 """
59 def __init__(self):
60 self.reason = None
61
62 def clientConnectionFailed(self, connector, reason):
63 self.reason = reason
64
65 class SRVConnectorTest(unittest.TestCase):
66
67 def setUp(self):
68 client.theResolver = FakeResolver()
69 self.reactor = DummyReactor()
70 self.factory = DummyFactory()
71 self.connector = srvconnect.SRVConnector(self.reactor, 'xmpp-server',
72 'example.org', self.factory)
73
74 def tearDown(self):
75 client.theResolver = None
76
77 def test_SRVPresent(self):
78 """
79 Test connectTCP gets called with the address from the SRV record.
80 """
81 payload = dns.Record_SRV(port=6269, target='host.example.org', ttl=60)
82 client.theResolver.results = [dns.RRHeader(name='example.org',
83 type=dns.SRV,
84 cls=dns.IN, ttl=60,
85 payload=payload)]
86 self.connector.connect()
87
88 self.assertIdentical(None, self.factory.reason)
89 self.assertEqual('host.example.org', self.reactor.host)
90 self.assertEqual(6269, self.reactor.port)
91
92 def test_SRVNotPresent(self):
93 """
94 Test connectTCP gets called with fallback parameters on NXDOMAIN.
95 """
96 client.theResolver.failure = DNSNameError('example.org')
97 self.connector.connect()
98
99 self.assertIdentical(None, self.factory.reason)
100 self.assertEqual('example.org', self.reactor.host)
101 self.assertEqual('xmpp-server', self.reactor.port)
102
103 def test_SRVNoResult(self):
104 """
105 Test connectTCP gets called with fallback parameters on empty result.
106 """
107 client.theResolver.results = []
108 self.connector.connect()
109
110 self.assertIdentical(None, self.factory.reason)
111 self.assertEqual('example.org', self.reactor.host)
112 self.assertEqual('xmpp-server', self.reactor.port)
113
114 def test_SRVBadResult(self):
115 """
116 Test connectTCP gets called with fallback parameters on bad result.
117 """
118 client.theResolver.results = [dns.RRHeader(name='example.org',
119 type=dns.CNAME,
120 cls=dns.IN, ttl=60,
121 payload=None)]
122 self.connector.connect()
123
124 self.assertIdentical(None, self.factory.reason)
125 self.assertEqual('example.org', self.reactor.host)
126 self.assertEqual('xmpp-server', self.reactor.port)
127
128 def test_SRVNoService(self):
129 """
130 Test that connecting fails when no service is present.
131 """
132 payload = dns.Record_SRV(port=5269, target='.', ttl=60)
133 client.theResolver.results = [dns.RRHeader(name='example.org',
134 type=dns.SRV,
135 cls=dns.IN, ttl=60,
136 payload=payload)]
137 self.connector.connect()
138
139 self.assertNotIdentical(None, self.factory.reason)
140 self.factory.reason.trap(DNSLookupError)
OLDNEW
« no previous file with comments | « third_party/twisted_8_1/twisted/names/test/test_rootresolve.py ('k') | third_party/twisted_8_1/twisted/names/topfiles/NEWS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698