def assert_environ_produces_modified_pcsd_env( self, environ=None, specific_env_values=None, errors=None, warnings=None ): pcsd_dir = partial(join_path, settings.pcsd_exec_location) default_env_values = { env.PCSD_PORT: settings.pcsd_default_port, env.PCSD_SSL_CIPHERS: settings.default_ssl_ciphers, env.PCSD_SSL_OPTIONS: env.str_to_ssl_options( settings.default_ssl_options, [] ), env.PCSD_BIND_ADDR: {None}, env.NOTIFY_SOCKET: None, env.PCSD_DEBUG: False, env.PCSD_DISABLE_GUI: False, env.PCSD_SESSION_LIFETIME: settings.gui_session_lifetime_seconds, env.GEM_HOME: pcsd_dir(settings.pcsd_gem_path), env.PCSD_CMDLINE_ENTRY: pcsd_dir(env.PCSD_CMDLINE_ENTRY_RB_SCRIPT), env.PCSD_STATIC_FILES_DIR: pcsd_dir(env.PCSD_STATIC_FILES_DIR_NAME), env.HTTPS_PROXY: None, env.NO_PROXY: None, env.PCSD_DEV: False, "has_errors": False, } if specific_env_values is None: specific_env_values = {} # compare as dict because of clearer error report self.assertEqual( dict(env.prepare_env(environ or {}, self.logger)._asdict()), {**default_env_values, **specific_env_values} ) self.assertEqual(self.logger.errors, errors or []) self.assertEqual(self.logger.warnings, warnings or [])