以前は、Twisted で書かれた TCP サーバーをテストするために Trial を使用していました。試用版から UDP サーバーをテストするためのサポートはありますか?
ありがとう !
実際にはドキュメントはありませんが、サポートがあります。使用する
twisted.test.proto_helpers.FakeDatagramTransport
これは、UDPTutorialの Echo Server のテストです。
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)