* added webtest.ext - allow to use casperjs
* fix `#42 <https://bitbucket.org/ianb/webtest/issue/42>`_ Check uppercase
* fix `#36 <https://bitbucket.org/ianb/webtest/issue/36>`_ Radio can use forced
* fix `#24 <https://bitbucket.org/ianb/webtest/issue/24>`_ Include test
* fix bug when trying to print a response which contain some unicode chars
* fix `#39 <https://bitbucket.org/ianb/webtest/issue/39>`_ Add PATCH to
* fix `#33 <https://bitbucket.org/ianb/webtest/issue/33>`_ Remove
CaptureStdout. Do nothing and break pdb
* use OrderedDict to store fields in form. See
* fix `#38 <https://bitbucket.org/ianb/webtest/issue/38>`_ Allow to post falsey
* fix `#37 <https://bitbucket.org/ianb/webtest/issue/37>`_ Allow
Content-Length: 0 without Content-Type
* `fix #30 <https://bitbucket.org/ianb/webtest/issue/30>`_ bad link to pyquery
* Never catch NameError during iteration
* added ``post_json``, ``put_json``, ``delete_json``
* fix `#25 <https://bitbucket.org/ianb/webtest/issue/25>`_ params dictionary of
webtest.AppTest.post() does not support unicode values
* improve showbrowser. fixed `#23 <https://bitbucket.org/ianb/webtest/issue/23>`_
* print_stderr fail with unicode string on python2
* Added .option() `#20 <https://bitbucket.org/ianb/webtest/issue/20>`_
* Fix #21
* Full python3 compat
* Moved TestApp to app.py
* Added selenium testing framework. See :mod:`~webtest.sel` module.
* Accept lists for ``app.post(url, params=[...])``
* Allow to use url that starts with the SCRIPT_NAME found in extra_environ
* Fix `#16 <https://bitbucket.org/ianb/webtest/issue/16>`_ Default
content-type is now correctly set to `application/octet-stream`
* Fix `#14 and #18 <https://bitbucket.org/ianb/webtest/issue/18>`_ Allow to use
* Fix `#12 <https://bitbucket.org/ianb/webtest/issue/12>`_
* Fix `#10
now `TestApp.extra_environ` doesn't take precedence over a WSGI
environment passed in through the request.
* Removed stray print
* Revert change to cookies that would add ``"`` around cookie values.
* Added property :meth:`webtest.Response.pyquery` which returns a
`PyQuery <http://pyquery.org/>`_ object.
* Set base_url on ``resp.lxml``
* Include tests and docs in tarball.
* Fix sending in webob.Request (or webtest.TestRequest) objects.
* Fix handling forms with file uploads, when no file is selected.
* Added ``extra_environ`` argument to :meth:`webtest.TestResponse.click`.
* Fixed/added wildcard statuses, like ``status="4*"``
* Fix file upload fields in forms: allow upload field to be empty.
* Added support for single-quoted html attributes.
* `TestResponse` now has unicode support. It is turned on by default
for all responses with charset information. **This is backward
incompatible change** if you rely (e.g. in doctests) on parsed
form fields or responses returned by `json` and `lxml` methods
being encoded strings when charset header is in response. In order
to switch to old behaviour pass `use_unicode=False` flag to
* Added method :meth:`TestApp.request`, which can be used for
sending requests with different methods (e.g., ``MKCOL``). This
method sends all its keyword arguments to
:meth:`webtest.TestRequest.blank` and then executes the request.
The parameters are somewhat different than other methods (like
:meth:`webtest.TestApp.get`), as they match WebOb's attribute
names exactly (the other methods were written before WebOb existed).
* Removed the copying of stdout to stderr during requests.
* Fix file upload fields in forms (`#340
<http://trac.pythonpaste.org/pythonpaste/ticket/340>`_) -- you could
upload files with :meth:`webtest.TestApp.post`, but if you use
``resp.form`` file upload fields would not work (from rcs-comp.com
and Matthew Desmarais).
* Fix form inputs; text inputs always default to the empty string, and
unselected radio inputs default to nothing at all. From Daniele
* Fix following links with fragments (these fragments should not be
sent to the WSGI application). From desmaj.
* Added ``force_value`` to select fields, like
``res.form['select'].force_value("new_value")``. This makes it
possible to simulate forms that are dynamically updated. From
* Fixed :meth:`webtest.Response.mustcontain` when you pass in a
* Changed the ``__str__`` of responses to make them more doctest
- All headers are displayed capitalized, like Content-Type
- Headers are sorted alphabetically
* Changed ``__repr__`` to only show the body length if the complete
body is not shown (for short bodies the complete body is in the
* Note: **these are backward incompatible changes** if you are using
doctest (you'll have to update your doctests with the new format).
* Fixed exception in the ``.delete`` method.
* Added a ``content_type`` argument to ``app.post`` and ``app.put``,
which sets the ``Content-Type`` of the request. This is more
convenient when testing REST APIs.
* Skip links in ``<script>...</script>`` tags (since that's not real
* Don't submit unnamed form fields.
* Checkboxes with no explicit ``value`` send ``on`` (previously they
sent ``checked``, which isn't what browsers send).
* Support for ``<select multiple>`` fields (from Matthew Desmarais)
* Fix the ``TestApp`` validator's InputWrapper lacking support for
readline with an argument as needed by the cgi module.
* Keep URLs in-tact in cases such as
``app.get('http://www.python.org')`` (so HTTP_HOST=www.python.org,
* Fix ``lxml.html`` import, so lxml 2.0 users can get HTML lxml
objects from ``resp.lxml``
* Treat ``<input type="image">`` like a submit button.
* Use ``BaseCookie`` instead of ``SimpleCookie`` for storing cookies
(avoids quoting cookie values).
* Accept any ``params`` argument that has an ``items`` method (like