Test utilities for CherryPy
Project description
===================
cherrypy.authorizer
===================
Test utilities for cherrypy. Can be run under py.test, nosetests or unittest.
Based on `code provided by Sylvain Hellegouarch <https://bitbucket.org/Lawouach/cherrypy-recipes/src/d140e6da973aa271e6b68a8bc187e53615674c5e/testing/unit/serverless/?at=default>`_
The response returned by the methods on the class ``lribeiro.cherrypy.test.CPTestCase`` is added two properties:
``status_code`` and ``text``, providing an easier way to retrieve the response body as a string and the status code as
an integer
The class ``lribeiro.cherrypy.test.CPTestCase`` provides facilities to setup serverless testing and has helper methods
to perform requests.
You need to provide a ``root`` class attribute when using ``CPTestCase`` that will be the root of your test application.
You can also provide a ``preserve_cookies`` class attribute to control whether the cookies must be resent with every
request. This is useful when testing authentication. The default value is ``True``.
======== ==============
method description
======== ==============
get() GET request
post() POST request
put() PUT request
delete() DELETE request
head() HEAD request
patch() PATCH request
======== ==============
These methods call the ``request()`` method with the specified http method set passing any additional parameter.
The ``request()`` method accepts the following parameters (none of them is required - defaults in parenthesis):
============= ======================================================================
parameter description
============= ======================================================================
path path to request ('/')
method method to request ('GET')
app_path path of the application to make requests against ('')
scheme http or https ('http')
proto http version ('HTTP/1.1')
data dict contaning data to post on request body (None)
headers dict contaning request headers to be sent (None)
cookies dict contaning cookies to be sent (None)
auto_redirect whether to follow redirect responses (False)
\*\*kwargs data to be sent in querystring or request body, in case of POST or PUT
============= ======================================================================
In addition to the request methods, the are assertion methods:
=================== ======================================================================================================================
method description
=================== ======================================================================================================================
assert_status assert a specific https status. Constants for http status can be found in ``lribeiro.cherrypy.test.httpstatus`` module
assert_ok shortcut to ``assert_status(httpstatus.OK)``
assert_not_found shortcut to ``assert_status(httpstatus.NOT_FOUND)``
assert_error shortcut to ``assert_status(httpstatus.INTERNAL_SERVER_ERROR)``
assert_redirect assert the the response is a redirect and, if provided, verifies the Location of the redirect
assert_not_redirect assert that a response is not a redirect
assert_contains assert that the response body contains a string
assert_not_contains assert that the response body does not contain a string
assert_body assert that the response body is equals to a string
assert_header assert that the a response header has a specific value
assert_has_header assert that the response has a header
assert_cookie assert that the a response cookie has a specific value
assert_has_cookie assert that the response has a cookie
assert_path assert that the request path_info is the same as the one given
=================== ======================================================================================================================
Developed under Python3.4 and tested against Python2.7, Python3.4 and pypy.
Example:
--------
.. sourcecode:: python
import cherrypy
from lribeiro.cherrypy.test import CPTestCase
class Root:
@cherrypy.expose
def index(self):
return 'index'
@cherrypy.expose
def post(self, name):
return 'name = ' + name
@cherrypy.expose
def redir(self, to)
raise cherrypy.HTTPRedirect(to)
class TestTests(CPTestCase):
root = Root()
def test_index(self):
self.get('/')
self.assert_ok()
self.assert_not_redirect()
def test_post(self):
self.post('/post', name='Lorem Ipsum')
self.assert_contains('Lorem Ipsum')
def test_redir(self):
self.get('/redir', to='/some/page')
self.assert_redirect('/some/page')
cherrypy.authorizer
===================
Test utilities for cherrypy. Can be run under py.test, nosetests or unittest.
Based on `code provided by Sylvain Hellegouarch <https://bitbucket.org/Lawouach/cherrypy-recipes/src/d140e6da973aa271e6b68a8bc187e53615674c5e/testing/unit/serverless/?at=default>`_
The response returned by the methods on the class ``lribeiro.cherrypy.test.CPTestCase`` is added two properties:
``status_code`` and ``text``, providing an easier way to retrieve the response body as a string and the status code as
an integer
The class ``lribeiro.cherrypy.test.CPTestCase`` provides facilities to setup serverless testing and has helper methods
to perform requests.
You need to provide a ``root`` class attribute when using ``CPTestCase`` that will be the root of your test application.
You can also provide a ``preserve_cookies`` class attribute to control whether the cookies must be resent with every
request. This is useful when testing authentication. The default value is ``True``.
======== ==============
method description
======== ==============
get() GET request
post() POST request
put() PUT request
delete() DELETE request
head() HEAD request
patch() PATCH request
======== ==============
These methods call the ``request()`` method with the specified http method set passing any additional parameter.
The ``request()`` method accepts the following parameters (none of them is required - defaults in parenthesis):
============= ======================================================================
parameter description
============= ======================================================================
path path to request ('/')
method method to request ('GET')
app_path path of the application to make requests against ('')
scheme http or https ('http')
proto http version ('HTTP/1.1')
data dict contaning data to post on request body (None)
headers dict contaning request headers to be sent (None)
cookies dict contaning cookies to be sent (None)
auto_redirect whether to follow redirect responses (False)
\*\*kwargs data to be sent in querystring or request body, in case of POST or PUT
============= ======================================================================
In addition to the request methods, the are assertion methods:
=================== ======================================================================================================================
method description
=================== ======================================================================================================================
assert_status assert a specific https status. Constants for http status can be found in ``lribeiro.cherrypy.test.httpstatus`` module
assert_ok shortcut to ``assert_status(httpstatus.OK)``
assert_not_found shortcut to ``assert_status(httpstatus.NOT_FOUND)``
assert_error shortcut to ``assert_status(httpstatus.INTERNAL_SERVER_ERROR)``
assert_redirect assert the the response is a redirect and, if provided, verifies the Location of the redirect
assert_not_redirect assert that a response is not a redirect
assert_contains assert that the response body contains a string
assert_not_contains assert that the response body does not contain a string
assert_body assert that the response body is equals to a string
assert_header assert that the a response header has a specific value
assert_has_header assert that the response has a header
assert_cookie assert that the a response cookie has a specific value
assert_has_cookie assert that the response has a cookie
assert_path assert that the request path_info is the same as the one given
=================== ======================================================================================================================
Developed under Python3.4 and tested against Python2.7, Python3.4 and pypy.
Example:
--------
.. sourcecode:: python
import cherrypy
from lribeiro.cherrypy.test import CPTestCase
class Root:
@cherrypy.expose
def index(self):
return 'index'
@cherrypy.expose
def post(self, name):
return 'name = ' + name
@cherrypy.expose
def redir(self, to)
raise cherrypy.HTTPRedirect(to)
class TestTests(CPTestCase):
root = Root()
def test_index(self):
self.get('/')
self.assert_ok()
self.assert_not_redirect()
def test_post(self):
self.post('/post', name='Lorem Ipsum')
self.assert_contains('Lorem Ipsum')
def test_redir(self):
self.get('/redir', to='/some/page')
self.assert_redirect('/some/page')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for lribeiro.cherrypy.test-1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75d8b669595321e35d71609460952a1c63c5d757606fa046e1a1e1d9af064e99 |
|
MD5 | 65cb9b6565e14d13b16e93c8ea609ab9 |
|
BLAKE2b-256 | 16cc4c0e6bf05a7ddce18bba045ba6b5a474f71c18c17c51be288ef58499e29f |
Close
Hashes for lribeiro.cherrypy.test-1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2509eb9b6f0ada3427eee6ee0e4f451b5fb138f7a565d0e470c28b2f1cd178e |
|
MD5 | bd68e6158308cd0fb348a8987bfc24cd |
|
BLAKE2b-256 | a221f406dfee1612c26ec70294726d1dd73681e6576f5a0f512026b8b18f87d6 |