class RouterPBTestCase(unittest.TestCase): def setUp(self, authentication = False): # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests self.RouterPBConfigInstance = RouterPBConfig() # Launch the router server self.pbRoot_f = RouterPB() # Mock callbacks # will be used for assertions self.pbRoot_f.bill_request_submit_sm_resp_callback = mock.Mock(wraps = self.pbRoot_f.bill_request_submit_sm_resp_callback) self.pbRoot_f.deliver_sm_callback = mock.Mock(wraps = self.pbRoot_f.deliver_sm_callback) self.pbRoot_f.setConfig(self.RouterPBConfigInstance) p = portal.Portal(JasminPBRealm(self.pbRoot_f)) if not authentication: p.registerChecker(AllowAnonymousAccess()) else: c = InMemoryUsernamePasswordDatabaseDontUse() c.addUser('test_user', md5('test_password').digest()) p.registerChecker(c) jPBPortalRoot = JasminPBPortalRoot(p) self.PBServer = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.pbPort = self.PBServer.getHost().port @defer.inlineCallbacks def tearDown(self): yield self.disconnect() yield self.PBServer.stopListening() self.pbRoot_f.cancelPersistenceTimer()
class jCliTestCases(ProtocolTestCases): @defer.inlineCallbacks def setUp(self): # Launch AMQP Broker AMQPServiceConfigInstance = AmqpConfig() AMQPServiceConfigInstance.reconnectOnConnectionLoss = False self.amqpBroker = AmqpFactory(AMQPServiceConfigInstance) self.amqpBroker.preConnect() self.amqpClient = reactor.connectTCP(AMQPServiceConfigInstance.host, AMQPServiceConfigInstance.port, self.amqpBroker) # Wait for AMQP Broker connection to get ready yield self.amqpBroker.getChannelReadyDeferred() # Instanciate a RouterPB (a requirement for JCliFactory) self.RouterPBConfigInstance = RouterPBConfig() self.RouterPBConfigInstance.authentication = False self.RouterPB_f = RouterPB() self.RouterPB_f.setConfig(self.RouterPBConfigInstance) # Instanciate a SMPPClientManagerPB (a requirement for JCliFactory) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False self.clientManager_f = SMPPClientManagerPB() self.clientManager_f.setConfig(SMPPClientPBConfigInstance) yield self.clientManager_f.addAmqpBroker(self.amqpBroker) def tearDown(self): self.amqpClient.disconnect() self.RouterPB_f.cancelPersistenceTimer()
class RouterPBTestCase(unittest.TestCase): def setUp(self, authentication=False): # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests self.RouterPBConfigInstance = RouterPBConfig() # Launch the router server self.pbRoot_f = RouterPB() # Mock callbacks # will be used for assertions self.pbRoot_f.bill_request_submit_sm_resp_callback = mock.Mock( wraps=self.pbRoot_f.bill_request_submit_sm_resp_callback) self.pbRoot_f.deliver_sm_callback = mock.Mock( wraps=self.pbRoot_f.deliver_sm_callback) self.pbRoot_f.setConfig(self.RouterPBConfigInstance) p = portal.Portal(JasminPBRealm(self.pbRoot_f)) if not authentication: p.registerChecker(AllowAnonymousAccess()) else: c = InMemoryUsernamePasswordDatabaseDontUse() c.addUser('test_user', md5('test_password').digest()) p.registerChecker(c) jPBPortalRoot = JasminPBPortalRoot(p) self.PBServer = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.pbPort = self.PBServer.getHost().port @defer.inlineCallbacks def tearDown(self): yield self.disconnect() yield self.PBServer.stopListening() self.pbRoot_f.cancelPersistenceTimer()
class RouterPBTestCases(TestCase): def setUp(self): # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests self.routerpb_config = RouterPBConfig() # Instanciate RouterPB but will not launch a server # we only need the instance to access its .users attribute # for authentication self.routerpb_factory = RouterPB() self.routerpb_factory.setConfig(self.routerpb_config, persistenceTimer=False) # Provision a user and default route into RouterPB self.foo = User('u1', Group('test'), 'username', 'password') self.c1 = SmppClientConnector(id_generator()) self.defaultroute = DefaultRoute(self.c1) self.provision_user_defaultroute(user=self.foo, defaultroute=self.defaultroute) def provision_user_defaultroute(self, user, defaultroute=None): # This is normally done through jcli API (or any other high level API to come) # Using perspective_user_add() is just a shortcut for testing purposes if user.group not in self.routerpb_factory.groups: self.routerpb_factory.perspective_group_add( pickle.dumps(user.group)) self.routerpb_factory.perspective_user_add(pickle.dumps(user)) # provision route if defaultroute is not None: self.routerpb_factory.perspective_mtroute_add( pickle.dumps(defaultroute), 0)
class jCliTestCases(ProtocolTestCases): @defer.inlineCallbacks def setUp(self): # Launch AMQP Broker AMQPServiceConfigInstance = AmqpConfig() AMQPServiceConfigInstance.reconnectOnConnectionLoss = False self.amqpBroker = AmqpFactory(AMQPServiceConfigInstance) self.amqpBroker.preConnect() self.amqpClient = reactor.connectTCP(AMQPServiceConfigInstance.host, AMQPServiceConfigInstance.port, self.amqpBroker) # Wait for AMQP Broker connection to get ready yield self.amqpBroker.getChannelReadyDeferred() # Instanciate a RouterPB (a requirement for JCliFactory) self.RouterPBConfigInstance = RouterPBConfig() self.RouterPBConfigInstance.authentication = False self.RouterPB_f = RouterPB() self.RouterPB_f.setConfig(self.RouterPBConfigInstance) # Instanciate a SMPPClientManagerPB (a requirement for JCliFactory) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False self.clientManager_f = SMPPClientManagerPB() self.clientManager_f.setConfig(SMPPClientPBConfigInstance) yield self.clientManager_f.addAmqpBroker(self.amqpBroker) def tearDown(self): self.amqpClient.disconnect() self.RouterPB_f.cancelPersistenceTimer()
class HTTPApiTestCases(TestCase): def setUp(self): # Instanciate a RouterPB (a requirement for HTTPApi) RouterPBConfigInstance = RouterPBConfig() self.RouterPB_f = RouterPB() self.RouterPB_f.setConfig(RouterPBConfigInstance) # Provision Router with User and Route self.u1 = User(1, Group(1), 'fourat', 'correct') self.RouterPB_f.users.append(self.u1) self.RouterPB_f.mt_routing_table.add( DefaultRoute(SmppClientConnector('abc')), 0) # Instanciate a SMPPClientManagerPB (a requirement for HTTPApi) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False clientManager_f = SMPPClientManagerPB() clientManager_f.setConfig(SMPPClientPBConfigInstance) httpApiConfigInstance = HTTPApiConfig() self.web = DummySite( HTTPApi(self.RouterPB_f, clientManager_f, httpApiConfigInstance)) def tearDown(self): self.RouterPB_f.cancelPersistenceTimer()
class HTTPApiTestCases(TestCase): def setUp(self): # Instanciate a RouterPB (a requirement for HTTPApi) RouterPBConfigInstance = RouterPBConfig() self.RouterPB_f = RouterPB() self.RouterPB_f.setConfig(RouterPBConfigInstance) # Provision Router with User and Route self.g1 = Group(1) self.u1 = User(1, self.g1, 'fourat', 'correct') self.RouterPB_f.groups.append(self.g1) self.RouterPB_f.users.append(self.u1) self.RouterPB_f.mt_routing_table.add(DefaultRoute(SmppClientConnector('abc')), 0) # Instanciate a SMPPClientManagerPB (a requirement for HTTPApi) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False clientManager_f = SMPPClientManagerPB() clientManager_f.setConfig(SMPPClientPBConfigInstance) httpApiConfigInstance = HTTPApiConfig() self.web = DummySite(HTTPApi(self.RouterPB_f, clientManager_f, httpApiConfigInstance)) def tearDown(self): self.RouterPB_f.cancelPersistenceTimer()
class RouterPBTestCases(TestCase): def setUp(self): # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests self.routerpb_config = RouterPBConfig() # Instanciate RouterPB but will not launch a server # we only need the instance to access its .users attribute # for authentication self.routerpb_factory = RouterPB() self.routerpb_factory.setConfig(self.routerpb_config, persistenceTimer = False) # Provision a user and default route into RouterPB self.foo = User('u1', Group('test'), 'username', 'password') self.c1 = SmppClientConnector(id_generator()) self.defaultroute = DefaultRoute(self.c1) self.provision_user_defaultroute(user = self.foo, defaultroute = self.defaultroute) def provision_user_defaultroute(self, user, defaultroute = None): # This is normally done through jcli API (or any other high level API to come) # Using perspective_user_add() is just a shortcut for testing purposes if user.group not in self.routerpb_factory.groups: self.routerpb_factory.perspective_group_add(pickle.dumps(user.group)) self.routerpb_factory.perspective_user_add(pickle.dumps(user)) # provision route if defaultroute is not None: self.routerpb_factory.perspective_mtroute_add(pickle.dumps(defaultroute), 0)
class SMPPClientPBTestCase(unittest.TestCase): @defer.inlineCallbacks def setUp(self, authentication=False): # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests self.SMPPClientPBConfigInstance = SMPPClientPBConfig() self.SMPPClientPBConfigInstance.authentication = authentication AMQPServiceConfigInstance = AmqpConfig() AMQPServiceConfigInstance.reconnectOnConnectionLoss = False # Launch AMQP Broker self.amqpBroker = AmqpFactory(AMQPServiceConfigInstance) self.amqpBroker.preConnect() self.amqpClient = reactor.connectTCP(AMQPServiceConfigInstance.host, AMQPServiceConfigInstance.port, self.amqpBroker) # Wait for AMQP Broker connection to get ready yield self.amqpBroker.getChannelReadyDeferred() # Launch the client manager server pbRoot = SMPPClientManagerPB() pbRoot.setConfig(self.SMPPClientPBConfigInstance) yield pbRoot.addAmqpBroker(self.amqpBroker) p = portal.Portal(JasminPBRealm(pbRoot)) if not authentication: p.registerChecker(AllowAnonymousAccess()) else: c = InMemoryUsernamePasswordDatabaseDontUse() c.addUser('test_user', md5('test_password').digest()) p.registerChecker(c) jPBPortalRoot = JasminPBPortalRoot(p) self.PBServer = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.pbPort = self.PBServer.getHost().port # Launch the router server self.RouterPBInstance = RouterPB() self.RouterPBInstance.setConfig(RouterPBConfig()) pbRoot.addRouterPB(self.RouterPBInstance) # Default SMPPClientConfig defaultSMPPClientId = '001-testconnector' self.defaultConfig = SMPPClientConfig( id=defaultSMPPClientId, username='******', reconnectOnConnectionFailure=True, port=9002, ) @defer.inlineCallbacks def tearDown(self): yield self.RouterPBInstance.cancelPersistenceTimer() yield self.PBServer.stopListening() yield self.amqpClient.disconnect()
class SMPPClientPBTestCase(unittest.TestCase): @defer.inlineCallbacks def setUp(self, authentication = False): # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests self.SMPPClientPBConfigInstance = SMPPClientPBConfig() self.SMPPClientPBConfigInstance.authentication = authentication AMQPServiceConfigInstance = AmqpConfig() AMQPServiceConfigInstance.reconnectOnConnectionLoss = False # Launch AMQP Broker self.amqpBroker = AmqpFactory(AMQPServiceConfigInstance) self.amqpBroker.preConnect() self.amqpClient = reactor.connectTCP(AMQPServiceConfigInstance.host, AMQPServiceConfigInstance.port, self.amqpBroker) # Wait for AMQP Broker connection to get ready yield self.amqpBroker.getChannelReadyDeferred() # Launch the client manager server pbRoot = SMPPClientManagerPB() pbRoot.setConfig(self.SMPPClientPBConfigInstance) yield pbRoot.addAmqpBroker(self.amqpBroker) p = portal.Portal(JasminPBRealm(pbRoot)) if not authentication: p.registerChecker(AllowAnonymousAccess()) else: c = InMemoryUsernamePasswordDatabaseDontUse() c.addUser('test_user', md5('test_password').digest()) p.registerChecker(c) jPBPortalRoot = JasminPBPortalRoot(p) self.PBServer = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.pbPort = self.PBServer.getHost().port # Launch the router server self.RouterPBInstance = RouterPB() self.RouterPBInstance.setConfig(RouterPBConfig()) pbRoot.addRouterPB(self.RouterPBInstance) # Default SMPPClientConfig defaultSMPPClientId = '001-testconnector' self.defaultConfig = SMPPClientConfig(id=defaultSMPPClientId, username='******', reconnectOnConnectionFailure=True, port=9002, ) @defer.inlineCallbacks def tearDown(self): yield self.RouterPBInstance.cancelPersistenceTimer() yield self.PBServer.stopListening() yield self.amqpClient.disconnect()