class RESTMainTestServer(object): def __init__(self, cfg, statedir, testName): self.server = RESTMain(cfg, statedir) self.testName = testName self.config = cfg self.port = cfg.main.port self.host = '127.0.0.1' self.serverUrl = "http://%s:%s/%s/" % (self.host, self.port, cfg.main.application) ## test authentication using fake filepermission self.test_authz_key = fake_authz_key_file(False) self.config.main.tools.cms_auth.key_file = self.test_authz_key.name #self.header = fake_authz_headers(test_authz_key.data, roles = {"Admin": {'group': ['ReqMgr']}}) self.jsonSender = JSONRequests(self.serverUrl) def getLastTest(self): global lastTest return lastTest def setLastTest(self): global lastTest lastTest = self.testName def start(self, blocking=True): self.server.validate_config() self.server.setup_server() self.server.install_application() cherrypy.config.update({'server.socket_port': self.port}) cherrypy.config.update({'server.socket_host': self.host}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) cherrypy.config.update({'server.thread_pool': 10}) cherrypy.config.update({'server.accepted_queue_size': -1}) cherrypy.config.update({'server.accepted_queue_timeout': 10}) for app in viewvalues(cherrypy.tree.apps): if '/' in app.config: app.config["/"]["request.show_tracebacks"] = True cherrypy.server.httpserver = None cherrypy.engine.start() if blocking: cherrypy.engine.block() def stop(self): """ Stop the server """ cherrypy.engine.exit() cherrypy.engine.stop() # Ensure the next server that's started gets fresh objects for name, server in viewitems(getattr(cherrypy, 'servers', {})): server.unsubscribe() del cherrypy.servers[name] self.test_authz_key.close() os.remove(self.test_authz_key.name)
class RESTMainTestServer(object): def __init__(self, cfg, statedir, testName): self.server = RESTMain(cfg, statedir) self.testName = testName self.config = cfg self.port = cfg.main.port self.host = '127.0.0.1' self.serverUrl = "http://%s:%s/%s/" % (self.host, self.port, cfg.main.application) ## test authentication using fake filepermission self.test_authz_key = fake_authz_key_file(False) self.config.main.tools.cms_auth.key_file = self.test_authz_key.name #self.header = fake_authz_headers(test_authz_key.data, roles = {"Admin": {'group': ['ReqMgr']}}) self.jsonSender = JSONRequests(self.serverUrl) def getLastTest(self): global lastTest return lastTest def setLastTest(self): global lastTest lastTest = self.testName def start(self, blocking = True): self.server.validate_config() self.server.setup_server() self.server.install_application() cherrypy.config.update({'server.socket_port': self.port}) cherrypy.config.update({'server.socket_host': self.host}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) for app in cherrypy.tree.apps.values(): if '/' in app.config: app.config["/"]["request.show_tracebacks"] = True cherrypy.server.httpserver = None cherrypy.engine.start() if blocking: cherrypy.engine.block() def stop(self): """ Stop the server """ cherrypy.engine.exit() cherrypy.engine.stop() # Ensure the next server that's started gets fresh objects for name, server in getattr(cherrypy, 'servers', {}).items(): server.unsubscribe() del cherrypy.servers[name] self.test_authz_key.close() os.remove(self.test_authz_key.name)
class RESTMainTestServer(object): def __init__(self, cfg, statedir, testName): self.server = RESTMain(cfg, statedir) self.testName = testName self.cofig = cfg self.port = cfg.main.port self.host = '127.0.0.1' self.serverUrl = "http://%s:%s/%s/" % (self.host, self.port, cfg.main.application) ## test permission #test_authz_key = fake_authz_key_file() #self.header = fake_authz_headers(test_authz_key.data, roles = {"Global Admin": {'group': ['global']}}) self.jsonSender = JSONRequests(self.serverUrl) def getLastTest(self): global lastTest return lastTest def setLastTest(self): global lastTest lastTest = self.testName def start(self, blocking = True): self.server.validate_config() self.server.setup_server() self.server.install_application() cherrypy.config.update({'server.socket_port': self.port}) cherrypy.config.update({'server.socket_host': self.host}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) for app in cherrypy.tree.apps.values(): app.config["/"]["request.show_tracebacks"] = True cherrypy.server.httpserver = None cherrypy.engine.start() if blocking: cherrypy.engine.block() def stop(self): """ Stop the server """ cherrypy.engine.exit() cherrypy.engine.stop() # Ensure the next server that's started gets fresh objects for name, server in getattr(cherrypy, 'servers', {}).items(): server.unsubscribe() del cherrypy.servers[name]
def setup_dummy_server(module_name, class_name, app_name=None, authz_key_file=None, port=8888): """Helper function to set up a :class:`~.RESTMain` server from given module and class. Creates a fake server configuration and instantiates the server application from it. :arg str module_name: module from which to import test class. :arg str class_type: name of the server test class. :arg str app_name: optional test application name, 'test' by default. :returns: tuple with the server object and authz hmac signing key.""" if authz_key_file: test_authz_key = authz_key_file else: test_authz_key = fake_authz_key_file() cfg = Configuration() main = cfg.section_('main') main.application = app_name or 'test' main.silent = True main.index = 'top' main.authz_defaults = {'role': None, 'group': None, 'site': None} main.section_('tools').section_('cms_auth').key_file = test_authz_key.name app = cfg.section_(app_name or 'test') app.admin = '*****@*****.**' app.description = app.title = 'Test' views = cfg.section_('views') top = views.section_('top') top.object = module_name + "." + class_name server = RESTMain(cfg, os.getcwd()) server.validate_config() server.setup_server() server.install_application() cherrypy.config.update({'server.socket_port': port}) cherrypy.config.update({'server.socket_host': '127.0.0.1'}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) for app in viewvalues(cherrypy.tree.apps): if '/' in app.config: app.config["/"]["request.show_tracebacks"] = True return server, test_authz_key
def setup_server(): """Create and set up an internal REST server for admin operations.""" global server, authz_key authz_key = fake_authz_key_file() cfg = Config(authkey = authz_key.name) delattr(cfg.views, 'ui') cfg.main.index = 'data' cfg.main.silent = True cfg.views.data.object = "SiteDB.Admin.AdminServer" cfg.views.data.db = "SiteDB.Admin.AUTH" server = RESTMain(cfg, os.getcwd()) server.validate_config() server.setup_server() server.install_application() cherrypy.config.update({'server.socket_port': 8888}) cherrypy.config.update({'server.socket_host': '127.0.0.1'}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) cherrypy.config.update({'log.screen': 'True'})
def setup_dummy_server(module_name, class_name, app_name=None, authz_key_file=None, port=8888): """Helper function to set up a :class:`~.RESTMain` server from given module and class. Creates a fake server configuration and instantiates the server application from it. :arg str module_name: module from which to import test class. :arg str class_type: name of the server test class. :arg str app_name: optional test application name, 'test' by default. :returns: tuple with the server object and authz hmac signing key.""" if authz_key_file: test_authz_key = authz_key_file else: test_authz_key = fake_authz_key_file() cfg = Configuration() main = cfg.section_("main") main.application = app_name or "test" main.silent = True main.index = "top" main.authz_defaults = {"role": None, "group": None, "site": None} main.section_("tools").section_("cms_auth").key_file = test_authz_key.name app = cfg.section_(app_name or "test") app.admin = "*****@*****.**" app.description = app.title = "Test" views = cfg.section_("views") top = views.section_("top") top.object = module_name + "." + class_name server = RESTMain(cfg, os.getcwd()) server.validate_config() server.setup_server() server.install_application() cherrypy.config.update({"server.socket_port": port}) cherrypy.config.update({"server.socket_host": "127.0.0.1"}) cherrypy.config.update({"request.show_tracebacks": True}) cherrypy.config.update({"environment": "test_suite"}) for app in cherrypy.tree.apps.values(): if "/" in app.config: app.config["/"]["request.show_tracebacks"] = True return server, test_authz_key
def setup_test_server(module_name, class_name, app_name = None, authz_key_file=None, port=8888): """Helper function to set up a :class:`~.RESTMain` server from given module and class. Creates a fake server configuration and instantiates the server application from it. :arg str module_name: module from which to import test class. :arg str class_type: name of the server test class. :arg str app_name: optional test application name, 'test' by default. :returns: tuple with the server object and authz hmac signing key.""" if authz_key_file: test_authz_key = authz_key_file else: test_authz_key = fake_authz_key_file() cfg = Configuration() main = cfg.section_('main') main.application = app_name or 'test' main.silent = True main.index = 'top' main.authz_defaults = { 'role': None, 'group': None, 'site': None } main.section_('tools').section_('cms_auth').key_file = test_authz_key.name app = cfg.section_(app_name or 'test') app.admin = '*****@*****.**' app.description = app.title = 'Test' views = cfg.section_('views') top = views.section_('top') top.object = module_name + "." + class_name server = RESTMain(cfg, os.getcwd()) server.validate_config() server.setup_server() server.install_application() cherrypy.config.update({'server.socket_port': port}) cherrypy.config.update({'server.socket_host': '127.0.0.1'}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) for app in cherrypy.tree.apps.values(): if '/' in app.config: app.config["/"]["request.show_tracebacks"] = True return server, test_authz_key
def setup_server(): """Create and set up an internal REST server for admin operations.""" global server, authz_key authz_key = fake_authz_key_file() cfg = Config(authkey=authz_key.name) delattr(cfg.views, 'ui') cfg.main.index = 'data' cfg.main.silent = True cfg.views.data.object = "SiteDB.Admin.AdminServer" cfg.views.data.db = "SiteDB.Admin.AUTH" server = RESTMain(cfg, os.getcwd()) server.validate_config() server.setup_server() server.install_application() cherrypy.config.update({'server.socket_port': 8888}) cherrypy.config.update({'server.socket_host': '127.0.0.1'}) cherrypy.config.update({'request.show_tracebacks': True}) cherrypy.config.update({'environment': 'test_suite'}) cherrypy.config.update({'log.screen': 'True'})