From 6cb0855e2dd181df5353fc1be9b437c7bc92eb2f Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Fri, 28 May 2010 21:06:39 +0200 Subject: [PATCH] Fixed an error reporting bug with flask.Config.from_envvar --- CHANGES | 7 +++++++ flask.py | 3 ++- tests/flask_tests.py | 20 ++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index d01577cc..451ec9af 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,13 @@ Version 0.4 Release date to be announced, codename to be selected. +Version 0.3.1 +------------- + +Bugfix release, released May 28th + +- fixed a error reporting bug with :meth:`flask.Config.from_envvar` + Version 0.3 ----------- diff --git a/flask.py b/flask.py index 5e3367bb..a8e06bd3 100644 --- a/flask.py +++ b/flask.py @@ -698,7 +698,8 @@ class Config(dict): raise RuntimeError('The environment variable %r is not set ' 'and as such configuration could not be ' 'loaded. Set this variable and make it ' - 'point to a configuration file') + 'point to a configuration file' % + variable_name) self.from_pyfile(rv) return True diff --git a/tests/flask_tests.py b/tests/flask_tests.py index 3673453a..ff95364f 100644 --- a/tests/flask_tests.py +++ b/tests/flask_tests.py @@ -717,6 +717,26 @@ class ConfigTestCase(unittest.TestCase): app.config.from_object(Test) self.common_object_test(app) + def test_config_from_envvar(self): + import os + env = os.environ + try: + os.environ = {} + app = flask.Flask(__name__) + try: + app.config.from_envvar('FOO_SETTINGS') + except RuntimeError, e: + assert "'FOO_SETTINGS' is not set" in str(e) + else: + assert 0, 'expected exception' + not app.config.from_envvar('FOO_SETTINGS', silent=True) + + os.environ = {'FOO_SETTINGS': 'flask_tests.py'} + assert app.config.from_envvar('FOO_SETTINGS') + self.common_object_test(app) + finally: + os.environ = env + def suite(): from minitwit_tests import MiniTwitTestCase