def setup_config(config): app_abspath = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) app_config = Config(app_abspath) app_config.from_object("superdesk.default_settings") cwd = Path.cwd() for p in [cwd] + list(cwd.parents): settings = p / "settings.py" if settings.is_file(): logger.info(f"using local settings from {settings}") app_config.from_pyfile(settings) break else: logger.warning("Can't find local settings") update_config(app_config) app_config.setdefault("INSTALLED_APPS", []) # Extend the INSTALLED APPS with the list provided if config: config.setdefault("INSTALLED_APPS", []) app_config["INSTALLED_APPS"].extend(config.pop("INSTALLED_APPS", [])) # Make sure there are no duplicate entries in INSTALLED_APPS app_config["INSTALLED_APPS"] = list(set(app_config["INSTALLED_APPS"])) app_config.update( config or {}, **{ "APP_ABSPATH": app_abspath, "DEBUG": True, "TESTING": True, }, ) logging.getLogger("apps").setLevel(logging.WARNING) logging.getLogger("elastic").setLevel(logging.WARNING) # elastic datalayer logging.getLogger("urllib3").setLevel(logging.WARNING) logging.getLogger("celery").setLevel(logging.WARNING) logging.getLogger("superdesk").setLevel(logging.ERROR) logging.getLogger("elasticsearch").setLevel(logging.ERROR) logging.getLogger("superdesk.errors").setLevel(logging.CRITICAL) return {key: deepcopy(val) for key, val in app_config.items()}