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 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 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.RouterPBConfigInstance) # Instanciate a SMPPClientManagerPB (a requirement for JCliFactory) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False self.clientManager_f = SMPPClientManagerPB(SMPPClientPBConfigInstance) yield self.clientManager_f.addAmqpBroker(self.amqpBroker) # Instanciate a SMPPServerFactory (a requirement for JCliFactory) SMPPServerConfigInstance = SMPPServerConfig() # Portal init _portal = portal.Portal(SmppsRealm(SMPPServerConfigInstance.id, self.RouterPB_f)) _portal.registerChecker(RouterAuthChecker(self.RouterPB_f)) self.SMPPSFactory = SMPPServerFactory( config=SMPPServerConfigInstance, auth_portal=_portal, RouterPB=self.RouterPB_f, SMPPClientManagerPB=self.clientManager_f) @defer.inlineCallbacks def tearDown(self): # Delete any previously persisted configuration persistenceFolder = self.RouterPBConfigInstance.store_path for the_file in os.listdir(persistenceFolder): if the_file == '.gitignore': # Dont delete any hidden file continue file_path = os.path.join(persistenceFolder, the_file) if os.path.isfile(file_path): os.unlink(file_path) yield self.RouterPB_f.cancelPersistenceTimer() yield self.amqpClient.disconnect() for q in self.amqpBroker.queues: try: yield self.amqpBroker.chan.queue_delete(queue=q) except: # Likely the channel is closed so we can't clean up the queues pass yield self.amqpBroker.disconnect()
class SMPPClientManagerPBTestCase(HttpServerTestCase): @defer.inlineCallbacks def setUp(self): HttpServerTestCase.setUp(self) # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests 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() # Add the broker to the RouterPB yield self.pbRoot_f.addAmqpBroker(self.amqpBroker) # Setup smpp client manager pb yield self.clientManager_f.addAmqpBroker(self.amqpBroker) p = portal.Portal(JasminPBRealm(self.clientManager_f)) p.registerChecker(AllowAnonymousAccess()) jPBPortalRoot = JasminPBPortalRoot(p) self.CManagerServer = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.CManagerPort = self.CManagerServer.getHost().port # Start DLRThrower DLRThrowerConfigInstance = DLRThrowerConfig() self.DLRThrower = DLRThrower() self.DLRThrower.setConfig(DLRThrowerConfigInstance) yield self.DLRThrower.addAmqpBroker(self.amqpBroker) # Connect to redis server RedisForJasminConfigInstance = RedisForJasminConfig() self.redisClient = yield ConnectionWithConfiguration(RedisForJasminConfigInstance) # Authenticate and select db if RedisForJasminConfigInstance.password is not None: yield self.redisClient.auth(RedisForJasminConfigInstance.password) yield self.redisClient.select(RedisForJasminConfigInstance.dbid) # Connect CM with RC: self.clientManager_f.addRedisClient(self.redisClient) # Set a smpp client manager proxy instance self.SMPPClientManagerPBProxy = SMPPClientManagerPBProxy() @defer.inlineCallbacks def tearDown(self): yield HttpServerTestCase.tearDown(self) if self.SMPPClientManagerPBProxy.isConnected: yield self.SMPPClientManagerPBProxy.disconnect() yield self.CManagerServer.stopListening() yield self.amqpClient.disconnect() yield self.redisClient.disconnect()
class SMPPClientPBTestCase(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(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'.encode('ascii')).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(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() for q in self.amqpBroker.queues: yield self.amqpBroker.chan.queue_delete(queue=q) 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()
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.RouterPBConfigInstance) # Instanciate a SMPPClientManagerPB (a requirement for JCliFactory) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False self.clientManager_f = SMPPClientManagerPB(SMPPClientPBConfigInstance) yield self.clientManager_f.addAmqpBroker(self.amqpBroker) # Instanciate a SMPPServerFactory (a requirement for JCliFactory) SMPPServerConfigInstance = SMPPServerConfig() # Portal init _portal = portal.Portal( SmppsRealm(SMPPServerConfigInstance.id, self.RouterPB_f)) _portal.registerChecker(RouterAuthChecker(self.RouterPB_f)) self.SMPPSFactory = SMPPServerFactory( config=SMPPServerConfigInstance, auth_portal=_portal, RouterPB=self.RouterPB_f, SMPPClientManagerPB=self.clientManager_f) def tearDown(self): self.amqpClient.disconnect() self.RouterPB_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.RouterPBConfigInstance) # Instanciate a SMPPClientManagerPB (a requirement for JCliFactory) SMPPClientPBConfigInstance = SMPPClientPBConfig() SMPPClientPBConfigInstance.authentication = False self.clientManager_f = SMPPClientManagerPB(SMPPClientPBConfigInstance) yield self.clientManager_f.addAmqpBroker(self.amqpBroker) # Instanciate a SMPPServerFactory (a requirement for JCliFactory) SMPPServerConfigInstance = SMPPServerConfig() # Portal init _portal = portal.Portal(SmppsRealm(SMPPServerConfigInstance.id, self.RouterPB_f)) _portal.registerChecker(RouterAuthChecker(self.RouterPB_f)) self.SMPPSFactory = SMPPServerFactory( config=SMPPServerConfigInstance, auth_portal=_portal, RouterPB=self.RouterPB_f, SMPPClientManagerPB=self.clientManager_f) def tearDown(self): self.amqpClient.disconnect() self.RouterPB_f.cancelPersistenceTimer()
class SMPPClientManagerPBTestCase(HttpServerTestCase): @defer.inlineCallbacks def setUp(self): HttpServerTestCase.setUp(self) # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests 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() # Add the broker to the RouterPB yield self.pbRoot_f.addAmqpBroker(self.amqpBroker) # Setup smpp client manager pb yield self.clientManager_f.addAmqpBroker(self.amqpBroker) p = portal.Portal(JasminPBRealm(self.clientManager_f)) p.registerChecker(AllowAnonymousAccess()) jPBPortalRoot = JasminPBPortalRoot(p) self.CManagerServer = reactor.listenTCP( 0, pb.PBServerFactory(jPBPortalRoot)) self.CManagerPort = self.CManagerServer.getHost().port # Start DLRThrower DLRThrowerConfigInstance = DLRThrowerConfig() self.DLRThrower = DLRThrower() self.DLRThrower.setConfig(DLRThrowerConfigInstance) yield self.DLRThrower.addAmqpBroker(self.amqpBroker) # Connect to redis server RedisForJasminConfigInstance = RedisForJasminConfig() self.redisClient = yield ConnectionWithConfiguration( RedisForJasminConfigInstance) # Authenticate and select db if RedisForJasminConfigInstance.password is not None: yield self.redisClient.auth(RedisForJasminConfigInstance.password) yield self.redisClient.select(RedisForJasminConfigInstance.dbid) # Connect CM with RC: self.clientManager_f.addRedisClient(self.redisClient) # Set a smpp client manager proxy instance self.SMPPClientManagerPBProxy = SMPPClientManagerPBProxy() @defer.inlineCallbacks def tearDown(self): yield HttpServerTestCase.tearDown(self) if self.SMPPClientManagerPBProxy.isConnected: yield self.SMPPClientManagerPBProxy.disconnect() yield self.CManagerServer.stopListening() yield self.amqpClient.disconnect() yield self.redisClient.disconnect()