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
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)