Changeset 1076

Show
Ignore:
Timestamp:
09/16/07 00:30:24 (14 months ago)
Author:
wichert
Message:

100% test coverage for the server

Location:
trunk/pyrad/tests
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/pyrad/tests/mock.py

    r1071 r1076  
    105105 
    106106 
    107 def MockClassMethod(klass, name): 
     107def MockClassMethod(klass, name, myfunc=None): 
    108108    def func(self, *args, **kwargs): 
    109109        if not hasattr(self, "called"): 
     
    114114        klass._originals={} 
    115115    klass._originals[name]=getattr(klass, name) 
    116     setattr(klass, name, func) 
     116    if myfunc is None: 
     117        setattr(klass, name, func) 
     118    else: 
     119        setattr(klass, name, myfunc) 
    117120         
    118121 
  • trunk/pyrad/tests/testServer.py

    r1072 r1076  
    22import socket 
    33import unittest 
     4from pyrad.packet import PacketError 
    45from pyrad.server import RemoteHost 
    56from pyrad.server import Server 
    6 from pyrad.server import PacketError 
     7from pyrad.server import ServerPacketError 
    78from pyrad.tests.mock import MockFinished 
    89from pyrad.tests.mock import MockPoll 
     
    173174        try: 
    174175            self.server._HandleAuthPacket(self.packet) 
    175         except PacketError, e: 
     176        except ServerPacketError, e: 
    176177            self.failUnless("unknown host" in str(e)) 
    177178        else: 
     
    183184        try: 
    184185            self.server._HandleAuthPacket(self.packet) 
    185         except PacketError, e: 
     186        except ServerPacketError, e: 
    186187            self.failUnless("port" in str(e)) 
    187188        else: 
     
    216217        try: 
    217218            self.server._HandleAcctPacket(self.packet) 
    218         except PacketError, e: 
     219        except ServerPacketError, e: 
    219220            self.failUnless("unknown host" in str(e)) 
    220221        else: 
     
    226227        try: 
    227228            self.server._HandleAcctPacket(self.packet) 
    228         except PacketError, e: 
     229        except ServerPacketError, e: 
    229230            self.failUnless("port" in str(e)) 
    230231        else: 
     
    327328 
    328329 
    329     def testRunIgnoresPollWeirdness(self): 
    330  
    331         MockPoll.results=(0, select.POLLERR) 
    332  
    333  
     330    def testRunIgnoresPollErrors(self): 
     331        self.server.authfds=[MockFd()] 
     332        MockPoll.results=[(0, select.POLLERR)] 
     333        self.assertRaises(MockFinished, self.server.Run) 
     334 
     335 
     336    def testRunIgnoresServerPacketErrors(self): 
     337        def RaisePacketError(self, fd): 
     338            raise ServerPacketError 
     339        MockClassMethod(Server, "_ProcessInput", RaisePacketError) 
     340        self.server.authfds=fd=[MockFd()] 
     341        MockPoll.results=[(0, select.POLLIN)] 
     342        self.assertRaises(MockFinished, self.server.Run) 
     343 
     344 
     345    def testRunIgnoresPacketErrors(self): 
     346        def RaisePacketError(self, fd): 
     347            raise PacketError 
     348        MockClassMethod(Server, "_ProcessInput", RaisePacketError) 
     349        self.server.authfds=fd=[MockFd()] 
     350        MockPoll.results=[(0, select.POLLIN)] 
     351        self.assertRaises(MockFinished, self.server.Run) 
     352 
     353 
     354    def testRunRunsProcessInput(self): 
     355        MockClassMethod(Server, "_ProcessInput") 
     356        self.server.authfds=fd=[MockFd()] 
     357        MockPoll.results=[(0, select.POLLIN)] 
     358        self.assertRaises(MockFinished, self.server.Run) 
     359        self.assertEqual(self.server.called, [("_ProcessInput", (fd[0],), {})])