Example #1
0
 def test_pausing(self):
     """
     Test pause inside data receiving. It uses fake clock to see if
     pausing/resuming work.
     """
     for packet_size in range(1, 10):
         t = proto_helpers.StringIOWithoutClosing()
         clock = task.Clock()
         a = LineTester(clock)
         a.makeConnection(protocol.FileWrapper(t))
         for i in range(len(self.pauseBuf) // packet_size + 1):
             s = self.pauseBuf[i * packet_size:(i + 1) * packet_size]
             a.dataReceived(s)
         self.assertEqual(self.pauseOutput1, a.received)
         clock.advance(0)
         self.assertEqual(self.pauseOutput2, a.received)
Example #2
0
 def runRequest(self, httpRequest, requestClass, success=1):
     httpRequest = httpRequest.replace("\n", "\r\n")
     b = StringIOWithoutClosing()
     a = http.HTTPChannel()
     a.requestFactory = requestClass
     a.makeConnection(protocol.FileWrapper(b))
     # one byte at a time, to stress it.
     for byte in httpRequest:
         if a.transport.closed:
             break
         a.dataReceived(byte)
     a.connectionLost(IOError("all done"))
     if success:
         self.assertEquals(self.didRequest, 1)
         del self.didRequest
     else:
         self.assert_(not hasattr(self, "didRequest"))
Example #3
0
 def test_simple_packet(self):
     """
     Test buffering for different packet size, checking received matches
     expected data.
     """
     for tf in test_factory.test_factories.itervalues():
         test_pdu = tf()
         pdu_data = test_pdu.pack()
         for packet_size in range(1, len(pdu_data)):
             transport = proto_helpers.StringIOWithoutClosing()
             uls = DICOMUpperLayerServiceTester()
             uls.makeConnection(protocol.FileWrapper(transport))
             for i in range(len(pdu_data) // packet_size + 1):
                 s = pdu_data[i * packet_size:(i + 1) * packet_size]
                 uls.dataReceived(s)
             self.assertEqual(len(uls.received), 1)
             self.assertEqual(uls.received[0].pack(), test_pdu.pack())
Example #4
0
 def runTest(self):
     sends=["FLAPON\r\n\r\n",\
      flap(1,"\000\000\000\001\000\001\000\004test"),\
      flap(2,"toc_signon localhost 9999 test 0x00 english penguin\000"),\
      flap(2,"toc_init_done\000"),\
      flap(2,"toc_add_deny\000"),\
      flap(2,"toc_send_im test 1\000"),\
      flap(2,"toc_add_deny test\000"),\
      flap(2,"toc_send_im test 2\000"),\
      flap(2,"toc_add_permit\000"),\
      flap(2,"toc_send_im test 3\000"),\
      flap(2,"toc_add_permit test\000"),\
      flap(2,"toc_send_im test 4\000")]
     expect=[[1,"\000\000\000\001"],\
      [2,"SIGN_ON:TOC1.0\000"],\
      [2,"NICK:test\000"],\
      [2,"CONFIG:\000"],\
      [2,"IM_IN:test:F:1\000"],\
      [2,"ERROR:901:test\000"],\
      [2,"ERROR:901:test\000"],\
      [2,"IM_IN:test:F:4\000"]]
     d = DummyTOC()
     d.factory = toc.TOCFactory()
     s = StringIOWithoutClosing()
     d.makeConnection(protocol.FileWrapper(s))
     for i in sends:
         d.dataReceived(i)
     d.connectionLost(failure.Failure(main.CONNECTION_DONE))
     v = s.getvalue()
     flaps = []
     f, v = readFlap(v)
     while f:
         flaps.append(f)
         f, v = readFlap(v)
     if flaps != expect:
         for i in range(len(flaps)):
             if flaps[i] != expect[i]:
                 raise AssertionError(
                     "PrivacyTest Before Failed!\nactual:%s\nshould be:%s" %
                     (flaps[i], expect[i]))
         raise AssertionError(
             "PrivacyTest Before Failed with incorrect length!\nactual:%s\nshould be:%s"
             % (flaps, expect))
Example #5
0
    def testGPSMessages(self):
        dummy = NMEATester()
        dummy.makeConnection(protocol.FileWrapper(StringIOWithNoClose()))
        for line in self.messages:
            dummy.resultHarvester.performTest(dummy.lineReceived, line)

        def munge(myTuple):
            if type(myTuple) != type(()):
                return
            newTuple = []
            for v in myTuple:
                if type(v) == type(1.1):
                    v = float(int(v * 10000.0)) * 0.0001
                newTuple.append(v)
            return tuple(newTuple)

        for (message, expectedResult,
             actualResult) in zip(self.messages, self.results,
                                  dummy.resultHarvester.results):
            expectedResult = munge(expectedResult)
            actualResult = munge(actualResult)
            if isinstance(expectedResult, Exception):
                if isinstance(actualResult, Exception):
                    self.assertEqual(
                        expectedResult.__class__, actualResult.__class__,
                        "\nInput:\n%s\nExpected:\n%s.%s\nResults:\n%s.%s\n" %
                        (message, expectedResult.__class__.__module__,
                         expectedResult.__class__.__name__,
                         actualResult.__class__.__module__,
                         actualResult.__class__.__name__))
                else:
                    self.assertEqual(
                        1, 0,
                        "\nInput:\n%s\nExpected:\n%s.%s\nResults:\n%r\n" %
                        (message, expectedResult.__class__.__module__,
                         expectedResult.__class__.__name__, actualResult))
            else:
                self.assertEqual(
                    expectedResult, actualResult,
                    "\nInput:\n%s\nExpected: %r\nResults: %r\n" %
                    (message, expectedResult, actualResult))
Example #6
0
 def testBuffer(self):
     b = StringIOWithoutClosing()
     a = http.HTTPChannel()
     a.requestFactory = DummyHTTPHandler
     a.makeConnection(protocol.FileWrapper(b))
     # one byte at a time, to stress it.
     for byte in self.requests:
         a.dataReceived(byte)
     a.connectionLost(IOError("all one"))
     value = b.getvalue()
     if value != self.expected_response:
         for i in range(len(value)):
             if len(self.expected_response) <= i:
                 print `value[i-5:i+10]`, `self.expected_response[i-5:i+10]`
             elif value[i] != self.expected_response[i]:
                 print `value[i-5:i+10]`, `self.expected_response[i-5:i+10]`
                 break
         print '---VALUE---'
         print repr(value)
         print '---EXPECTED---'
         print repr(self.expected_response)
         raise AssertionError
Example #7
0
    def setUp(self):
        self.file = StringIOWithoutClosing()
        self.transport = protocol.FileWrapper(self.file)

        self.factory = server.ServerFactory()
        self.protocol = self.factory.buildProtocol(None)

        self.protocol.factory = self.factory

        self.protocol.transport = self.transport
        self.protocol.connectionMade()
        self.protocol.versionSuccess()
        self.protocol.handshakeSuccess('')

        self.messages = []

        def send_message(*args):
            self.messages.append(args)

        self.patch(self.protocol.nc, 'sendMessage', send_message)

        self.control = self.protocol.controlStream
Example #8
0
    def testBuffer(self):
        output = StringIOWithoutClosing()
        a = self.serverClass()
        class fooFactory:
            domain = 'foo.com'

        a.factory = fooFactory()
        a.makeConnection(protocol.FileWrapper(output))
        for (send, expect, msg, msgexpect) in self.data:
            if send:
                a.dataReceived(send)
            data = output.getvalue()
            output.truncate(0)
            if not re.match(expect, data):
                raise AssertionError, (send, expect, data)
            if data[:3] == '354':
                for line in msg.splitlines():
                    if line and line[0] == '.':
                        line = '.' + line
                    a.dataReceived(line + '\r\n')
                a.dataReceived('.\r\n')
                # Special case for DATA. Now we want a 250, and then
                # we compare the messages
                data = output.getvalue()
                output.truncate()
                resp, msgdata = msgexpect
                if not re.match(resp, data):
                    raise AssertionError, (resp, data)
                for recip in msgdata[2]:
                    expected = list(msgdata[:])
                    expected[2] = [recip]
                    self.assertEquals(
                        a.message[(recip,)],
                        tuple(expected)
                    )
        a.setTimeout(None)
Example #9
0
 def runTest(self):
     packets=["FLAPON\r\n\r\n",\
      flap(1,"\000\000\000\001\000\001\000\004test"),\
      flap(2,"toc_signon null 9999 test 0x100000 english \"penguin 0.1\"\000"),\
      flap(2,"toc_init_done\000"),\
      flap(2,"toc_send_im test hi\000")]
     shouldbe=[[1,"\000\000\000\001"],\
      [2,"SIGN_ON:TOC1.0\000"],\
      [2,"NICK:test\000"],\
      [2,"CONFIG:\000"],\
      [2,"IM_IN:test:F:hi\000"]]
     data = ""
     for i in packets:
         data = data + i
     s = StringIOWithoutClosing()
     d = DummyTOC()
     fac = toc.TOCFactory()
     d.factory = fac
     d.makeConnection(protocol.FileWrapper(s))
     d.dataReceived(data)
     d.connectionLost(failure.Failure(main.CONNECTION_DONE))
     value = s.getvalue()
     flaps = []
     f, value = readFlap(value)
     while f:
         flaps.append(f)
         f, value = readFlap(value)
     if flaps != shouldbe:
         for i in range(len(flaps)):
             if flaps[i] != shouldbe[i]:
                 raise AssertionError(
                     "MultiPacketTest Failed!\nactual:%s\nshould be:%s" %
                     (flaps[i], shouldbe[i]))
         raise AssertionError(
             "MultiPacketTest Failed with incorrect length!, printing both lists\nactual:%s\nshould be:%s"
             % (flaps, shouldbe))
Example #10
0
 def setUp(self, encClass):
     self.io = BytesIO()
     self.enc = encClass()
     self.enc.makeConnection(protocol.FileWrapper(self.io))
     self.enc._selectDialect("none")
     self.enc.expressionReceived = self.putResult
Example #11
0
 def runTest(self):
     USERS=2
     data=range(USERS)
     data[0]=("FLAPON\r\n\r\n",\
     flap(1,"\000\000\000\001\000\001\000\004test"),\
     flap(2,"toc_signon localhost 9999 test 0x100000 english \"penguin 0.1\"\000"),\
     flap(2,"toc_add_buddy test\000"),\
     flap(2,"toc_init_done\000"),\
     flap(2,"toc_send_im test \"hi\"\000"),\
     flap(2,"toc_send_im test2 \"hello\"\000"),\
     flap(2,"toc_set_away \"not here\"\000"),\
     flap(2,"toc_set_idle 602\000"),\
     flap(2,"toc_set_idle 0\000"),\
     flap(2,"toc_set_away\000"),\
     flap(2,"toc_evil test norm\000"),\
     flap(2,"toc_chat_join 4 \"Test Chat\"\000"),\
     flap(2,"toc_chat_send 0 \"hello\"\000"),\
     #flap(2,"toc_chat_leave 0\000")) #,\
     flap(2,"toc_chat_invite 0 \"come\" ooga\000"),\
     #flap(2,"toc_chat_accept 0\000"),\
     flap(5,"\000"),\
     flap(2,"toc_chat_whisper 0 ooga \"boo ga\"\000"),\
     flap(2,"toc_chat_leave 0"),\
     flap(5,"\000"))
     data[1]=("FLAPON\r\n\r\n",\
     flap(1,"\000\000\000\001\000\001\000\004ooga"),\
     flap(2,"toc_signon localhost 9999 ooga 0x100000 english \"penguin 0.1\"\000"),\
     flap(2,"toc_add_buddy test\000"),\
     flap(2,"toc_init_done\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     #flap(5,"\000"),\
     #flap(5,"\000"),\
     #flap(5,"\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     flap(5,"\000"),\
     #flap(5,"\000"),\
     flap(2,"toc_chat_accept 0\000"),\
     flap(2,"toc_chat_send 0 \"hi test\"\000"),\
     flap(5,"\000"),\
     flap(2,"toc_chat_leave 0\000"))
     strings=range(USERS)
     for i in strings:
         strings[i]=StringIOWithoutClosing()
     fac=toc.TOCFactory()
     dummy=range(USERS)
     for i in dummy:
         dummy[i]=DummyTOC()
         dummy[i].factory=fac
         dummy[i].makeConnection(protocol.FileWrapper(strings[i]))
     while reduce(lambda x,y:x+y,map(lambda x:x==(),data))!=USERS:
         for i in range(USERS):
             d=data[i]
             if len(d)>0:
                 k,data[i]=d[0],d[1:]
                 for j in k:
                     dummy[i].dataReceived(j) # test by doing a character at a time
             else:
                 dummy[i].connectionLost(failure.Failure(main.CONNECTION_DONE))
     values=range(USERS)
     for i in values:
         values[i]=strings[i].getvalue()
     flaps=map(lambda x:[],range(USERS))
     for value in values:
         i=values.index(value)
         f,value=readFlap(value)
         while f:
             flaps[i].append(f)
             f,value=readFlap(value)
     ts=range(USERS)
     for t in ts:
         ts[t]=dummy[t].signontime
     shouldequal=range(USERS)
     shouldequal[0]=[ \
     [1,"\000\000\000\001"],\
     [2,"SIGN_ON:TOC1.0\000"],\
     [2,"NICK:test\000"],\
     [2,"CONFIG:\00"],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: O\000"%ts[0]],\
     [2,"IM_IN:test:F:hi\000"],\
     [2,"ERROR:901:test2\000"],\
     #[2,"UPDATE_BUDDY:test:T:0:%s:0: O\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: OU\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:10: OU\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: OU\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: O\000"%ts[0]],\
     [2,"EVILED:10:test\000"],\
     [2,"UPDATE_BUDDY:test:T:10:%s:0: O\000"%ts[0]],\
     [2,"CHAT_JOIN:0:Test Chat\000"],\
     [2,"CHAT_UPDATE_BUDDY:0:T:test\000"],\
     [2,"CHAT_IN:0:test:F:hello\000"],\
     [2,"CHAT_UPDATE_BUDDY:0:T:ooga\000"],\
     [2,"CHAT_IN:0:ooga:F:hi test\000"],\
     [2,"CHAT_LEFT:0\000"]]
     shouldequal[1]=[ \
     [1,"\000\000\000\001"],\
     [2,"SIGN_ON:TOC1.0\000"],\
     [2,"NICK:ooga\000"],\
     [2,"CONFIG:\000"],\
     #[2,"UPDATE_BUDDY:test:T:0:%s:0: O\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: OU\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:10: OU\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: OU\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:0:%s:0: O\000"%ts[0]],\
     [2,"UPDATE_BUDDY:test:T:10:%s:0: O\000"%ts[0]],\
     [2,"CHAT_INVITE:Test Chat:0:test:come\000"],\
     [2,"CHAT_JOIN:0:Test Chat\000"],\
     [2,"CHAT_UPDATE_BUDDY:0:T:test:ooga\000"],\
     [2,"CHAT_IN:0:ooga:F:hi test\000"],\
     [2,"CHAT_IN:0:test:T:boo ga\000"],\
     [2,"CHAT_UPDATE_BUDDY:0:F:test\000"],\
     [2,"CHAT_LEFT:0\000"]]
     if flaps!=shouldequal:
         for i in range(len(shouldequal)):
             for j in range(len(shouldequal[i])):
                 if shouldequal[i][j]!=flaps[i][j]:
                     raise AssertionError("GeneralTest Failed!\nUser %s Line %s\nactual:%s\nshould be:%s"%(i,j,flaps[i][j],shouldequal[i][j]))
         raise AssertionError("GeneralTest Failed with incorrect lengths!")
Example #12
0
 def runTest(self):
     password1=toc.roast("test pass")
     password2=toc.roast("pass test")
     beforesend=[\
      "FLAPON\r\n\r\n",\
      flap(1,"\000\000\000\001\000\001\000\004test"),\
      flap(2,"toc_signon localhost 9999 test %s english \"penguin 0.1\"\000"%password1),\
      flap(2,"toc_init_done\000"),\
      flap(2,"toc_set_config \"{m 4}\"\000"),\
      flap(2,"toc_format_nickname BOOGA\000"),\
      flap(2,"toc_format_nickname \"T E S T\"\000"),\
      flap(2,"toc_change_passwd \"testpass\" \"pass test\"\000"),\
      flap(2,"toc_change_passwd \"test pass\" \"pass test\"\000")]
     beforeexpect=[\
      [1,"\000\000\000\001"],\
      [2,"SIGN_ON:TOC1.0\000"],\
      [2,"NICK:test\000"],\
      [2,"CONFIG:\000"],\
      [2,"ERROR:911\000"],\
      [2,"ADMIN_NICK_STATUS:0\000"],\
      [2,"ERROR:911\000"],\
      [2,"ADMIN_PASSWD_STATUS:0\000"]]
     badpasssend=[\
      "FLAPON\r\n\r\n",\
      flap(1,"\000\000\000\001\000\001\000\004test"),\
      flap(2,"toc_signon localhost 9999 test 0x1000 english \"penguin 0.1\"\000"),\
      flap(2,"toc_init_done")]
     badpassexpect=[\
      [1,"\000\00\000\001"],\
      [2,"ERROR:980\000"]]
     goodpasssend=[\
      "FLAPON\r\n\r\n",\
      flap(1,"\000\000\000\001\000\001\000\004test"),\
      flap(2,"toc_signon localhost 9999 test %s english \"penguin 0.1\"\000"%password2),\
      flap(2,"toc_init_done")]
     goodpassexpect=[\
      [1,"\000\000\000\001"],\
      [2,"SIGN_ON:TOC1.0\000"],\
      [2,"NICK:T E S T\000"],\
      [2,"CONFIG:{m 4}\000"]]
     fac=toc.TOCFactory()
     d=DummyTOC()
     d.factory=fac
     s=StringIOWithoutClosing()
     d.makeConnection(protocol.FileWrapper(s))
     for i in beforesend:
         d.dataReceived(i)
     d.connectionLost(failure.Failure(main.CONNECTION_DONE))
     v=s.getvalue()
     flaps=[]
     f,v=readFlap(v)
     while f:
         flaps.append(f)
         f,v=readFlap(v)
     if flaps!=beforeexpect:
         for i in range(len(flaps)):
             if flaps[i]!=beforeexpect[i]:
                 raise AssertionError("SavedValuesTest Before Failed!\nactual:%s\nshould be:%s"%(flaps[i],beforeexpect[i]))
         raise AssertionError("SavedValuesTest Before Failed with incorrect length!\nactual:%s\nshould be:%s"%(flaps,beforeexpect))
     d=DummyTOC()
     d.factory=fac
     s=StringIOWithoutClosing()
     d.makeConnection(protocol.FileWrapper(s))
     for i in badpasssend:
         d.dataReceived(i)
     d.connectionLost(failure.Failure(main.CONNECTION_DONE))
     v=s.getvalue()
     flaps=[]
     f,v=readFlap(v)
     while f:
         flaps.append(f)
         f,v=readFlap(v)
     if flaps!=badpassexpect:
         for i in range(len(flaps)):
             if flaps[i]!=badpassexpect[i]:
                 raise AssertionError("SavedValuesTest BadPass Failed!\nactual:%s\nshould be:%s"%(flaps[i],badpassexpect[i]))
         raise AssertionError("SavedValuesTest BadPass Failed with incorrect length!\nactual:%s\nshould be:%s"%(flaps,badpassexpect))
     d=DummyTOC()
     d.factory=fac
     s=StringIOWithoutClosing()
     d.makeConnection(protocol.FileWrapper(s))
     for i in goodpasssend:
         d.dataReceived(i)
     d.connectionLost(failure.Failure(main.CONNECTION_DONE))
     v=s.getvalue()
     flaps=[]
     f,v=readFlap(v)
     while f:
         flaps.append(f)
         f,v=readFlap(v)
     if flaps!=goodpassexpect:
         for i in range(len(flaps)):
             if flaps[i]!=goodpassexpect[i]:
                 raise AssertionError("SavedValuesTest GoodPass Failed!\nactual:%s\nshould be:%s"%(flaps[i],goodpassexpect[i]))
         raise AssertionError("SavedValuesTest GoodPass Failed with incorrect length!\nactual:%s\nshould be:%s"%(flaps,beforeexpect))
Example #13
0
 def setUp(self):
     self.t = test_protocols.StringIOWithoutClosing()
     self.p = finger.Finger()
     self.p.makeConnection(protocol.FileWrapper(self.t))
Example #14
0
 def setUp(self):
     self.file = StringIOWithoutClosing()
     self.transport = protocol.FileWrapper(self.file)
     self.client = IRCClientWithoutLogin()
     self.client.makeConnection(self.transport)
Example #15
0
 def setUp(self):
     self.f = StringIOWithoutClosing()
     self.t = protocol.FileWrapper(self.f)
     self.p = irc.IRC()
     self.p.makeConnection(self.t)
Example #16
0
 def testLineReceiverAsProducer(self):
     a = LineTester()
     t = StringIOWithoutClosing()
     a.makeConnection(protocol.FileWrapper(t))
     a.dataReceived('produce\nhello world\nunproduce\ngoodbye\n')
     self.assertEquals(a.received, ['produce', 'hello world', 'unproduce', 'goodbye'])
Example #17
0
 def setUp(self):
     self.factory = smtp.SMTPFactory()
     self.factory.domains = {}
     self.factory.domains['baz.com'] = DummyDomain(['foo'])
     self.output = StringIOWithoutClosing()
     self.transport = protocol.FileWrapper(self.output)
Example #18
0
 def testLineTooLong(self):
     t = StringIOWithoutClosing()
     a = LineOnlyTester()
     a.makeConnection(protocol.FileWrapper(t))
     res = a.dataReceived('x'*200)
     self.failIfEqual(res, None)
Example #19
0
 def getProtocol(self):
     t = StringIOWithoutClosing()
     a = self.protocol()
     a.makeConnection(protocol.FileWrapper(t))
     return a
Example #20
0
 def testQOTD(self):
     t = StringIOWithoutClosing()
     a = wire.QOTD()
     a.makeConnection(protocol.FileWrapper(t))
     self.failUnlessEqual(t.getvalue(),
                          "An apple a day keeps the doctor away.\r\n")
Example #21
0
 def testWho(self):
     t = StringIOWithoutClosing()
     a = wire.Who()
     a.makeConnection(protocol.FileWrapper(t))
     self.failUnlessEqual(t.getvalue(), "root\r\n")