blob: 30fa29e636b7fde2ffac68cf2bba67fc0bd0301e [file] [log] [blame]
News
====
2.0.28 (unreleased)
-------------------
- Bugfix: Allow to set an int value to form fields when enctype is multipart
- Fixed #146: Improve fields value checking when enctype is multipart
2.0.27 (2017-03-15)
-------------------
- Bugfix: Allow to use set_cookie when HTTP_HOST is set
- Fix #177: resp.json now always decode body as utf8
2.0.26 (2017-03-05)
-------------------
- Added JWT auth support
- Always show response body when response status is invalid
2.0.25 (2017-02-05)
-------------------
- Fix #173: Do not omit file uploads without a file from post.
[Michael Howitz]
2.0.24 (2016-12-16)
-------------------
- Drop python 2.6 support. Newer versions may still work if you use waitress < 1.0
- Remove bs4 warnings
- Docs improvments
- Tets are WebOb 1.7.x compatible
2.0.23 (2016-07-21)
-------------------
- Create universal wheels.
2.0.22 (2016-07-21)
-------------------
- Fix #160: Do not guess encoding if response's charset is set.
2.0.21 (2016-04-12)
-------------------
- PR #154 Allow Bearer auth
- PR #147,#148 Take care of REFERER when using form.submit(), .click() and
.clickbutton()
- PR #145 Allow to override content-type when using json methods
2.0.20 (2015-11-03)
-------------------
- nothing new release. just try to make wheel available on pypi
2.0.19 (2015-11-01)
-------------------
- fixed #131 prevent passing HTML parameters that conflict with Field kwargs
- fixed #135 Document that WSGIProxy2 is required for "using webtest with a real url"
- fixed #136 reset values of select multiple
- drop py32 support (still work but test dependencies fail)
2.0.18 (2015-02-05)
-------------------
- Avoid deprecation warning with py3.4
2.0.17 (2014-12-20)
-------------------
- Properly check for default cookiejar arguments
[Julian Berman]
- Avoid raising encoding errors from debugapp (needed to use with WSGIProxy2)
[Laurence Rowe]
2.0.16 (2014-09-19)
-------------------
- Fixed #110. Forced values for Radio inputs are no longer ignored by value
property on get.
[bayprogrammer]
- Added method TestApp.set_parser_features to change the parser_features used
by BeautifulSoup.
[tomasmoreyra]
- Added app.set_cookie
[luhn]
2.0.15 (2014-04-17)
-------------------
- Fixed #73. Python < 2.6.5 does not support unicode as keyword arguments names.
[Stepan Kolesnik]
- Fixed #84 Application cookies for localhost are no longer ignored
[gawel]
- Fixed #89 remove WSGIWarning: You are not supposed to send a body in a DELETE
request because we now have a good reason for that. See http://bit.ly/1tb3yxW
[gawel]
- Fixed #92 You can now override TestApp.JSONEncoder to use a custom encoder
[gawel]
- Fixed #93 Support basic authentication
[gawel]
- Fixed #103 Broken "Edit me on GitHub" links in documentation
[gawel]
- Fixed #106 Make wrapping the app in the lint middleware optional
[dmlayton]
- Fixed #107 Explicit error message when WSGIProxy2 is not installer
[gawel]
- Fixed #108 cgi.parse_qsl is pending deprecation
[gawel]
2.0.14 (2014-01-23)
-------------------
- Allow `.select()` on <select>s and <select multiple>s.
[Markus Bertheau]
2.0.13 (2014-01-23)
-------------------
- Allow selecting <select> options by text
[Markus Bertheau]
2.0.12 (2014-01-17)
-------------------
- Ignore the `value` attribute of file inputs
[Markus Bertheau]
- Allow selecting the form submit button by its value
[Markus Bertheau]
2.0.11 (2013-12-29)
-------------------
- Depend on `unittest2` only for Python versions lower than 2.7
[iElectric]
- Add an optional parameter to `TestApp`, allowing the user to specify the
parser used by BeautifulSoup
[lyndsysimon]
2.0.10 (2013-11-14)
-------------------
- Make StopableWSGIServer thread daemonic
[lrowe]
2.0.9 (2013-09-18)
------------------
- Make sure Upload.content_type is not ignored
https://github.com/Pylons/webtest/pull/88
[Marius Gedminas]
2.0.8 (2013-09-17)
------------------
- Allow checking/unchecking a set of same-named checkboxes by assigning a list of values.
[carljm]
- fix "AttributeError: 'InputWrapper' object has no attribute 'seek'"
[iElectric]
- Added `xhr=True` parameter to `TestApp.get`, `TestApp.post`, `TestApp.head`, `TestApp.delete`
[kharandziuk]
- Remove old (and broken?) casperjs/selenium backward compat imports. Fix
https://github.com/gawel/webtest-selenium/issues/9
[gawel]
- Allow optionally specifying the MIME type of an uploaded form file. Fixes #86
[Marius Gedminas]
2.0.7 (2013-08-07)
------------------
- Detect JSON if mimetype ends with +json, such as application/vnd.webtest+json
[homm]
- Fixed #72. Use WSGIServer new api even if there waitress has backward compat.
[gawel]
- Fixed #50. Corrected default value for the delete params argument.
[noonat]
- Be sure to decode the content if it is gziped before returning it
[Alexis Métaireau]
2.0.6 (2013-05-23)
------------------
- fixed #64. cookiejar api has changed in python3.3 [gawel]
- allow to use a fixed StopableWSGIServer [gawel]
- Do not alter the BeautifulSoup object when parsing forms. [Georges
Dubus]
- Remove first newline while parse textarea block, how modern browsers does.
[Victor Safronovich] pull #69
2.0.5 (2013-04-12)
------------------
* Ignore select.error (not socket.error) following
StopableWSGIServer.shutdown. [Laurence Rowe]
* Handle the short form of <select multiple> [Marius Gedminas]
2.0.4 (2013-03-28)
------------------
* Correctly handle <option> elements with no value attribute
[Marius Gedminas]
* Ignore socket.error following StopableWSGIServer.shutdown. [Laurence Rowe]
* <button> without type='submit' attribute is treated as Submit
control [Andrey Lebedev].
* Support for redirects having relative "Location" header [Andrey Lebedev]
2.0.3 (2013-03-19)
------------------
* Treat strings in the WSGI environment as native strings, compliant with
PEP-3333. [wosc]
2.0.2 (2013-03-15)
------------------
* Allow TestResponse.click() to match HTML content again. [ender672]
* Support secure cookies [Andrey Lebedev]
2.0.1 (2013-03-05)
------------------
* Added Pasword field [diarmuidbourke]
* re-allow to use unknow field type. Like ``type="email"``. [gawel]
* Don't let BeautifulSoup use lxml. Fix GH-51 [kmike]
* added :meth:`webtest.response.TestResponse.maybe_follow` method [kmike]
2.0 (2013-02-25)
----------------
* drop zc.buildout usage for development, now using only virtualenv
[Domen Kožar]
* Backward incompatibility : Removed the ``anchor`` argument of
:meth:`webtest.response.TestResponse.click` and the ``button`` argument of
:meth:`webtest.response.TestResponse.clickbutton`. It is for the greater good.
[madjar]
* Rewrote API documentation [Domen Kožar]
* Added `wsgiproxy` support to do HTTP request to an URL [gawel]
* Use BeautifulSoup4 to parse forms [gawel]
* Added `webtest.app.TestApp.patch_json` [gawel]
* Implement `webtest.app.TestApp.cookiejar` support and kindof keep
`webtest.app.TestApp.cookies` functionality. `webtest.app.TestApp.cookies`
should be treated as read-only.
[Domen Kožar]
* Split Selenium integration into separate package webtest-selenium
[gawel]
* Split casperjs integration into separate package webtest-casperjs
[gawel]
* Test coverage improvements [harobed, cdevienne, arthru, Domen Kožar, gawel]
* Fully implement decoding of HTML entities
* Fix tox configuration
1.4.2
-----
* fix tests error due to CLRF in a tarball
1.4.1
-----
* add travis-ci
* migrate repository to https://github.com/Pylons/webtest
* Fix a typo in apps.py: selectedIndicies
* Preserve field order during parsing (support for deform and such)
* allow equals sign in the cookie by spliting name-value-string pairs on
the first '=' sign as per
http://tools.ietf.org/html/rfc6265#section-5.2
* fix an error when you use AssertionError(response) with unicode chars in
response
1.4.0
-----
* added webtest.ext - allow to use casperjs
1.3.6
------
* fix `#42 <https://bitbucket.org/ianb/webtest/issue/42>`_ Check uppercase
method.
* fix `#36 <https://bitbucket.org/ianb/webtest/issue/36>`_ Radio can use forced
value.
* fix `#24 <https://bitbucket.org/ianb/webtest/issue/24>`_ Include test
fixtures.
* fix bug when trying to print a response which contain some unicode chars
1.3.5
------
* fix `#39 <https://bitbucket.org/ianb/webtest/issue/39>`_ Add PATCH to
acceptable methods.
1.3.4
-----
* fix `#33 <https://bitbucket.org/ianb/webtest/issue/33>`_ Remove
CaptureStdout. Do nothing and break pdb
* use OrderedDict to store fields in form. See
`#31 <https://bitbucket.org/ianb/webtest/issue/31>`_
* fix `#38 <https://bitbucket.org/ianb/webtest/issue/38>`_ Allow to post falsey
values.
* 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
documentation
* Never catch NameError during iteration
1.3.3
-----
* 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
1.3.2
-----
* improve showbrowser. fixed `#23 <https://bitbucket.org/ianb/webtest/issue/23>`_
* print_stderr fail with unicode string on python2
1.3.1
-----
* Added .option() `#20 <https://bitbucket.org/ianb/webtest/issue/20>`_
* Fix #21
* Full python3 compat
1.3
---
* Moved TestApp to app.py
* Added selenium testing framework. See :mod:`~webtest.sel` module.
1.2.4
------
* 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
`.delete(params={})`
* Fix `#12 <https://bitbucket.org/ianb/webtest/issue/12>`_
1.2.3
-----
* Fix `#10
<http://bitbucket.org/ianb/webtest/issue/10/testapprequest-method-overwrites-specifics-with-testapp-scoped>`_,
now `TestApp.extra_environ` doesn't take precedence over a WSGI
environment passed in through the request.
* Removed stray print
1.2.2
-----
* 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
`TestApp` constructor.
1.2.1
-----
* 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).
1.2
---
* Fix form inputs; text inputs always default to the empty string, and
unselected radio inputs default to nothing at all. From Daniele
Paolella.
* 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
Matthew Desmarais.
* Fixed :meth:`webtest.Response.mustcontain` when you pass in a
``no=[strings]`` argument.
1.1
---
* Changed the ``__str__`` of responses to make them more doctest
friendly:
- 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
repr)
* 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
markup).
1.0.2
-----
* 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)
1.0.1
---
* Fix the ``TestApp`` validator's InputWrapper lacking support for
readline with an argument as needed by the cgi module.
1.0
---
* Keep URLs in-tact in cases such as
``app.get('http://www.python.org')`` (so HTTP_HOST=www.python.org,
etc).
* 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
MultiDict)
0.9
---
Initial release