def configure(self, text): # We have to create a directory of our own since the existence # of the directory is checked. This handles this in a # platform-independent way. schema = self.schema text = text.replace("<<INSTANCE_HOME>>", TEMPNAME) text = text.replace("<<PRODUCTS>>", TEMPPRODUCTS) text = text.replace("<<PRODUCTS2>>", TEMPPRODUCTS2) sio = cStringIO.StringIO(text) conf, handler = ZConfig.loadConfigFile(schema, sio) from Zope2.Startup.handlers import handleConfig handleConfig(conf, handler) self.assertEqual(conf.instancehome, TEMPNAME) setConfiguration(conf)
def get_app(self, config_file=None): # given a config file, return a Zope application object if config_file is None: config_file = self.get_zope_conf() from Zope2.Startup import options, handlers import App.config import Zope2 opts = options.ZopeOptions() opts.configfile = config_file opts.realize(args=[], doc="", raise_getopt_errs=0) handlers.handleConfig(opts.configroot, opts.confighandlers) App.config.setConfiguration(opts.configroot) app = Zope2.app() return app
def make_wsgi_app(global_config, zope_conf): from App.config import setConfiguration from Zope2.Startup import get_starter from Zope2.Startup.handlers import handleConfig from Zope2.Startup.options import ZopeOptions from ZPublisher.WSGIPublisher import publish_module starter = get_starter() opts = ZopeOptions() opts.configfile = zope_conf opts.realize(args=(), progname='Zope2WSGI', raise_getopt_errs=False) handleConfig(opts.configroot, opts.confighandlers) setConfiguration(opts.configroot) starter.setConfiguration(opts.configroot) starter.prepare() return publish_module
def _setconfig(configfile=None): """ Configure a Zope instance based on ZopeOptions. Optionally accept a configfile argument (string path) in order to specify where the configuration file exists. """ from Zope2.Startup import options, handlers from App import config opts = options.ZopeOptions() if configfile: opts.configfile = configfile opts.realize(raise_getopt_errs=0) else: opts.realize() handlers.handleConfig(opts.configroot, opts.confighandlers) import App.config App.config.setConfiguration(opts.configroot) return opts
def configure_zope(config_filename, debug_mode=False): """Read zope.conf with zdaemon^Wzcrap. """ from Zope2.Startup import options, handlers import AccessControl del sys.argv[1:] opts = options.ZopeOptions() opts.configfile = config_filename opts.realize(raise_getopt_errs=0) handlers.handleConfig(opts.configroot, opts.confighandlers) AccessControl.setImplementation( opts.configroot.security_policy_implementation) AccessControl.setDefaultBehaviors( not opts.configroot.skip_ownership_checking, not opts.configroot.skip_authentication_checking, opts.configroot.verbose_security) App.config.setConfiguration(opts.configroot) set_zope_debug_mode(debug_mode)
def test_ms_public_header(self): import webdav from Zope2.Startup.handlers import handleConfig default_setting = webdav.enable_ms_public_header try: conf, handler = self.load_config_text("""\ instancehome <<INSTANCE_HOME>> enable-ms-public-header true """) handleConfig(None, handler) self.assert_(webdav.enable_ms_public_header == True) conf, handler = self.load_config_text("""\ instancehome <<INSTANCE_HOME>> enable-ms-public-header false """) handleConfig(None, handler) self.assert_(webdav.enable_ms_public_header == False) finally: webdav.enable_ms_public_header = default_setting