def setUp(self, authentication=False): "This will launch InterceptorPB and provide a client connected to it." # Launch a client in a disconnected state # it will be connected on demand through the self.ipb_connect() method self.ipb_client = InterceptorPBProxy() yield ProvisionWithoutInterceptorPB.setUp(self) # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests InterceptorPBConfigInstance = InterceptorPBConfig() # Launch the interceptor server pbInterceptor_factory = InterceptorPB(InterceptorPBConfigInstance) # Configure portal p = portal.Portal(JasminPBRealm(pbInterceptor_factory)) 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.pbInterceptor_server = reactor.listenTCP( 0, pb.PBServerFactory(jPBPortalRoot)) self.pbInterceptor_port = self.pbInterceptor_server.getHost().port
class ProvisionInterceptorPB(ProvisionWithoutInterceptorPB): @defer.inlineCallbacks def setUp(self, authentication = False): "This will launch InterceptorPB and provide a client connected to it." # Launch a client in a disconnected state # it will be connected on demand through the self.ipb_connect() method self.ipb_client = InterceptorPBProxy() yield ProvisionWithoutInterceptorPB.setUp(self) # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests InterceptorPBConfigInstance = InterceptorPBConfig() # Launch the interceptor server pbInterceptor_factory = InterceptorPB() pbInterceptor_factory.setConfig(InterceptorPBConfigInstance) # Configure portal p = portal.Portal(JasminPBRealm(pbInterceptor_factory)) if not authentication: p.registerChecker(AllowAnonymousAccess()) else: c = InMemoryUsernamePasswordDatabaseDontUse() c.addUser('test_user', md5('test_password').digest()) p.registerChecker(c) jPBPortalRoot = JasminPBPortalRoot(p) self.pbInterceptor_server = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.pbInterceptor_port = self.pbInterceptor_server.getHost().port @defer.inlineCallbacks def ipb_connect(self, config = None): if config is None: # Default test config (username is None for anonymous connection) config = InterceptorPBClientConfig() config.username = None config.port = self.pbInterceptor_port if config.username is not None: yield self.ipb_client.connect( config.host, config.port, config.username, config.password ) else: yield self.ipb_client.connect( config.host, config.port ) @defer.inlineCallbacks def tearDown(self): yield ProvisionWithoutInterceptorPB.tearDown(self) # Disconnect ipb and shutdown pbInterceptor_server if self.ipb_client.isConnected: self.ipb_client.disconnect() yield self.pbInterceptor_server.stopListening()
def setUp(self, authentication=False): "This will launch InterceptorPB and provide a client connected to it." # Launch a client in a disconnected state # it will be connected on demand through the self.ipb_connect() method self.ipb_client = InterceptorPBProxy() yield ProvisionWithoutInterceptorPB.setUp(self) # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests InterceptorPBConfigInstance = InterceptorPBConfig() # Launch the interceptor server pbInterceptor_factory = InterceptorPB() pbInterceptor_factory.setConfig(InterceptorPBConfigInstance) # Configure portal p = portal.Portal(JasminPBRealm(pbInterceptor_factory)) if not authentication: p.registerChecker(AllowAnonymousAccess()) else: c = InMemoryUsernamePasswordDatabaseDontUse() c.addUser("test_user", md5("test_password").digest()) p.registerChecker(c) jPBPortalRoot = JasminPBPortalRoot(p) self.pbInterceptor_server = reactor.listenTCP(0, pb.PBServerFactory(jPBPortalRoot)) self.pbInterceptor_port = self.pbInterceptor_server.getHost().port
def startInterceptorPBClient(self): "Start Interceptor client" InterceptorPBClientConfigInstance = InterceptorPBClientConfig( self.options['config']) self.components['interceptor-pb-client'] = InterceptorPBProxy() return self.components['interceptor-pb-client'].connect( InterceptorPBClientConfigInstance.host, InterceptorPBClientConfigInstance.port, InterceptorPBClientConfigInstance.username, InterceptorPBClientConfigInstance.password, retry=True)