Skip to content

Latest commit

 

History

History
306 lines (187 loc) · 7.44 KB

File metadata and controls

306 lines (187 loc) · 7.44 KB

Release Notes

1.0.1

New Features

  • Improved error handling of custom request handlers. Request handlers added with respond_with_handler now can use the assert statement. Those errors will be reported when a further check_assertions() call is made. Also, unhandled exceptions raised in the request handlers can be re-raised by calling the new check_handler_errors() method. A new method called check() has been added which calls these two in sequence.

1.0.0

Prelude

Functionally the same as 1.0.0rc1. For the list of changes between 0.3.8 and 1.0.0 see the changelist for 1.0.0rc1.

1.0.0rc1

New Features

  • Added a new session scoped fixture make_httpserver which creates the object for the httpserver fixture. It can be overridden to add further customizations and it must yield a HTTPServer object - see pytest_plugin.py for an implementation. As this fixture is session scoped, it will be called only once when the first test using httpserver is started. This addition also deprecates the use of PluginHTTPServer which was used in earlier versions as a way to customize server object creation. PluginHTTPServer can still be used but it may be subject to deprecation in the future.
  • Added a new session scoped fixture httpserver_ssl_context which provides the SSL context for the server. By default it returns None, so SSL is not enabled, but can be overridden to return a valid ssl.SSLContext object which will be used for SSL connections. See test_ssl.py for example.

Upgrade Notes

  • Breaking change: The scope of httpserver_listen_address fixture changed from function to session. This is a requirement to implement the other features listed in this release. See the upgrade guide for the details.

0.3.8

Deprecation Notes

0.3.7

Other Notes

  • Removed pytest-runner from setup.py as it is deprecated and makes packaging inconvenient as it needs to be installed before running setup.py.

0.3.6

New Features

  • HTTP methods are case insensitive. The HTTP method specified is converted to uppercase in the library.
  • It is now possible to specify a JSON-serializable python value (such as dict, list, etc) and match the request to it as JSON. The request's body is loaded as JSON and it will be compared to the expected value.
  • The http response code sent when no handler is found for the request can be changed. It is set to 500 by default.

0.3.5

New Features

  • Extend URI matching by allowing to specify URIPattern object or a compiled regular expression, which will be matched against the URI. URIPattern class is defined as abstract in the library so the user need to implement a new class based on it.

0.3.4

Bug Fixes

  • Fix the tests assets created for SSL/TLS tests by extending their expiration time. Also update the Makefile which can be used to update these assets.

0.3.3

New Features

  • Besides bytes and string, dict and MultiDict objects can be specified as query_string. When these objects are used, the query string gets parsed into a dict (or MultiDict), and comparison is made accordingly. This enables the developer to ignore the order of the keys in the query_string when expecting a request.

Bug Fixes

  • Fixed issue #16 by converting string object passed as query_string to bytes which is the type of the query string in werkzeug, and also allowing bytes as the parameter.
  • Fix release tagging. 0.3.2 was released in a mistake by tagging 3.0.2 to the branch.

Other Notes

  • Add more files to source distribution (sdist). It now contains tests, assets, examples and other files.

0.3.1

New Features

  • Add httpserver_listen_address fixture which is used to set up the bind address and port of the server. Setting bind address and port is possible by overriding this fixture.

0.3.0

New Features

  • Support ephemeral port. This can be used by specify 0 as the port number to the HTTPServer instance. In such case, an unused port will be picked up and the server will start listening on that port. Querying the port attribute after server start reveals the real port where the server is actually listening.
  • Unify request functions of the HTTPServer class to make the API more straightforward to use.

Upgrade Notes

0.2.2

New Features

  • Make it possible to intelligently compare headers. To accomplish that HeaderValueMatcher was added. It already contains logic to compare unknown headers and authorization headers. Patch by Roman Inflianskas.

0.2.1

Prelude

Minor fixes in setup.py and build environment. No actual code change in library .py files.

0.2

New Features

  • When using pytest plugin, specifying the bind address and bind port can also be possible via environment variables. Setting PYTEST_HTTPSERVER_HOST and PYTEST_HTTPSERVER_PORT will change the bind host and bind port, respectively.
  • SSL/TLS support added with using the SSL/TLS support provided by werkzeug. This is based on the ssl module from the standard library.

0.1.1

Prelude

Minor fixes in setup.py and build environment. No actual code change in library .py files.

0.1

Prelude

First release