def setUp(self): self.server = Server() self.server.hosts['host'] = TrivialObject() self.server.hosts['host'].secret = 'supersecret' self.packet = TrivialObject() self.packet.code = AccountingRequest self.packet.source = ('host', 'port')
def testSimpleConstruction(self): server = Server() self.assertEqual(server.authfds, []) self.assertEqual(server.acctfds, []) self.assertEqual(server.authport, 1812) self.assertEqual(server.acctport, 1813) self.assertEqual(server.coaport, 3799) self.assertEqual(server.hosts, {})
def testParameterOrder(self): server = Server([], 'authport', 'acctport', 'coaport', 'hosts', 'dict') self.assertEqual(server.authfds, []) self.assertEqual(server.acctfds, []) self.assertEqual(server.authport, 'authport') self.assertEqual(server.acctport, 'acctport') self.assertEqual(server.coaport, 'coaport') self.assertEqual(server.dict, 'dict')
class OtherTests(unittest.TestCase): def setUp(self): self.server = Server() def tearDown(self): UnmockClassMethods(Server) def testCreateReplyPacket(self): class TrivialPacket: source = object() def CreateReply(self, **kw): reply = TrivialObject() reply.kw = kw return reply reply = self.server.CreateReplyPacket(TrivialPacket(), one='one', two='two') self.failUnless(isinstance(reply, TrivialObject)) self.failUnless(reply.source is TrivialPacket.source) self.assertEqual(reply.kw, dict(one='one', two='two')) def testAuthProcessInput(self): fd = MockFd(1) self.server._realauthfds = [1] MockClassMethod(Server, '_GrabPacket') MockClassMethod(Server, '_HandleAuthPacket') self.server._ProcessInput(fd) self.assertEqual([x[0] for x in self.server.called], ['_GrabPacket', '_HandleAuthPacket']) self.assertEqual(self.server.called[0][1][1], fd) def testAcctProcessInput(self): fd = MockFd(1) self.server._realauthfds = [] self.server._realacctfds = [1] MockClassMethod(Server, '_GrabPacket') MockClassMethod(Server, '_HandleAcctPacket') self.server._ProcessInput(fd) self.assertEqual([x[0] for x in self.server.called], ['_GrabPacket', '_HandleAcctPacket']) self.assertEqual(self.server.called[0][1][1], fd)
def testBindDuringConstruction(self): def BindToAddress(self, addr): self.bound.append(addr) bta = Server.BindToAddress Server.BindToAddress = BindToAddress Server.bound = [] server = Server(['one', 'two', 'three']) self.assertEqual(server.bound, ['one', 'two', 'three']) del Server.bound Server.BindToAddress = bta
def _ProcessInput(self, fd): """Process available data. If this packet should be dropped instead of processed a `ServerPacketError` exception should be raised. The main loop will drop the packet and log the reason. This function calls either :obj:`HandleAuthPacket`, :obj:`HandleAcctPacket` or :obj:`_HandleProxyPacket` depending on which socket is being processed. :param fd: socket to read packet from :type fd: socket class instance :param pkt: packet to process :type pkt: Packet class instance """ if fd.fileno() == self._proxyfd.fileno(): pkt = self._GrabPacket( lambda data, s=self: s.CreatePacket(packet=data), fd) self._HandleProxyPacket(pkt) else: Server._ProcessInput(self, fd)
class AcctPacketHandlingTests(unittest.TestCase): def setUp(self): self.server = Server() self.server.hosts['host'] = TrivialObject() self.server.hosts['host'].secret = 'supersecret' self.packet = TrivialObject() self.packet.code = AccountingRequest self.packet.source = ('host', 'port') def testHandleAcctPacketUnknownHost(self): self.packet.source = ('stranger', 'port') try: self.server._HandleAcctPacket(self.packet) except ServerPacketError as e: self.failUnless('unknown host' in str(e)) else: self.fail() def testHandleAcctPacketWrongPort(self): self.packet.code = AccessRequest try: self.server._HandleAcctPacket(self.packet) except ServerPacketError as e: self.failUnless('port' in str(e)) else: self.fail() def testHandleAcctPacket(self): def HandleAcctPacket(self, pkt): self.handled = pkt hap = Server.HandleAcctPacket Server.HandleAcctPacket = HandleAcctPacket self.server._HandleAcctPacket(self.packet) self.failUnless(self.server.handled is self.packet) Server.HandleAcctPacket = hap
def setUp(self): self.server = Server() self.origpoll = select.poll select.poll = MockPoll
def setUp(self): self.server = Server()
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)])
def setUp(self): self.orgsocket = socket.socket socket.socket = MockSocket self.server = Server()
from pyrad.server import Server, RemoteHost from netaddr import * #Testing, testing print("Hello!") ip = IPNetwork("192.168.0.1/24") print("version: ", ip.version) print("IP:", ip.ip) print(ip.broadcast) print(ip.netmask) #if (IPAddress("192.168.1.1") in IPNetwork("192.168.0.0/24")): # print("Ip is within subnet") #else: # print("Ip is not within subnet") remoteHost = RemoteHost("10.0.0.138", "pass", "host", 80) server = Server()