Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Xion/flask into Xion-master
Browse files Browse the repository at this point in the history
Conflicts:
	flask/testsuite/config.py
  • Loading branch information
DasIch committed Feb 20, 2014
2 parents 9741129 + ec5b182 commit 66e51d5
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 1 deletion.
11 changes: 10 additions & 1 deletion flask/app.py
Expand Up @@ -175,6 +175,15 @@ def _set_request_globals_class(self, value):
_set_request_globals_class)
del _get_request_globals_class, _set_request_globals_class

#: The class that is used for the ``config`` attribute of this app.
#: Defaults to :class:`~flask.Config`.
#:
#: Example use cases for a custom class:
#:
#: 1. Default values for certain config options.
#: 2. Access to config values through attributes in addition to keys.
config_class = Config

#: The debug flag. Set this to `True` to enable debugging of the
#: application. In debug mode the debugger will kick in when an unhandled
#: exception occurs and the integrated server will automatically reload
Expand Down Expand Up @@ -610,7 +619,7 @@ def make_config(self, instance_relative=False):
root_path = self.root_path
if instance_relative:
root_path = self.instance_path
return Config(root_path, self.default_config)
return self.config_class(root_path, self.default_config)

def auto_find_instance_path(self):
"""Tries to locate the instance path if it was not provided to the
Expand Down
3 changes: 3 additions & 0 deletions flask/testsuite/__init__.py
Expand Up @@ -157,6 +157,9 @@ def assert_in(self, x, y):
def assert_not_in(self, x, y):
self.assertNotIn(x, y)

def assert_isinstance(self, obj, cls):
self.assertIsInstance(obj, cls)

if sys.version_info[:2] == (2, 6):
def assertIn(self, x, y):
assert x in y, "%r unexpectedly not in %r" % (x, y)
Expand Down
10 changes: 10 additions & 0 deletions flask/testsuite/config.py
Expand Up @@ -119,6 +119,16 @@ def test_config_missing_json(self):
self.assert_true(0, 'expected config')
self.assert_false(app.config.from_json('missing.json', silent=True))

def test_custom_config_class(self):
class Config(flask.Config):
pass
class Flask(flask.Flask):
config_class = Config
app = Flask(__name__)
self.assert_isinstance(app.config, Config)
app.config.from_object(__name__)
self.common_object_test(app)

def test_session_lifetime(self):
app = flask.Flask(__name__)
app.config['PERMANENT_SESSION_LIFETIME'] = 42
Expand Down

0 comments on commit 66e51d5

Please sign in to comment.