def test_djdt_382(tmpdir): sys.path.insert(0, str(tmpdir)) settings_file = tmpdir.join("settings.py") settings_file.write("SECRET_KEY = 'dasfadfds'") tmpdir.join("__init__.py").write("") os.environ["DJANGO_SETTINGS_MODULE"] = str("settings") settings = dynaconf.DjangoDynaconf(__name__, environments=True) settings.configure(settings_module=__file__) assert settings.is_overridden("FOO") is False
def test_djdt_382(tmpdir): settings_file = tmpdir.join("settings.py") settings_file.write("\n".join(["SECRET_KEY = 'dasfadfds2'"])) tmpdir.join("__init__.py").write("") os.environ["DJANGO_SETTINGS_MODULE"] = "settings" sys.path.append(str(tmpdir)) __import__("settings") settings = dynaconf.DjangoDynaconf("settings", environments=True) settings.configure(settings_module="settings") assert settings.SECRET_KEY == "dasfadfds2" assert settings.is_overridden("FOO") is False
def test_override_settings_596(tmpdir): settings_file = tmpdir.join("other_settings.py") settings_file.write("\n".join(["SECRET_KEY = 'abcdef'"])) tmpdir.join("__init__.py").write("") os.environ["DJANGO_SETTINGS_MODULE"] = "other_settings" sys.path.append(str(tmpdir)) __import__("other_settings") settings = dynaconf.DjangoDynaconf("other_settings", environments=True) settings.configure(settings_module="other_settings") assert settings.SECRET_KEY == "abcdef" # mimic what django.test.utils.override_settings does class UserSettingsHolder(dynaconf.LazySettings): _django_override = True override = UserSettingsHolder(settings._wrapped) override.SECRET_KEY = "foobar" # overriden settings is changed assert override.SECRET_KEY == "foobar" # original not changed assert settings.SECRET_KEY == "abcdef"
ANOTHER_DEBUG = True DEBUG = True sys.path.append(".") # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://www.dynaconf.com/django/ import dynaconf # noqa settings = dynaconf.DjangoDynaconf( __name__, PRELOAD_FOR_DYNACONF=[ "../settings.yaml", "../.secrets.yaml", "foo.a_plugin_folder.settings", ], ENVVAR_FOR_DYNACONF="PULP_SETTINGS", ) # noqa # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) # test assert settings.SERVER == "prodserver.com" # assert settings.STATIC_URL == "/changed/in/settings.toml/by/dynaconf/" assert settings.USERNAME == "admin_user_from_env" assert settings.PASSWORD == "My5up3r53c4et" assert settings.get("PASSWORD") == "My5up3r53c4et" assert settings.FOO == "It overrides every other env" assert settings.TEST_VALUE == "a"
'DEFAULT_AUTO_SCHEMA_CLASS': 'pulpcore.app.openapigenerator.PulpAutoSchema', 'DEFAULT_INFO': 'pulpcore.app.urls.api_info', } # have the docs url show field descriptions with html REDOC_SETTINGS = { 'SPEC_URL': '/pulp/api/v3/docs/?format=openapi&include_html=1', } # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://dynaconf.readthedocs.io/en/latest/guides/django.html import dynaconf # noqa settings = dynaconf.DjangoDynaconf( __name__, GLOBAL_ENV_FOR_DYNACONF='PULP', ENV_SWITCHER_FOR_DYNACONF='PULP_ENV', PRELOAD_FOR_DYNACONF=[ '{}.app.settings'.format(plugin_name) for plugin_name in INSTALLED_PULP_PLUGINS ], ENVVAR_FOR_DYNACONF='PULP_SETTINGS', ) # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) try: CONTENT_ORIGIN except NameError: raise ImproperlyConfigured( _('You must specify the CONTENT_ORIGIN setting.'))
import os # Where is all the Django's settings? # Take a look at ../settings.yaml and ../.secrets.yaml # Dynaconf supports multiple formats that files can be toml, ini, json, py # Files are also optional, dynaconf can read from envvars, Redis or Vault. # Build paths inside the project like this: os.path.join(settings.BASE_DIR, ..) # Or use the dynaconf helper `settings.path_for('filename')` BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = "/etc/foo" # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://dynaconf.readthedocs.io/en/latest/guides/django.html import dynaconf # noqa settings = dynaconf.DjangoDynaconf(__name__) # noqa # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) # test assert settings.SERVER == "prodserver.com" assert settings.STATIC_URL == "/changed/in/settings.toml/by/dynaconf/" assert settings.USERNAME == "admin_user_from_env" assert settings.PASSWORD == "My5up3r53c4et" assert settings.get("PASSWORD") == "My5up3r53c4et" assert settings.FOO == "It overrides every other env"
USE_TZ = True # https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = "/static/" STATIC_ROOT = "static" STATICFILES_FINDERS = [ "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", ] # # HERE STARTS DYNACONF EXTENSION LOAD # import dynaconf # noqa from dynaconf import Validator # noqa settings = dynaconf.DjangoDynaconf( __name__, settings_files=["settings.yaml"], env_switcher="DJANGO_ENVIRONMENT", load_dotenv=True, validators=[ Validator("ENVIRONMENT", "TESTING", "FOO", must_exist=True), ], ) # noqa # # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) #
# What kinds of checksums is this pulp-instance _allowed to use_ ? # NOTE : "sha256"" IS REQUIRED - Pulp will fail to start if it is not found in this set # NOTE: specifying checksums that are not listed under ALL_KNOWN_CONTENT_CHECKSUMS will fail # at startup ALLOWED_CONTENT_CHECKSUMS = ["sha224", "sha256", "sha384", "sha512"] # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://dynaconf.readthedocs.io/en/latest/guides/django.html import dynaconf # noqa settings = dynaconf.DjangoDynaconf( __name__, GLOBAL_ENV_FOR_DYNACONF="PULP", ENV_SWITCHER_FOR_DYNACONF="PULP_ENV", PRELOAD_FOR_DYNACONF=[ "{}.app.settings".format(plugin_name) for plugin_name in INSTALLED_PULP_PLUGINS ], ENVVAR_FOR_DYNACONF="PULP_SETTINGS", load_dotenv=False, ) # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) _logger = getLogger(__name__) try: CONTENT_ORIGIN except NameError: raise ImproperlyConfigured( _( "CONTENT_ORIGIN is a required setting but it was not configured. This may be caused " "by invalid read permissions of the settings file. Note that CONTENT_ORIGIN is set by "
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = "/etc/foo" # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://www.dynaconf.com/django/ import dynaconf # noqa settings_location = os.path.join(BASE_DIR, "config/settings.yaml,config/.secrets.yaml") settings = dynaconf.DjangoDynaconf( __name__, ENVIRONMENTS_FOR_DYNACONF=True, GLOBAL_ENV_FOR_DYNACONF="MYWEBAPP", ENV_SWITCHER_FOR_DYNACONF="MYWEBAPP_ENV", SETTINGS_MODULE_FOR_DYNACONF=settings_location, INCLUDES_FOR_DYNACONF=[os.path.join(BASE_DIR, "includes/*")], ENVVAR_FOR_DYNACONF="MYWEBAPP_SETTINGS", ) # noqa # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) # test assert (settings.ENVVAR_PREFIX_FOR_DYNACONF == "MYWEBAPP" ), settings.ENVVAR_PREFIX_FOR_DYNACONF assert settings.GLOBAL_ENV_FOR_DYNACONF == "MYWEBAPP" assert settings.PLUGIN_ENABLED is True assert settings.PLUGIN_LIST == ["plugin1", "plugin2"] assert settings.SERVER == "prodserver.com" assert settings.STATIC_URL == "/changed/in/settings.toml/by/dynaconf/"
} CONTENT_HOST = '' CONTENT_PATH_PREFIX = '/pulp/content/' CONTENT_APP_TTL = 30 REMOTE_USER_ENVIRON_NAME = "REMOTE_USER" PROFILE_STAGES_API = False SWAGGER_SETTINGS = { 'DEFAULT_GENERATOR_CLASS': 'pulpcore.app.openapigenerator.PulpOpenAPISchemaGenerator', 'DEFAULT_AUTO_SCHEMA_CLASS': 'pulpcore.app.openapigenerator.PulpAutoSchema', 'DEFAULT_INFO': 'pulpcore.app.urls.api_info', } # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://dynaconf.readthedocs.io/en/latest/guides/django.html import dynaconf # noqa settings = dynaconf.DjangoDynaconf( __name__, GLOBAL_ENV_FOR_DYNACONF='PULP', ENV_SWITCHER_FOR_DYNACONF='PULP_ENV', SETTINGS_MODULE_FOR_DYNACONF='/etc/pulp/settings.py', INCLUDES_FOR_DYNACONF=['/etc/pulp/plugins/*'], ENVVAR_FOR_DYNACONF='PULP_SETTINGS', ) # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line)
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_URL = "/static/" settings = dynaconf.DjangoDynaconf( __name__, ENVVAR_PREFIX_FOR_DYNACONF='BILLCALLS', ENV_SWITCHER_FOR_DYNACONF='BILLCALLS_ENV', ENVVAR_FOR_DYNACONF='BILLCALLS_SETTINGS', ) if settings.ENV != 'development': DATABASES['default'] = dj_database_url.config(conn_max_age=600)
# https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = 'static' # https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-STATICFILES_FINDERS STATICFILES_FINDERS = [ 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ] # # HERE STARTS DYNACONF EXTENSION LOAD # import dynaconf # noqa from dynaconf import Validator # noqa # # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line) # settings = dynaconf.DjangoDynaconf(__name__, settings_files=['settings.yaml'], env_switcher='DJANGO_ENVIRONMENT', load_dotenv=True, validators=[ Validator('ENVIRONMENT', 'TESTING', 'FOO', must_exist=True), ]) # noqa
# Read more at https://dynaconf.readthedocs.io/en/latest/guides/django.html settings = dynaconf.DjangoDynaconf( __name__, core_loaders=['YAML', 'PY'], load_dotenv=True, dotenv_verbose=True, environments=True, merge_enabled=True, root_path=Path(r'.'), settings_files=[ Path('settings.yaml'), Path('.secrets.yaml'), Path('drf_folder/drf_settings.yaml'), Path('djoser_folder/djoser_settings.yaml'), Path('simple_jwt_folder/settings.py'), ], validators=[ # Databases password and user must exists *[ dynaconf.Validator(f'DATABASES.{database}.USER', must_exist=True) & dynaconf.Validator(f'DATABASES.{database}.PASSWORD', must_exist=True) for database in dynaconf.settings.DATABASES ], # REDIS password must exists *[ dynaconf.Validator(f'CACHES.{cache}.OPTIONS.PASSWORD', must_exist=True) for cache in dynaconf.settings.CACHES ], ]) # noqa # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line)
LOGIN_URL = 'two_factor:login' LOGIN_REDIRECT_URL = 'two_factor:profile' # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py) # Read more at https://dynaconf.readthedocs.io/en/latest/guides/django.html # and watch https://www.youtube.com/watch?v=Ms2kgfYZJ9M&t=2915s&ab_channel=CodeShow import dynaconf # noqa settings = dynaconf.DjangoDynaconf( __name__, CORE_LOADERS_FOR_DYNACONF=['YAML'], DOTENV_OVERRIDE_FOR_DYNACONF=False, #DOTENV_PATH= MERGE_ENABLED_FOR_DYNACONF=False, ENCODING_FOR_DYNACONF='utf-8', #ENV=development ENVVAR_PREFIX_FOR_DYNACONF='WATCHTOWER', ENV_SWITCHER_FOR_DYNACONF='WATCHTOWER_ENV', #PRELOAD_FOR_DYNACONF=["/path/*", "other/settings.toml"], # <-- Loaded first SETTINGS_FILE_FOR_DYNACONF= "settings.yaml", # <-- Loaded second (the main file) #INCLUDES_FOR_DYNACONF=["other.module.settings", "other/settings.yaml"] # <-- Loaded at the end SECRETS_FOR_DYNACONF='.secrets.yaml', SILENT_ERRORS_FOR_DYNACONF=False) # HEREENDS DYNACONF EXTENSION LOAD (No more code below this line) import logging.config logging.config.dictConfig(settings.LOGGING) logger = logging.getLogger('watchtower') logger.info('Using {} configuration'.format(settings.current_env))
# https://docs.djangoproject.com/en/2.2/ref/settings/#use-l10n USE_L10N = True # https://docs.djangoproject.com/en/2.2/ref/settings/#use-tz USE_TZ = True # MEDIA # ----------------------------------------------------------------------------- # URL that handles the media served from MEDIA_ROOT, used for managing stored # files. Read more at # https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-MEDIA_URL MEDIA_URL = '/media/' # DYNACONF # ----------------------------------------------------------------------------- # HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of base.py) # Read more at https://www.dynaconf.com/#using-django settings = dynaconf.DjangoDynaconf( __name__, ENVVAR_PREFIX_FOR_DYNACONF='DJANGO_REST_SIMPLEST', CORE_LOADERS=['TOML', 'PY'], ENV_SWITCHER_FOR_DYNACONF='DJANGO_REST_SIMPLEST_ENV', # Load this files in the order. SECRETS=['.secrets.toml'], settings_files=['development.toml', 'production.toml'], ) # noqa # HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line)