def _PrepareSockets(self): Server._PrepareSockets(self) self._proxyfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self._fdmap[self._proxyfd.fileno()] = self._proxyfd self._poll.register(self._proxyfd.fileno(), (select.POLLIN | select.POLLPRI | select.POLLERR))
class SocketTests(unittest.TestCase): def setUp(self): self.orgsocket = socket.socket socket.socket = MockSocket self.server = Server() def tearDown(self): socket.socket = self.orgsocket def testBind(self): self.server.BindToAddress('192.168.13.13') self.assertEqual(len(self.server.authfds), 1) self.assertEqual(self.server.authfds[0].address, ('192.168.13.13', 1812)) self.assertEqual(len(self.server.acctfds), 1) self.assertEqual(self.server.acctfds[0].address, ('192.168.13.13', 1813)) def testGrabPacket(self): def gen(data): res = TrivialObject() res.data = data return res fd = MockFd() fd.source = object() pkt = self.server._GrabPacket(gen, fd) self.failUnless(isinstance(pkt, TrivialObject)) self.failUnless(pkt.fd is fd) self.failUnless(pkt.source is fd.source) self.failUnless(pkt.data is fd.data) def testPrepareSocketNoFds(self): self.server._poll = MockPoll() self.server._PrepareSockets() self.assertEqual(self.server._poll.registry, []) self.assertEqual(self.server._realauthfds, []) self.assertEqual(self.server._realacctfds, []) def testPrepareSocketAuthFds(self): self.server._poll = MockPoll() self.server._fdmap = {} self.server.authfds = [MockFd(12), MockFd(14)] self.server._PrepareSockets() self.assertEqual(list(self.server._fdmap.keys()), [12, 14]) self.assertEqual(self.server._poll.registry, [(12, select.POLLIN | select.POLLPRI | select.POLLERR), (14, select.POLLIN | select.POLLPRI | select.POLLERR)]) def testPrepareSocketAcctFds(self): self.server._poll = MockPoll() self.server._fdmap = {} self.server.acctfds = [MockFd(12), MockFd(14)] self.server._PrepareSockets() self.assertEqual(list(self.server._fdmap.keys()), [12, 14]) self.assertEqual(self.server._poll.registry, [(12, select.POLLIN | select.POLLPRI | select.POLLERR), (14, select.POLLIN | select.POLLPRI | select.POLLERR)])