cherrypy.test package¶
Submodules¶
cherrypy.test.benchmark module¶
CherryPy Benchmark Tool
- Usage:
benchmark.py [options]
–null: use a null Request object (to bench the HTTP server only) –notests: start the server but do not run the tests; this allows
you to check the tested pages with a browser
–help: show this help message –cpmodpy: run tests via apache on 54583 (with the builtin _cpmodpy) –modpython: run tests via apache on 54583 (with modpython_gateway) –ab=path: Use the ab script/executable at ‘path’ (see below) –apache=path: Use the apache script/exe at ‘path’ (see below)
To run the benchmarks, the Apache Benchmark tool “ab” must either be on your system path, or specified via the –ab=path option.
To run the modpython tests, the “apache” executable or script must be on your system path, or provided via the –apache=path option. On some platforms, “apache” may be called “apachectl” or “apache2ctl”–create a symlink to them if needed.
-
class
cherrypy.test.benchmark.
ABSession
(path='/cpbench/users/rdelon/apps/blog/hello', requests=1000, concurrency=10)[source]¶ Bases:
object
A session of ‘ab’, the Apache HTTP server benchmarking tool.
Example output from ab:
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.1 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests
Server Software: CherryPy/3.1beta Server Hostname: 127.0.0.1 Server Port: 54583
Document Path: /static/index.html Document Length: 14 bytes
Concurrency Level: 10 Time taken for tests: 9.643867 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 189000 bytes HTML transferred: 14000 bytes Requests per second: 103.69 [#/sec] (mean) Time per request: 96.439 [ms] (mean) Time per request: 9.644 [ms] (mean, across all concurrent requests) Transfer rate: 19.08 [Kbytes/sec] received
- Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.9 0 10 Processing: 20 94 7.3 90 130 Waiting: 0 43 28.1 40 100 Total: 20 95 7.3 100 130
- Percentage of the requests served within a certain time (ms)
50% 100 66% 100 75% 100 80% 100 90% 100 95% 100 98% 100 99% 110
100% 130 (longest request)
Finished 1000 requests
-
parse_patterns
= [('complete_requests', 'Completed', b'^Complete requests:\\s*(\\d+)'), ('failed_requests', 'Failed', b'^Failed requests:\\s*(\\d+)'), ('requests_per_second', 'req/sec', b'^Requests per second:\\s*([0-9.]+)'), ('time_per_request_concurrent', 'msec/req', b'^Time per request:\\s*([0-9.]+).*concurrent requests\\)$'), ('transfer_rate', 'KB/sec', b'^Transfer rate:\\s*([0-9.]+)')]¶
cherrypy.test.checkerdemo module¶
Demonstration app for cherrypy.checker.
This application is intentionally broken and badly designed. To demonstrate the output of the CherryPy Checker, simply execute this module.
cherrypy.test.helper module¶
A library of helper functions for the CherryPy test suite.
-
class
cherrypy.test.helper.
CPProcess
(wait=False, daemonize=False, ssl=False, socket_host=None, socket_port=None)[source]¶ Bases:
object
-
access_log
= '/build/cherrypy3-1RK7i8/cherrypy3-18.6.0/cherrypy/test/test.access.log'¶
-
config_file
= '/build/cherrypy3-1RK7i8/cherrypy3-18.6.0/cherrypy/test/test.conf'¶
-
config_template
= "[global]\nserver.socket_host: '%(host)s'\nserver.socket_port: %(port)s\nchecker.on: False\nlog.screen: False\nlog.error_file: r'%(error_log)s'\nlog.access_file: r'%(access_log)s'\n%(ssl)s\n%(extra)s\n"¶
-
error_log
= '/build/cherrypy3-1RK7i8/cherrypy3-18.6.0/cherrypy/test/test.error.log'¶
-
pid_file
= '/build/cherrypy3-1RK7i8/cherrypy3-18.6.0/cherrypy/test/test.pid'¶
-
-
class
cherrypy.test.helper.
CPWebCase
(methodName='runTest')[source]¶ Bases:
cheroot.test.webtest.WebCase
-
assertErrorPage
(status, message=None, pattern='')[source]¶ Compare the response body with a built in error page.
The function will optionally look for the regexp pattern, within the exception embedded in the error page.
-
available_servers
= {'cpmodpy': <function get_cpmodpy_supervisor>, 'modfastcgi': <function get_modfastcgi_supervisor>, 'modfcgid': <function get_modfcgid_supervisor>, 'modpygw': <function get_modpygw_supervisor>, 'modwsgi': <function get_modwsgi_supervisor>, 'native': <class 'cherrypy.test.helper.NativeServerSupervisor'>, 'wsgi': <class 'cherrypy.test.helper.LocalWSGISupervisor'>, 'wsgi_u': <function get_wsgi_u_supervisor>}¶
-
date_tolerance
= 2¶
-
default_server
= 'wsgi'¶
-
do_gc_test
= False¶
-
scheme
= 'http'¶
-
script_name
= ''¶
-
-
class
cherrypy.test.helper.
LocalSupervisor
(**kwargs)[source]¶ Bases:
cherrypy.test.helper.Supervisor
Base class for modeling/controlling servers which run in the same process.
When the server side runs in a different process, start/stop can dump all state between each test module easily. When the server side runs in the same process as the client, however, we have to do a bit more work to ensure config and mounted apps are reset between tests.
-
using_apache
= False¶
-
using_wsgi
= False¶
-
-
class
cherrypy.test.helper.
LocalWSGISupervisor
(**kwargs)[source]¶ Bases:
cherrypy.test.helper.LocalSupervisor
Server supervisor for the builtin WSGI server.
-
httpserver_class
= 'cherrypy._cpwsgi_server.CPWSGIServer'¶
-
using_apache
= False¶
-
using_wsgi
= True¶
-
-
class
cherrypy.test.helper.
NativeServerSupervisor
(**kwargs)[source]¶ Bases:
cherrypy.test.helper.LocalSupervisor
Server supervisor for the builtin HTTP server.
-
httpserver_class
= 'cherrypy._cpnative_server.CPHTTPServer'¶
-
using_apache
= False¶
-
using_wsgi
= False¶
-
cherrypy.test.logtest module¶
logtest, a unittest.TestCase helper for testing log output.
-
class
cherrypy.test.logtest.
LogCase
[source]¶ Bases:
object
unittest.TestCase mixin for testing log messages.
- logfile: a filename for the desired log. Yes, I know modes are evil,
but it makes the test functions so much cleaner to set this once.
- lastmarker: the last marker in the log. This can be used to search for
messages since the last marker.
- markerPrefix: a string with which to prefix log markers. This should be
unique enough from normal log output to use for marker identification.
-
assertInLog
(line, marker=None)[source]¶ Fail if the given (partial) line is not in the log.
The log will be searched from the given marker to the next marker. If marker is None, self.lastmarker is used. If the log hasn’t been marked (using self.markLog), the entire log will be searched.
-
assertLog
(sliceargs, lines, marker=None)[source]¶ Fail if log.readlines()[sliceargs] is not contained in ‘lines’.
The log will be searched from the given marker to the next marker. If marker is None, self.lastmarker is used. If the log hasn’t been marked (using self.markLog), the entire log will be searched.
-
assertNotInLog
(line, marker=None)[source]¶ Fail if the given (partial) line is in the log.
The log will be searched from the given marker to the next marker. If marker is None, self.lastmarker is used. If the log hasn’t been marked (using self.markLog), the entire log will be searched.
-
assertValidUUIDv4
(marker=None)[source]¶ Fail if the given UUIDv4 is not valid.
The log will be searched from the given marker to the next marker. If marker is None, self.lastmarker is used. If the log hasn’t been marked (using self.markLog), the entire log will be searched.
-
interactive
= False¶
-
lastmarker
= None¶
-
logfile
= None¶
-
markerPrefix
= b'test suite marker: '¶
cherrypy.test.modfastcgi module¶
Wrapper for mod_fastcgi, for use as a CherryPy HTTP server when testing.
To autostart fastcgi, the “apache” executable or script must be on your system path, or you must override the global APACHE_PATH. On some platforms, “apache” may be called “apachectl”, “apache2ctl”, or “httpd”–create a symlink to them if needed.
You’ll also need the WSGIServer from flup.servers. See http://projects.amor.org/misc/wiki/ModPythonGateway
KNOWN BUGS¶
- Apache processes Range headers automatically; CherryPy’s truncated
output is then truncated again by Apache. See test_core.testRanges. This was worked around in http://www.cherrypy.org/changeset/1319.
- Apache does not allow custom HTTP methods like CONNECT as per the spec.
See test_core.testHTTPMethods.
Max request header and body settings do not work with Apache.
- Apache replaces status “reason phrases” automatically. For example,
CherryPy may set “304 Not modified” but Apache will write out “304 Not Modified” (capital “M”).
Apache does not allow custom error codes as per the spec.
- Apache (or perhaps modpython, or modpython_gateway) unquotes %xx in the
Request-URI too early.
- mod_python will not read request bodies which use the “chunked”
transfer-coding (it passes REQUEST_CHUNKED_ERROR to ap_setup_client_block instead of REQUEST_CHUNKED_DECHUNK, see Apache2’s http_protocol.c and mod_python’s requestobject.c).
- Apache will output a “Content-Length: 0” response header even if there’s
no response entity body. This isn’t really a bug; it just differs from the CherryPy default.
-
class
cherrypy.test.modfastcgi.
ModFCGISupervisor
(**kwargs)[source]¶ Bases:
cherrypy.test.helper.LocalWSGISupervisor
-
httpserver_class
= 'cherrypy.process.servers.FlupFCGIServer'¶
-
template
= '\n# Apache2 server conf file for testing CherryPy with mod_fastcgi.\n# fumanchu: I had to hard-code paths due to crazy Debian layouts :(\nServerRoot /usr/lib/apache2\nUser #1000\nErrorLog %(root)s/mod_fastcgi.error.log\n\nDocumentRoot "%(root)s"\nServerName 127.0.0.1\nListen %(port)s\nLoadModule fastcgi_module modules/mod_fastcgi.so\nLoadModule rewrite_module modules/mod_rewrite.so\n\nOptions +ExecCGI\nSetHandler fastcgi-script\nRewriteEngine On\nRewriteRule ^(.*)$ /fastcgi.pyc [L]\nFastCgiExternalServer "%(server)s" -host 127.0.0.1:4000\n'¶
-
using_apache
= True¶
-
using_wsgi
= True¶
-
cherrypy.test.modfcgid module¶
Wrapper for mod_fcgid, for use as a CherryPy HTTP server when testing.
To autostart fcgid, the “apache” executable or script must be on your system path, or you must override the global APACHE_PATH. On some platforms, “apache” may be called “apachectl”, “apache2ctl”, or “httpd”–create a symlink to them if needed.
You’ll also need the WSGIServer from flup.servers. See http://projects.amor.org/misc/wiki/ModPythonGateway
KNOWN BUGS¶
- Apache processes Range headers automatically; CherryPy’s truncated
output is then truncated again by Apache. See test_core.testRanges. This was worked around in http://www.cherrypy.org/changeset/1319.
- Apache does not allow custom HTTP methods like CONNECT as per the spec.
See test_core.testHTTPMethods.
Max request header and body settings do not work with Apache.
- Apache replaces status “reason phrases” automatically. For example,
CherryPy may set “304 Not modified” but Apache will write out “304 Not Modified” (capital “M”).
Apache does not allow custom error codes as per the spec.
- Apache (or perhaps modpython, or modpython_gateway) unquotes %xx in the
Request-URI too early.
- mod_python will not read request bodies which use the “chunked”
transfer-coding (it passes REQUEST_CHUNKED_ERROR to ap_setup_client_block instead of REQUEST_CHUNKED_DECHUNK, see Apache2’s http_protocol.c and mod_python’s requestobject.c).
- Apache will output a “Content-Length: 0” response header even if there’s
no response entity body. This isn’t really a bug; it just differs from the CherryPy default.
-
class
cherrypy.test.modfcgid.
ModFCGISupervisor
(**kwargs)[source]¶ Bases:
cherrypy.test.helper.LocalSupervisor
-
template
= '\n# Apache2 server conf file for testing CherryPy with mod_fcgid.\n\nDocumentRoot "%(root)s"\nServerName 127.0.0.1\nListen %(port)s\nLoadModule fastcgi_module modules/mod_fastcgi.dll\nLoadModule rewrite_module modules/mod_rewrite.so\n\nOptions ExecCGI\nSetHandler fastcgi-script\nRewriteEngine On\nRewriteRule ^(.*)$ /fastcgi.pyc [L]\nFastCgiExternalServer "%(server)s" -host 127.0.0.1:4000\n'¶
-
using_apache
= True¶
-
using_wsgi
= True¶
-
cherrypy.test.modpy module¶
Wrapper for mod_python, for use as a CherryPy HTTP server when testing.
To autostart modpython, the “apache” executable or script must be on your system path, or you must override the global APACHE_PATH. On some platforms, “apache” may be called “apachectl” or “apache2ctl”– create a symlink to them if needed.
If you wish to test the WSGI interface instead of our _cpmodpy interface, you also need the ‘modpython_gateway’ module at: http://projects.amor.org/misc/wiki/ModPythonGateway
KNOWN BUGS¶
- Apache processes Range headers automatically; CherryPy’s truncated
output is then truncated again by Apache. See test_core.testRanges. This was worked around in http://www.cherrypy.org/changeset/1319.
- Apache does not allow custom HTTP methods like CONNECT as per the spec.
See test_core.testHTTPMethods.
Max request header and body settings do not work with Apache.
- Apache replaces status “reason phrases” automatically. For example,
CherryPy may set “304 Not modified” but Apache will write out “304 Not Modified” (capital “M”).
Apache does not allow custom error codes as per the spec.
- Apache (or perhaps modpython, or modpython_gateway) unquotes %xx in the
Request-URI too early.
- mod_python will not read request bodies which use the “chunked”
transfer-coding (it passes REQUEST_CHUNKED_ERROR to ap_setup_client_block instead of REQUEST_CHUNKED_DECHUNK, see Apache2’s http_protocol.c and mod_python’s requestobject.c).
- Apache will output a “Content-Length: 0” response header even if there’s
no response entity body. This isn’t really a bug; it just differs from the CherryPy default.
cherrypy.test.modwsgi module¶
Wrapper for mod_wsgi, for use as a CherryPy HTTP server.
To autostart modwsgi, the “apache” executable or script must be on your system path, or you must override the global APACHE_PATH. On some platforms, “apache” may be called “apachectl” or “apache2ctl”– create a symlink to them if needed.
KNOWN BUGS¶
- Apache processes Range headers automatically; CherryPy’s truncated
output is then truncated again by Apache. See test_core.testRanges. This was worked around in http://www.cherrypy.org/changeset/1319.
- Apache does not allow custom HTTP methods like CONNECT as per the spec.
See test_core.testHTTPMethods.
Max request header and body settings do not work with Apache.
- Apache replaces status “reason phrases” automatically. For example,
CherryPy may set “304 Not modified” but Apache will write out “304 Not Modified” (capital “M”).
Apache does not allow custom error codes as per the spec.
- Apache (or perhaps modpython, or modpython_gateway) unquotes %xx in the
Request-URI too early.
- mod_wsgi will not read request bodies which use the “chunked”
transfer-coding (it passes REQUEST_CHUNKED_ERROR to ap_setup_client_block instead of REQUEST_CHUNKED_DECHUNK, see Apache2’s http_protocol.c and mod_python’s requestobject.c).
- When responding with 204 No Content, mod_wsgi adds a Content-Length
header for you.
- When an error is raised, mod_wsgi has no facility for printing a
traceback as the response content (it’s sent to the Apache log instead).
Startup and shutdown of Apache when running mod_wsgi seems slow.
-
class
cherrypy.test.modwsgi.
ModWSGISupervisor
(**kwargs)[source]¶ Bases:
cherrypy.test.helper.Supervisor
Server Controller for ModWSGI and CherryPy.
-
template
= '\n# Apache2 server conf file for testing CherryPy with modpython_gateway.\n\nServerName 127.0.0.1\nDocumentRoot "/"\nListen %(port)s\n\nAllowEncodedSlashes On\nLoadModule rewrite_module modules/mod_rewrite.so\nRewriteEngine on\nRewriteMap escaping int:escape\n\nLoadModule log_config_module modules/mod_log_config.so\nLogFormat "%%h %%l %%u %%t \\"%%r\\" %%>s %%b \\"%%{Referer}i\\" \\"%%{User-agent}i\\"" combined\nCustomLog "%(curdir)s/apache.access.log" combined\nErrorLog "%(curdir)s/apache.error.log"\nLogLevel debug\n\nLoadModule wsgi_module modules/mod_wsgi.so\nLoadModule env_module modules/mod_env.so\n\nWSGIScriptAlias / "%(curdir)s/modwsgi.py"\nSetEnv testmod %(testmod)s\n'¶
-
using_apache
= True¶
-
using_wsgi
= True¶
-
cherrypy.test.sessiondemo module¶
A session demonstration app.
cherrypy.test.test_auth_basic module¶
cherrypy.test.test_auth_digest module¶
cherrypy.test.test_bus module¶
Publish-subscribe bus tests.
-
cherrypy.test.test_bus.
test_builtin_channels
(bus, listener)[source]¶ Test that built-in channels trigger corresponding listeners.
-
cherrypy.test.test_bus.
test_custom_channels
(bus, listener)[source]¶ Test that custom pub-sub channels work as built-in ones.
-
cherrypy.test.test_bus.
test_exit
(bus, listener, log_tracker)[source]¶ Test that bus exit sequence is correct.
-
cherrypy.test.test_bus.
test_graceful
(bus, listener, log_tracker)[source]¶ Test that bus graceful state triggers all listeners.
-
cherrypy.test.test_bus.
test_listener_errors
(bus, listener)[source]¶ Test that unhandled exceptions raise channel failures.
-
cherrypy.test.test_bus.
test_log
(bus, log_tracker)[source]¶ Test that bus messages and errors are logged.
-
cherrypy.test.test_bus.
test_start
(bus, listener, log_tracker)[source]¶ Test that bus start sequence calls all listeners.
-
cherrypy.test.test_bus.
test_start_with_callback
(bus)[source]¶ Test that callback fires on bus start.
cherrypy.test.test_caching module¶
-
class
cherrypy.test.test_caching.
CacheTest
(methodName='runTest')[source]¶
cherrypy.test.test_compat module¶
cherrypy.test.test_config module¶
Tests for the CherryPy configuration system.
-
class
cherrypy.test.test_config.
CallablesInConfigTest
(methodName='runTest')[source]¶ Bases:
unittest.case.TestCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_config.
ConfigTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
cherrypy.test.test_config_server module¶
Tests for the CherryPy configuration system.
cherrypy.test.test_conn module¶
Tests for TCP connection handling, including proper and timely close.
-
class
cherrypy.test.test_conn.
BadRequestTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_conn.
ConnectionCloseTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_conn.
ConnectionTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_conn.
LimitedRequestQueueTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_conn.
PipelineTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
cherrypy.test.test_conn.
socket_reset_errors
= [104, 'Remote end closed connection without response']¶ reset error numbers available on this platform
cherrypy.test.test_core module¶
Basic tests for the CherryPy core: request handling.
-
class
cherrypy.test.test_core.
CoreRequestHandlingTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
cookies module fails to reject invalid cookies https://github.com/cherrypy/cherrypy/issues/1405
cherrypy.test.test_dynamicobjectmapping module¶
-
class
cherrypy.test.test_dynamicobjectmapping.
DynamicObjectMappingTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
cherrypy.test.test_encoding module¶
-
class
cherrypy.test.test_encoding.
EncodingTests
(methodName='runTest')[source]¶
cherrypy.test.test_etags module¶
cherrypy.test.test_http module¶
Tests for managing HTTP issues (malformed requests, etc).
-
class
cherrypy.test.test_http.
HTTPTests
(methodName='runTest')[source]¶
-
cherrypy.test.test_http.
encode_filename
(filename)[source]¶ Given a filename to be used in a multipart/form-data, encode the name. Return the key and encoded filename.
cherrypy.test.test_httplib module¶
cherrypy.test.test_iterator module¶
-
class
cherrypy.test.test_iterator.
IteratorBase
[source]¶ Bases:
object
-
created
= 0¶
-
datachunk
= 'butternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squashbutternut squash'¶
-
-
class
cherrypy.test.test_iterator.
OurIterator
[source]¶ Bases:
cherrypy.test.test_iterator.IteratorBase
-
closed_off
= False¶
-
count
= 0¶
-
next
()¶
-
started
= False¶
-
-
class
cherrypy.test.test_iterator.
OurUnclosableIterator
[source]¶ Bases:
cherrypy.test.test_iterator.OurIterator
-
close
= 'close'¶
-
cherrypy.test.test_json module¶
cherrypy.test.test_logging module¶
Basic tests for the CherryPy core: request handling.
-
cherrypy.test.test_logging.
test_UUIDv4_parameter_log_format
(log_tracker, monkeypatch, server)[source]¶ Test rendering of UUID4 within access log.
-
cherrypy.test.test_logging.
test_custom_log_format
(log_tracker, monkeypatch, server)[source]¶ Test a customized access_log_format string, which is a feature of _cplogging.LogManager.access().
cherrypy.test.test_mime module¶
Tests for various MIME issues, including the safe_multipart Tool.
-
class
cherrypy.test.test_mime.
MultipartTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_mime.
SafeMultipartHandlingTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
cherrypy.test.test_misc_tools module¶
-
class
cherrypy.test.test_misc_tools.
AcceptTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_misc_tools.
AutoVaryTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_misc_tools.
RefererTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
class
cherrypy.test.test_misc_tools.
ResponseHeadersTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
cherrypy.test.test_objectmapping module¶
cherrypy.test.test_params module¶
cherrypy.test.test_proxy module¶
cherrypy.test.test_refleaks module¶
Tests for refleaks.
cherrypy.test.test_request_obj module¶
Basic tests for the cherrypy.Request object.
-
class
cherrypy.test.test_request_obj.
RequestObjectTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
cherrypy.test.test_routes module¶
Test Routes dispatcher.
-
class
cherrypy.test.test_routes.
RoutesDispatchTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
Routes dispatcher test suite.
cherrypy.test.test_session module¶
-
class
cherrypy.test.test_session.
MemcachedSessionTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
pytestmark
= [Mark(name='usefixtures', args=('memcached_configured',), kwargs={}), Mark(name='skipif', args=(False,), kwargs={'reason': 'pytest-services helper does not work under Windows'})]¶
-
static
setup_server
()¶
-
-
class
cherrypy.test.test_session.
SessionTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
cherrypy.test.test_session.
memcached_configured
(memcached_instance, monkeypatch, memcached_client_present)[source]¶
cherrypy.test.test_sessionauthenticate module¶
cherrypy.test.test_states module¶
-
class
cherrypy.test.test_states.
ServerStateTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static
-
cherrypy.test.test_states.
test_safe_wait_INADDR_ANY
()[source]¶ Wait on INADDR_ANY should not raise IOError
In cases where the loopback interface does not exist, CherryPy cannot effectively determine if a port binding to INADDR_ANY was effected. In this situation, CherryPy should assume that it failed to detect the binding (not that the binding failed) and only warn that it could not verify it.
cherrypy.test.test_static module¶
-
class
cherrypy.test.test_static.
StaticTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
files_to_remove
= []¶
-
cherrypy.test.test_tools module¶
Test the various means of instantiating and invoking tools.
-
class
cherrypy.test.test_tools.
SessionAuthTest
(methodName='runTest')[source]¶ Bases:
unittest.case.TestCase
cherrypy.test.test_tutorials module¶
cherrypy.test.test_virtualhost module¶
cherrypy.test.test_wsgi_ns module¶
cherrypy.test.test_wsgi_unix_socket module¶
-
class
cherrypy.test.test_wsgi_unix_socket.
USocketHTTPConnection
(path)[source]¶ Bases:
http.client.HTTPConnection
HTTPConnection over a unix socket.
-
class
cherrypy.test.test_wsgi_unix_socket.
WSGI_UnixSocket_Test
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
Test basic behavior on a cherrypy wsgi server listening on a unix socket.
It exercises the config option server.socket_file.
-
HTTP_CONN
= <cherrypy.test.test_wsgi_unix_socket.USocketHTTPConnection object>¶
-
pytestmark
= [Mark(name='skipif', args=("sys.platform == 'win32'",), kwargs={})]¶
-
cherrypy.test.test_wsgi_vhost module¶
cherrypy.test.test_wsgiapps module¶
-
class
cherrypy.test.test_wsgiapps.
WSGIGraftTests
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
wsgi_output
= 'Hello, world!\nThis is a wsgi app running within CherryPy!'¶
-
cherrypy.test.test_xmlrpc module¶
-
class
cherrypy.test.test_xmlrpc.
XmlRpcTest
(methodName='runTest')[source]¶ Bases:
cherrypy.test.helper.CPWebCase
-
static
setup_server
()¶
-
static