使用Twisted Trial测试UDP服务器

时间:2013-12-05 14:36:28

标签: twisted trial

我曾经使用Trial来测试用Twisted编写的TCP服务器。 是否有试验支持UDP服务器的支持?

谢谢!

1 个答案:

答案 0 :(得分:1)

实际上没有文档,但支持。使用

twisted.test.proto_helpers.FakeDatagramTransport

这是对来自UDPTutorial的回声服务器的测试。

from twisted.trial import unittest
from twisted.test import proto_helpers
import echo


class EchoTest(unittest.TestCase):
    def setUp(self):
        self.protocol = echo.Echo()
        self.transport = proto_helpers.FakeDatagramTransport()
        self.protocol.transport = self.transport

    def test_echo(self):
        self.protocol.startProtocol()
        self.assertTrue(len(self.transport.written) == 0)
        # simulate incoming package
        self.protocol.datagramReceived("test", ("127.0.0.1", 55555))
        # check echo has been written as answer on the transport
        msg, addr = self.transport.written[0]
        self.assertEqual(msg, "test")
        self.assertEqual(addr[1], 55555)