Browse Source

Merge branch 'test-client-kwargs'

Fix #992
pull/992/merge
Markus Unterwaditzer 10 years ago
parent
commit
050a659c2f
  1. 3
      CHANGES
  2. 22
      flask/app.py

3
CHANGES

@ -8,6 +8,9 @@ Version 1.0
(release date to be announced, codename to be selected) (release date to be announced, codename to be selected)
- Added `**kwargs` to :meth:`flask.Test.test_client` to support passing
additional keyword arguments to the constructor of
:attr:`flask.Flask.test_client_class`.
- Added ``SESSION_REFRESH_EACH_REQUEST`` config key that controls the - Added ``SESSION_REFRESH_EACH_REQUEST`` config key that controls the
set-cookie behavior. If set to `True` a permanent session will be set-cookie behavior. If set to `True` a permanent session will be
refreshed each request and get their lifetime extended, if set to refreshed each request and get their lifetime extended, if set to

22
flask/app.py

@ -821,7 +821,7 @@ class Flask(_PackageBoundObject):
# without reloader and that stuff from an interactive shell. # without reloader and that stuff from an interactive shell.
self._got_first_request = False self._got_first_request = False
def test_client(self, use_cookies=True): def test_client(self, use_cookies=True, **kwargs):
"""Creates a test client for this application. For information """Creates a test client for this application. For information
about unit testing head over to :ref:`testing`. about unit testing head over to :ref:`testing`.
@ -844,6 +844,20 @@ class Flask(_PackageBoundObject):
rv = c.get('/?vodka=42') rv = c.get('/?vodka=42')
assert request.args['vodka'] == '42' assert request.args['vodka'] == '42'
Additionally, you may pass optional keyword arguments that will then
be passed to the application's :attr:`test_client_class` constructor.
For example::
from flask.testing import FlaskClient
class CustomClient(FlaskClient):
def __init__(self, authentication=None, *args, **kwargs):
FlaskClient.__init__(*args, **kwargs)
self._authentication = authentication
app.test_client_class = CustomClient
client = app.test_client(authentication='Basic ....')
See :class:`~flask.testing.FlaskClient` for more information. See :class:`~flask.testing.FlaskClient` for more information.
.. versionchanged:: 0.4 .. versionchanged:: 0.4
@ -853,11 +867,15 @@ class Flask(_PackageBoundObject):
The `use_cookies` parameter was added as well as the ability The `use_cookies` parameter was added as well as the ability
to override the client to be used by setting the to override the client to be used by setting the
:attr:`test_client_class` attribute. :attr:`test_client_class` attribute.
.. versionchanged:: 1.0
Added `**kwargs` to support passing additional keyword arguments to
the constructor of :attr:`test_client_class`.
""" """
cls = self.test_client_class cls = self.test_client_class
if cls is None: if cls is None:
from flask.testing import FlaskClient as cls from flask.testing import FlaskClient as cls
return cls(self, self.response_class, use_cookies=use_cookies) return cls(self, self.response_class, use_cookies=use_cookies, **kwargs)
def open_session(self, request): def open_session(self, request):
"""Creates or opens a new session. Default implementation stores all """Creates or opens a new session. Default implementation stores all

Loading…
Cancel
Save