From fe9c590bca0b4b34073f492450b0cf063d6320e8 Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Sat, 10 Nov 2018 14:35:21 +0100 Subject: [PATCH] Rewrite config error messages to be more instructive. Change-Id: I56a34244d13615e79f7b727eee568eadbed403a6 --- ara/server/utils.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ara/server/utils.py b/ara/server/utils.py index 1603162..c1dc695 100644 --- a/ara/server/utils.py +++ b/ara/server/utils.py @@ -2,6 +2,7 @@ import os import environ from configobj import ConfigObj +from django.core.exceptions import ImproperlyConfigured from everett import ConfigurationError from everett.manager import ConfigEnvFileEnv, ConfigIniEnv, ConfigManager, ConfigOSEnv, listify @@ -73,3 +74,16 @@ class EverettEnviron(environ.Env): ] ).with_namespace("ara") ) + + def get_value(self, var, cast=None, default=environ.Env.NOTSET, parse_default=False): + try: + return super().get_value(var, cast, default, parse_default) + except ImproperlyConfigured as e: + # Rewrite the django-environ exception to match our configs better + if default is self.NOTSET and str(e) == "Set the {0} environment variable".format(var): + error_msg = ( + "Set the ARA_{0} environment variable or set {1} in the [ara] section " + "of your configuration file." + ).format(var, var.lower()) + raise ImproperlyConfigured(error_msg) + raise