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

Unified Diff: third_party/twisted_8_1/twisted/names/test/test_dns.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 side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/names/test/test_dns.py
diff --git a/third_party/twisted_8_1/twisted/names/test/test_dns.py b/third_party/twisted_8_1/twisted/names/test/test_dns.py
deleted file mode 100644
index a4a8cf443178263325e0452d4ed819d093e273bb..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/names/test/test_dns.py
+++ /dev/null
@@ -1,340 +0,0 @@
-# test-case-name: twisted.names.test.test_dns
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Tests for twisted.names.dns.
-"""
-
-try:
- from cStringIO import StringIO
-except ImportError:
- from StringIO import StringIO
-
-import struct
-
-from twisted.internet import address, task
-from twisted.internet.error import CannotListenError
-from twisted.trial import unittest
-from twisted.names import dns
-
-from twisted.test import proto_helpers
-
-
-
-class RoundtripDNSTestCase(unittest.TestCase):
- """Encoding and then decoding various objects."""
-
- names = ["example.org", "go-away.fish.tv", "23strikesback.net"]
-
- def testName(self):
- for n in self.names:
- # encode the name
- f = StringIO()
- dns.Name(n).encode(f)
-
- # decode the name
- f.seek(0, 0)
- result = dns.Name()
- result.decode(f)
- self.assertEquals(result.name, n)
-
- def testQuery(self):
- for n in self.names:
- for dnstype in range(1, 17):
- for dnscls in range(1, 5):
- # encode the query
- f = StringIO()
- dns.Query(n, dnstype, dnscls).encode(f)
-
- # decode the result
- f.seek(0, 0)
- result = dns.Query()
- result.decode(f)
- self.assertEquals(result.name.name, n)
- self.assertEquals(result.type, dnstype)
- self.assertEquals(result.cls, dnscls)
-
- def testRR(self):
- # encode the RR
- f = StringIO()
- dns.RRHeader("test.org", 3, 4, 17).encode(f)
-
- # decode the result
- f.seek(0, 0)
- result = dns.RRHeader()
- result.decode(f)
- self.assertEquals(str(result.name), "test.org")
- self.assertEquals(result.type, 3)
- self.assertEquals(result.cls, 4)
- self.assertEquals(result.ttl, 17)
-
-
- def testResources(self):
- names = (
- "this.are.test.name",
- "will.compress.will.this.will.name.will.hopefully",
- "test.CASE.preSErVatIOn.YeAH",
- "a.s.h.o.r.t.c.a.s.e.t.o.t.e.s.t",
- "singleton"
- )
- for s in names:
- f = StringIO()
- dns.SimpleRecord(s).encode(f)
- f.seek(0, 0)
- result = dns.SimpleRecord()
- result.decode(f)
- self.assertEquals(str(result.name), s)
-
- def testHashable(self):
- records = [
- dns.Record_NS, dns.Record_MD, dns.Record_MF, dns.Record_CNAME,
- dns.Record_MB, dns.Record_MG, dns.Record_MR, dns.Record_PTR,
- dns.Record_DNAME, dns.Record_A, dns.Record_SOA, dns.Record_NULL,
- dns.Record_WKS, dns.Record_SRV, dns.Record_AFSDB, dns.Record_RP,
- dns.Record_HINFO, dns.Record_MINFO, dns.Record_MX, dns.Record_TXT,
- dns.Record_AAAA, dns.Record_A6
- ]
-
- for k in records:
- k1, k2 = k(), k()
- hk1 = hash(k1)
- hk2 = hash(k2)
- self.assertEquals(hk1, hk2, "%s != %s (for %s)" % (hk1,hk2,k))
-
-
-
-class MessageTestCase(unittest.TestCase):
- def testEmptyMessage(self):
- """
- Test that a message which has been truncated causes an EOFError to
- be raised when it is parsed.
- """
- msg = dns.Message()
- self.assertRaises(EOFError, msg.fromStr, '')
-
-
- def testEmptyQuery(self):
- """
- Test that bytes representing an empty query message can be decoded
- as such.
- """
- msg = dns.Message()
- msg.fromStr(
- '\x01\x00' # Message ID
- '\x00' # answer bit, opCode nibble, auth bit, trunc bit, recursive bit
- '\x00' # recursion bit, empty bit, empty bit, empty bit, response code nibble
- '\x00\x00' # number of queries
- '\x00\x00' # number of answers
- '\x00\x00' # number of authorities
- '\x00\x00' # number of additionals
- )
- self.assertEquals(msg.id, 256)
- self.failIf(msg.answer, "Message was not supposed to be an answer.")
- self.assertEquals(msg.opCode, dns.OP_QUERY)
- self.failIf(msg.auth, "Message was not supposed to be authoritative.")
- self.failIf(msg.trunc, "Message was not supposed to be truncated.")
- self.assertEquals(msg.queries, [])
- self.assertEquals(msg.answers, [])
- self.assertEquals(msg.authority, [])
- self.assertEquals(msg.additional, [])
-
-
- def testNULL(self):
- bytes = ''.join([chr(i) for i in range(256)])
- rec = dns.Record_NULL(bytes)
- rr = dns.RRHeader('testname', dns.NULL, payload=rec)
- msg1 = dns.Message()
- msg1.answers.append(rr)
- s = StringIO()
- msg1.encode(s)
- s.seek(0, 0)
- msg2 = dns.Message()
- msg2.decode(s)
-
- self.failUnless(isinstance(msg2.answers[0].payload, dns.Record_NULL))
- self.assertEquals(msg2.answers[0].payload.payload, bytes)
-
-
-
-class TestController(object):
- """
- Pretend to be a DNS query processor for a DNSDatagramProtocol.
-
- @ivar messages: the list of received messages.
- @type messages: C{list} of (msg, protocol, address)
- """
-
- def __init__(self):
- """
- Initialize the controller: create a list of messages.
- """
- self.messages = []
-
-
- def messageReceived(self, msg, proto, addr):
- """
- Save the message so that it can be checked during the tests.
- """
- self.messages.append((msg, proto, addr))
-
-
-
-class DatagramProtocolTestCase(unittest.TestCase):
- """
- Test various aspects of L{dns.DNSDatagramProtocol}.
- """
-
- def setUp(self):
- """
- Create a L{dns.DNSDatagramProtocol} with a deterministic clock.
- """
- self.clock = task.Clock()
- self.controller = TestController()
- self.proto = dns.DNSDatagramProtocol(self.controller)
- transport = proto_helpers.FakeDatagramTransport()
- self.proto.makeConnection(transport)
- self.proto.callLater = self.clock.callLater
-
-
- def test_truncatedPacket(self):
- """
- Test that when a short datagram is received, datagramReceived does
- not raise an exception while processing it.
- """
- self.proto.datagramReceived('',
- address.IPv4Address('UDP', '127.0.0.1', 12345))
- self.assertEquals(self.controller.messages, [])
-
-
- def test_simpleQuery(self):
- """
- Test content received after a query.
- """
- d = self.proto.query(('127.0.0.1', 21345), [dns.Query('foo')])
- self.assertEquals(len(self.proto.liveMessages.keys()), 1)
- m = dns.Message()
- m.id = self.proto.liveMessages.items()[0][0]
- m.answers = [dns.RRHeader(payload=dns.Record_A(address='1.2.3.4'))]
- called = False
- def cb(result):
- self.assertEquals(result.answers[0].payload.dottedQuad(), '1.2.3.4')
- d.addCallback(cb)
- self.proto.datagramReceived(m.toStr(), ('127.0.0.1', 21345))
- return d
-
-
- def test_queryTimeout(self):
- """
- Test that query timeouts after some seconds.
- """
- d = self.proto.query(('127.0.0.1', 21345), [dns.Query('foo')])
- self.assertEquals(len(self.proto.liveMessages), 1)
- self.clock.advance(10)
- self.assertFailure(d, dns.DNSQueryTimeoutError)
- self.assertEquals(len(self.proto.liveMessages), 0)
- return d
-
-
- def test_writeError(self):
- """
- Exceptions raised by the transport's write method should be turned into
- C{Failure}s passed to errbacks of the C{Deferred} returned by
- L{DNSDatagramProtocol.query}.
- """
- def writeError(message, addr):
- raise RuntimeError("bar")
- self.proto.transport.write = writeError
-
- d = self.proto.query(('127.0.0.1', 21345), [dns.Query('foo')])
- return self.assertFailure(d, RuntimeError)
-
-
- def test_listenError(self):
- """
- Exception L{CannotListenError} raised by C{listenUDP} should be turned
- into a C{Failure} passed to errback of the C{Deferred} returned by
- L{DNSDatagramProtocol.query}.
- """
- def startListeningError():
- raise CannotListenError(None, None, None)
- self.proto.startListening = startListeningError
- # Clean up transport so that the protocol calls startListening again
- self.proto.transport = None
-
- d = self.proto.query(('127.0.0.1', 21345), [dns.Query('foo')])
- return self.assertFailure(d, CannotListenError)
-
-
-
-class TestTCPController(TestController):
- """
- Pretend to be a DNS query processor for a DNSProtocol.
- """
- def connectionMade(self, proto):
- pass
-
-
-
-class DNSProtocolTestCase(unittest.TestCase):
- """
- Test various aspects of L{dns.DNSProtocol}.
- """
-
- def setUp(self):
- """
- Create a L{dns.DNSProtocol} with a deterministic clock.
- """
- self.clock = task.Clock()
- controller = TestTCPController()
- self.proto = dns.DNSProtocol(controller)
- self.proto.makeConnection(proto_helpers.StringTransport())
- self.proto.callLater = self.clock.callLater
-
-
- def test_queryTimeout(self):
- """
- Test that query timeouts after some seconds.
- """
- d = self.proto.query([dns.Query('foo')])
- self.assertEquals(len(self.proto.liveMessages), 1)
- self.clock.advance(60)
- self.assertFailure(d, dns.DNSQueryTimeoutError)
- self.assertEquals(len(self.proto.liveMessages), 0)
- return d
-
-
- def test_simpleQuery(self):
- """
- Test content received after a query.
- """
- d = self.proto.query([dns.Query('foo')])
- self.assertEquals(len(self.proto.liveMessages.keys()), 1)
- m = dns.Message()
- m.id = self.proto.liveMessages.items()[0][0]
- m.answers = [dns.RRHeader(payload=dns.Record_A(address='1.2.3.4'))]
- called = False
- def cb(result):
- self.assertEquals(result.answers[0].payload.dottedQuad(), '1.2.3.4')
- d.addCallback(cb)
- s = m.toStr()
- s = struct.pack('!H', len(s)) + s
- self.proto.dataReceived(s)
- return d
-
-
- def test_writeError(self):
- """
- Exceptions raised by the transport's write method should be turned into
- C{Failure}s passed to errbacks of the C{Deferred} returned by
- L{DNSProtocol.query}.
- """
- def writeError(message):
- raise RuntimeError("bar")
- self.proto.transport.write = writeError
-
- d = self.proto.query([dns.Query('foo')])
- return self.assertFailure(d, RuntimeError)
-
-
-
« no previous file with comments | « third_party/twisted_8_1/twisted/names/test/test_client.py ('k') | third_party/twisted_8_1/twisted/names/test/test_names.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698