Ticket #2445: sip_test.py

File sip_test.py, 1.7 KB (added by gardnerpomper, 8 years ago)

very very simple sip unit test

Line 
1#!/usr/bin/env python
2from twisted.trial import unittest
3from twisted.protocols import sip
4from twisted.internet import defer, reactor
5
6BSP_IP = "172.16.1.33"
7BSP_PORT = "5060"
8
9class Client(sip.Base):
10    def __init__(self):
11        sip.Base.__init__(self)
12        self.received = []
13    def handle_response(self,response,addr):
14        self.received.append(response)
15
16class sipTest(unittest.TestCase):
17
18    def setUp(self):
19        self.proxy = sip.RegisterProxy(host=BSP_IP)
20        self.registry = sip.InMemoryRegistry("bell.example.com")
21        self.proxy.registry = self.proxy.locator = self.registry
22        self.serverPort = reactor.listenUDP(0, self.proxy, interface=BSP_IP)
23        self.client = Client()
24        self.clientPort = reactor.listenUDP(0, self.client, interface=BSP_IP)
25        self.serverAddress = self.serverPort.getHost().host
26
27    def tearDown(self):
28        self.clientPort.stopListening()
29        self.serverPort.stopListening()
30        for d, uri in self.registry.users.values():
31            d.cancel()
32        #reactor.iterate()
33        #reactor.iterate()
34
35    def testRegister():
36        print self.clientPort.getHost()
37        p = self.clientPort.getHost()[-1]
38        r = sip.Request("REGISTER", "sip:bell.example.com")
39        r.addHeader("to", "sip:joe@bell.example.com")
40        r.addHeader("contact", "sip:joe@127.0.0.1:%d" % p)
41        r.addHeader("via", sip.Via(BSP_IP, port=p).toString())
42        self.client.sendMessage(sip.URL(host=BSP_IP, port=self.serverAddress[1]),
43                                r)
44        while not len(self.client.received):
45            reactor.iterate()
46        self.assertEquals(len(self.client.received), 1)
47        r = self.client.received[0]
48        print r
49        self.assertEquals(r.code, 200)