testplan.testing.multitest.driver.http package¶
Submodules¶
testplan.testing.multitest.driver.http.client module¶
HTTPClient Driver.
-
class
testplan.testing.multitest.driver.http.client.
HTTPClient
(name: str, host: Union[str, testplan.common.utils.context.ContextValue], port: Union[int, testplan.common.utils.context.ContextValue] = None, protocol: str = 'http', timeout: int = 5, interval: float = 0.01, **options)[source]¶ Bases:
testplan.testing.multitest.driver.base.Driver
Driver for a client that can connect to a server and send/receive messages using HTTP protocol.
{emphasized_members_docs}
Parameters: - name (
str
) – Name of HTTPClient. - host (
str
orContextValue
) – Hostname to connect to. - port (
int
orContextValue
) – Port to connect to. If None URL won’t specify a port. - protocol (
str
) – Use HTTP or HTTPS protocol. - timeout (
int
) – Number of seconds to wait for a request. - interval (
int
) – Number of seconds to sleep whilst trying to receive a message.
Also inherits all
Driver
options.-
CONFIG
¶ alias of
HTTPClientConfig
-
STATUS
¶
-
abort
()¶ Default abort policy. First abort all dependencies and then itself.
-
abort_dependencies
()¶ Returns an empty generator.
-
aborted
¶ Returns if entity was aborted.
-
active
¶ Entity not aborting/aborted.
-
async_start
¶ Overrides the default async_start value in config.
-
auto_start
¶ If False, the resource will not be automatically started by its parent (generally, a Environment object) while the parent is starting.
-
cfg
¶ Configuration object.
-
context
¶ Key/value pair information of a Resource.
-
context_input
(exclude: list = None) → Dict[str, Any]¶ All attr of self in a dict for context resolution
-
define_runpath
()¶ Define runpath directory based on parent object and configuration.
-
delete
(api, **kwargs)[source]¶ Send DELETE request.
Parameters: - api (
str
) – API to send request to. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
errpath
¶ Path for stderr file regexp matching.
-
extract_driver_metadata
() → testplan.testing.multitest.driver.base.DriverMetadata¶ Extracts driver metadata as described in the extractor function.
Returns: driver metadata
-
extract_values
() → Union[bool, testplan.common.entity.base.FailedAction]¶ Extract matching values from input regex configuration options.
-
failover
() → None¶ API to create the failover resource, to be implemented in derived class
-
fetch_error_log
() → List[str]¶ Fetch error message from the log files of driver, at first we can try self.errpath, if it does not exist, try self.logpath. Typically, several lines from the tail of file will be selected.
Returns: text from log file
-
classmethod
filter_locals
(local_vars)¶ Filter out init params of None value, they will take default value defined in its ConfigOption object; also filter out special vars that are not init params from local_vars.
Parameters: local_vars –
-
force_started
()¶ Change the status to STARTED (e.g. exception raised).
-
force_stopped
()¶ Change the status to STOPPED (e.g. exception raised).
-
get
(api, params=None, **kwargs)[source]¶ Send GET request.
Parameters: - api (
str
) – API to send request to. - params (
dict
) – Parameters to append to HTTP request after ?. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
head
(api, **kwargs)[source]¶ Send HEAD request.ZMQClient
Parameters: - api (
str
) – API to send request to. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
host
¶ Target host name.
-
install_files
() → None¶ Installs the files specified in the install_files parameter at the install target.
-
is_alive
¶ Called to periodically poll the resource health. Default implementation assumes the resource is always healthy.
-
logger
¶ logger object
-
logpath
¶ Path for log regexp matching.
-
make_runpath_dirs
()¶ Creates runpath related directories.
-
name
¶ Driver name.
-
options
(api, **kwargs)[source]¶ Send OPTIONS request.
Parameters: - api (
str
) – API to send request to. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
outpath
¶ Path for stdout file regexp matching.
-
patch
(api, data=None, **kwargs)[source]¶ Send PATCH request.
Parameters: - api (
str
) – API to send request to. - data (
dict
) – Dictionary to send in the body of the request. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
pause
()¶ Pauses entity execution.
-
pausing
()¶ Pause the resource.
-
pending_work
()¶ Resource has pending work.
-
port
¶ Client port number assigned.
-
post
(api, data=None, json=None, **kwargs)[source]¶ Send POST request.
Parameters: - api (
str
) – API to send request to. - data (
dict
) – Dictionary to send in the body of the request. - json (
dict
) – JSON data to send in the body of the request. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
post_start
()¶ Steps to be executed right after resource is started.
-
post_stop
()¶ Steps to be executed right after resource is stopped.
-
pre_start
() → None¶ Steps to be executed right before resource starts.
-
pre_stop
()¶ Steps to be executed right before resource stops.
-
put
(api, data=None, **kwargs)[source]¶ Send PUT request.
Parameters: - api (
str
) – API to send request to. - data (
dict
) – Dictionary to send in the body of the request. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- api (
-
receive
(timeout=None)[source]¶ Wait to receive a response.
Parameters: timeout ( int
) – Number of seconds to wait for a response, overrides timeout from init.Returns: A request response or None
Return type: requests.models.Response
orNoneType
-
register_failover
(klass: testplan.common.entity.base.Entity, params: dict) → None¶ Register a failover class to instantiate if resource start fails.
Parameters: - klass – failover class
- params – parameters for failover class __init__ method
-
report
¶ A handle to access the report via recursive parent
-
restart
()¶ Stop and start the resource.
-
resume
()¶ Resumes entity execution.
-
resuming
()¶ Resume the resource.
-
runpath
¶ Path to be used for temp/output files by entity.
-
scratch
¶ Path to be used for temp files by entity.
-
send
(method, api, **kwargs)[source]¶ Send a non blocking HTTP request.
Parameters: - method (
str
) – HTTP method to be used in request (e.g. GET, POST etc.). - api (
str
) – API to send request to. - kwargs (Depends on the argument.) – Optional arguments for the request, look at the requests modules docs for these arguments.
- method (
-
start
()¶ Triggers the start logic of a Resource by executing :py:meth: Resource.starting <testplan.common.entity.base.Resource.starting> method.
-
started_check
() → Union[bool, testplan.common.entity.base.FailedAction]¶ Predicate indicating whether driver has fully started.
Default implementation tests whether certain pattern exists in driver loggings, always returns True if no pattern is required.
-
started_check_interval
¶ Driver started check interval. In practice this value is lower-bounded by 0.1 seconds.
-
status
¶ Status object.
-
stop
()¶ Triggers the stop logic of a Resource by executing :py:meth: Resource.stopping <testplan.common.entity.base.Resource.stopping> method.
-
stopped_check
() → Union[bool, testplan.common.entity.base.FailedAction]¶ Predicate indicating whether driver has fully stopped.
Default implementation immediately returns True.
-
stopped_check_interval
¶ Driver stopped check interval.
-
timer
¶
-
uid
() → str¶ Driver uid.
-
wait
(target_status, timeout=None)¶ Wait until objects status becomes target status.
Parameters: - target_status (
str
) – expected status - timeout (
int
orNoneType
) – timeout in seconds
- target_status (
- name (
-
class
testplan.testing.multitest.driver.http.client.
HTTPClientConfig
(**options)[source]¶ Bases:
testplan.testing.multitest.driver.base.DriverConfig
Configuration object for
HTTPClient
driver.-
classmethod
build_schema
()¶ Build a validation schema using the config options defined in this class and its parent classes.
-
static
default_metadata_extractor
(driver) → testplan.testing.multitest.driver.base.DriverMetadata¶
-
denormalize
()¶ Create new config object that inherits all explicit attributes from its parents as well.
-
get_local
(name, default=None)¶ Returns a local config setting (not from container)
-
ignore_extra_keys
= False¶
-
parent
¶ Returns the parent configuration.
-
set_local
(name, value)¶ set without any check
-
classmethod
testplan.testing.multitest.driver.http.server module¶
HTTPServer Driver.
-
class
testplan.testing.multitest.driver.http.server.
HTTPRequestHandler
(request, client_address, server)[source]¶ Bases:
http.server.BaseHTTPRequestHandler
Responds to any HTTP request with response in queue. If empty send an error message in response.
-
MessageClass
¶ alias of
http.client.HTTPMessage
-
address_string
()¶ Return the client address.
-
date_time_string
(timestamp=None)¶ Return the current date and time formatted for a message header.
-
default_request_version
= 'HTTP/0.9'¶
-
disable_nagle_algorithm
= False¶
-
end_headers
()¶ Send the blank line ending the MIME headers.
-
error_content_type
= 'text/html;charset=utf-8'¶
-
error_message_format
= '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n <head>\n <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\n <title>Error response</title>\n </head>\n <body>\n <h1>Error response</h1>\n <p>Error code: %(code)d</p>\n <p>Message: %(message)s.</p>\n <p>Error code explanation: %(code)s - %(explain)s.</p>\n </body>\n</html>\n'¶
-
finish
()¶
-
flush_headers
()¶
-
get_response
(request: testplan.testing.multitest.driver.http.server.ReceivedRequest) → testplan.testing.multitest.driver.http.server.HTTPResponse[source]¶ Parse the request and return the response.
Parameters: request – The request path. Returns: Http response.
-
handle
()¶ Handle multiple requests if necessary.
-
handle_expect_100
()¶ Decide what to do with an “Expect: 100-continue” header.
If the client is expecting a 100 Continue response, we must respond with either a 100 Continue or a final response before waiting for the request body. The default is to always respond with a 100 Continue. You can behave differently (for example, reject unauthorized requests) by overriding this method.
This method should either return True (possibly after sending a 100 Continue response) or send an error response and return False.
-
handle_one_request
()¶ Handle a single HTTP request.
You normally don’t need to override this method; see the class __doc__ string for information on how to handle specific HTTP commands such as GET and POST.
-
log_date_time_string
()¶ Return the current time formatted for logging.
-
log_error
(format, *args)¶ Log an error.
This is called when a request cannot be fulfilled. By default it passes the message on to log_message().
Arguments are the same as for log_message().
XXX This should go to the separate error log.
-
log_request
(code='-', size='-')¶ Log an accepted request.
This is called by send_response().
-
monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']¶
-
parse_request
()¶ Parse a request (internal).
The request should be stored in self.raw_requestline; the results are in self.command, self.path, self.request_version and self.headers.
Return True for success, False for failure; on failure, any relevant error response has already been sent back.
-
protocol_version
= 'HTTP/1.0'¶
-
rbufsize
= -1¶
-
responses
= {<HTTPStatus.CONTINUE: 100>: ('Continue', 'Request received, please continue'), <HTTPStatus.SWITCHING_PROTOCOLS: 101>: ('Switching Protocols', 'Switching to new protocol; obey Upgrade header'), <HTTPStatus.PROCESSING: 102>: ('Processing', ''), <HTTPStatus.OK: 200>: ('OK', 'Request fulfilled, document follows'), <HTTPStatus.CREATED: 201>: ('Created', 'Document created, URL follows'), <HTTPStatus.ACCEPTED: 202>: ('Accepted', 'Request accepted, processing continues off-line'), <HTTPStatus.NON_AUTHORITATIVE_INFORMATION: 203>: ('Non-Authoritative Information', 'Request fulfilled from cache'), <HTTPStatus.NO_CONTENT: 204>: ('No Content', 'Request fulfilled, nothing follows'), <HTTPStatus.RESET_CONTENT: 205>: ('Reset Content', 'Clear input form for further input'), <HTTPStatus.PARTIAL_CONTENT: 206>: ('Partial Content', 'Partial content follows'), <HTTPStatus.MULTI_STATUS: 207>: ('Multi-Status', ''), <HTTPStatus.ALREADY_REPORTED: 208>: ('Already Reported', ''), <HTTPStatus.IM_USED: 226>: ('IM Used', ''), <HTTPStatus.MULTIPLE_CHOICES: 300>: ('Multiple Choices', 'Object has several resources -- see URI list'), <HTTPStatus.MOVED_PERMANENTLY: 301>: ('Moved Permanently', 'Object moved permanently -- see URI list'), <HTTPStatus.FOUND: 302>: ('Found', 'Object moved temporarily -- see URI list'), <HTTPStatus.SEE_OTHER: 303>: ('See Other', 'Object moved -- see Method and URL list'), <HTTPStatus.NOT_MODIFIED: 304>: ('Not Modified', 'Document has not changed since given time'), <HTTPStatus.USE_PROXY: 305>: ('Use Proxy', 'You must use proxy specified in Location to access this resource'), <HTTPStatus.TEMPORARY_REDIRECT: 307>: ('Temporary Redirect', 'Object moved temporarily -- see URI list'), <HTTPStatus.PERMANENT_REDIRECT: 308>: ('Permanent Redirect', 'Object moved permanently -- see URI list'), <HTTPStatus.BAD_REQUEST: 400>: ('Bad Request', 'Bad request syntax or unsupported method'), <HTTPStatus.UNAUTHORIZED: 401>: ('Unauthorized', 'No permission -- see authorization schemes'), <HTTPStatus.PAYMENT_REQUIRED: 402>: ('Payment Required', 'No payment -- see charging schemes'), <HTTPStatus.FORBIDDEN: 403>: ('Forbidden', 'Request forbidden -- authorization will not help'), <HTTPStatus.NOT_FOUND: 404>: ('Not Found', 'Nothing matches the given URI'), <HTTPStatus.METHOD_NOT_ALLOWED: 405>: ('Method Not Allowed', 'Specified method is invalid for this resource'), <HTTPStatus.NOT_ACCEPTABLE: 406>: ('Not Acceptable', 'URI not available in preferred format'), <HTTPStatus.PROXY_AUTHENTICATION_REQUIRED: 407>: ('Proxy Authentication Required', 'You must authenticate with this proxy before proceeding'), <HTTPStatus.REQUEST_TIMEOUT: 408>: ('Request Timeout', 'Request timed out; try again later'), <HTTPStatus.CONFLICT: 409>: ('Conflict', 'Request conflict'), <HTTPStatus.GONE: 410>: ('Gone', 'URI no longer exists and has been permanently removed'), <HTTPStatus.LENGTH_REQUIRED: 411>: ('Length Required', 'Client must specify Content-Length'), <HTTPStatus.PRECONDITION_FAILED: 412>: ('Precondition Failed', 'Precondition in headers is false'), <HTTPStatus.REQUEST_ENTITY_TOO_LARGE: 413>: ('Request Entity Too Large', 'Entity is too large'), <HTTPStatus.REQUEST_URI_TOO_LONG: 414>: ('Request-URI Too Long', 'URI is too long'), <HTTPStatus.UNSUPPORTED_MEDIA_TYPE: 415>: ('Unsupported Media Type', 'Entity body in unsupported format'), <HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE: 416>: ('Requested Range Not Satisfiable', 'Cannot satisfy request range'), <HTTPStatus.EXPECTATION_FAILED: 417>: ('Expectation Failed', 'Expect condition could not be satisfied'), <HTTPStatus.MISDIRECTED_REQUEST: 421>: ('Misdirected Request', 'Server is not able to produce a response'), <HTTPStatus.UNPROCESSABLE_ENTITY: 422>: ('Unprocessable Entity', ''), <HTTPStatus.LOCKED: 423>: ('Locked', ''), <HTTPStatus.FAILED_DEPENDENCY: 424>: ('Failed Dependency', ''), <HTTPStatus.UPGRADE_REQUIRED: 426>: ('Upgrade Required', ''), <HTTPStatus.PRECONDITION_REQUIRED: 428>: ('Precondition Required', 'The origin server requires the request to be conditional'), <HTTPStatus.TOO_MANY_REQUESTS: 429>: ('Too Many Requests', 'The user has sent too many requests in a given amount of time ("rate limiting")'), <HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE: 431>: ('Request Header Fields Too Large', 'The server is unwilling to process the request because its header fields are too large'), <HTTPStatus.INTERNAL_SERVER_ERROR: 500>: ('Internal Server Error', 'Server got itself in trouble'), <HTTPStatus.NOT_IMPLEMENTED: 501>: ('Not Implemented', 'Server does not support this operation'), <HTTPStatus.BAD_GATEWAY: 502>: ('Bad Gateway', 'Invalid responses from another server/proxy'), <HTTPStatus.SERVICE_UNAVAILABLE: 503>: ('Service Unavailable', 'The server cannot process the request due to a high load'), <HTTPStatus.GATEWAY_TIMEOUT: 504>: ('Gateway Timeout', 'The gateway server did not receive a timely response'), <HTTPStatus.HTTP_VERSION_NOT_SUPPORTED: 505>: ('HTTP Version Not Supported', 'Cannot fulfill request'), <HTTPStatus.VARIANT_ALSO_NEGOTIATES: 506>: ('Variant Also Negotiates', ''), <HTTPStatus.INSUFFICIENT_STORAGE: 507>: ('Insufficient Storage', ''), <HTTPStatus.LOOP_DETECTED: 508>: ('Loop Detected', ''), <HTTPStatus.NOT_EXTENDED: 510>: ('Not Extended', ''), <HTTPStatus.NETWORK_AUTHENTICATION_REQUIRED: 511>: ('Network Authentication Required', 'The client needs to authenticate to gain network access')}¶
-
send_error
(code, message=None, explain=None)¶ Send and log an error reply.
Arguments are * code: an HTTP error code
3 digits- message: a simple optional 1 line reason phrase.
- *( HTAB / SP / VCHAR / %x80-FF ) defaults to short entry matching the response code
- explain: a detailed message defaults to the long entry
- matching the response code.
This sends an error response (so it must be called before any output has been generated), logs the error, and finally sends a piece of HTML explaining the error to the user.
-
send_header
(keyword, value)¶ Send a MIME header to the headers buffer.
-
send_response
(code, message=None)¶ Add the response header to the headers buffer and log the response code.
Also send two standard headers with the server software version and the current date.
-
send_response_only
(code, message=None)¶ Send the response header only.
-
server_version
= 'BaseHTTP/0.6'¶
-
setup
()¶
-
sys_version
= 'Python/3.7.17'¶
-
timeout
= None¶
-
version_string
()¶ Return the server software version string.
-
wbufsize
= 0¶
-
weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']¶
-
-
class
testplan.testing.multitest.driver.http.server.
HTTPResponse
(status_code: int = None, headers: dict = None, content: list = None)[source]¶ Bases:
object
HTTPResponse containing the status code, headers and content.
-
class
testplan.testing.multitest.driver.http.server.
HTTPServer
(name, host: str = 'localhost', port: int = 0, request_handler=<class 'testplan.testing.multitest.driver.http.server.HTTPRequestHandler'>, handler_attributes=None, timeout=5, interval=0.01, **options)[source]¶ Bases:
testplan.testing.multitest.driver.base.Driver
Driver for a server that can accept connection and send/receive messages using HTTP protocol.
{emphasized_members_docs}
Parameters: - name (
str
) – Name of HTTPServer. - host (
str
orContextValue
) – Hostname to connect to. - port (
str
orContextValue
) – Port to connect to. - request_handler (subclass of
http.server.BaseHTTPRequestHandler
) – Handles requests and responses for the server. - handler_attributes (
dict
) – Dictionary of attributes to be accessed from the request_handler. - timeout (
int
) – Number of seconds to wait for a response from the queue in the request_handler. - interval (
int
) – Time to wait between each attempt to get a response.
Also inherits all
Driver
options.-
CONFIG
¶ alias of
HTTPServerConfig
-
STATUS
¶
-
abort
()¶ Default abort policy. First abort all dependencies and then itself.
-
abort_dependencies
()¶ Returns an empty generator.
-
aborted
¶ Returns if entity was aborted.
-
active
¶ Entity not aborting/aborted.
-
async_start
¶ Overrides the default async_start value in config.
-
auto_start
¶ If False, the resource will not be automatically started by its parent (generally, a Environment object) while the parent is starting.
-
cfg
¶ Configuration object.
-
context
¶ Key/value pair information of a Resource.
-
context_input
(exclude: list = None) → Dict[str, Any]¶ All attr of self in a dict for context resolution
-
define_runpath
()¶ Define runpath directory based on parent object and configuration.
-
errpath
¶ Path for stderr file regexp matching.
-
extract_driver_metadata
() → testplan.testing.multitest.driver.base.DriverMetadata¶ Extracts driver metadata as described in the extractor function.
Returns: driver metadata
-
extract_values
() → Union[bool, testplan.common.entity.base.FailedAction]¶ Extract matching values from input regex configuration options.
-
failover
() → None¶ API to create the failover resource, to be implemented in derived class
-
fetch_error_log
() → List[str]¶ Fetch error message from the log files of driver, at first we can try self.errpath, if it does not exist, try self.logpath. Typically, several lines from the tail of file will be selected.
Returns: text from log file
-
classmethod
filter_locals
(local_vars)¶ Filter out init params of None value, they will take default value defined in its ConfigOption object; also filter out special vars that are not init params from local_vars.
Parameters: local_vars –
-
force_started
()¶ Change the status to STARTED (e.g. exception raised).
-
force_stopped
()¶ Change the status to STOPPED (e.g. exception raised).
-
get_full_request
() → Optional[testplan.testing.multitest.driver.http.server.ReceivedRequest][source]¶ Get a request sent to the HTTPServer, if the requests queue is empty return None.
Returns: A request from the queue or None
-
get_request
() → Optional[str][source]¶ Get a request sent to the HTTPServer, if the requests queue is empty return None.
Returns: A request from the queue or None
-
host
¶ Host name.
-
install_files
() → None¶ Installs the files specified in the install_files parameter at the install target.
-
is_alive
¶ Called to periodically poll the resource health. Default implementation assumes the resource is always healthy.
-
logger
¶ logger object
-
logpath
¶ Path for log regexp matching.
-
make_runpath_dirs
()¶ Creates runpath related directories.
-
name
¶ Driver name.
-
outpath
¶ Path for stdout file regexp matching.
-
pause
()¶ Pauses entity execution.
-
pausing
()¶ Pause the resource.
-
pending_work
()¶ Resource has pending work.
-
port
¶ Port number assigned.
-
post_start
()¶ Steps to be executed right after resource is started.
-
post_stop
()¶ Steps to be executed right after resource is stopped.
-
pre_start
() → None¶ Steps to be executed right before resource starts.
-
pre_stop
()¶ Steps to be executed right before resource stops.
-
queue_response
(response)[source]¶ Put an HTTPResponse on to the end of the response queue.
Parameters: response ( HTTPResponse
) – A response to be sent.
-
receive
(timeout: int = None) → Optional[testplan.testing.multitest.driver.http.server.ReceivedRequest][source]¶ Wait to receive a request.
Parameters: timeout – Number of seconds to wait for a request, overrides timeout from init. Returns: A request or None
-
register_failover
(klass: testplan.common.entity.base.Entity, params: dict) → None¶ Register a failover class to instantiate if resource start fails.
Parameters: - klass – failover class
- params – parameters for failover class __init__ method
-
report
¶ A handle to access the report via recursive parent
-
respond
(response)[source]¶ Put an HTTPResponse on to the end of the response queue.
Parameters: response ( HTTPResponse
) – A response to be sent.
-
restart
()¶ Stop and start the resource.
-
resume
()¶ Resumes entity execution.
-
resuming
()¶ Resume the resource.
-
runpath
¶ Path to be used for temp/output files by entity.
-
scratch
¶ Path to be used for temp files by entity.
-
start
()¶ Triggers the start logic of a Resource by executing :py:meth: Resource.starting <testplan.common.entity.base.Resource.starting> method.
-
started_check
() → Union[bool, testplan.common.entity.base.FailedAction]¶ Predicate indicating whether driver has fully started.
Default implementation tests whether certain pattern exists in driver loggings, always returns True if no pattern is required.
-
started_check_interval
¶ Driver started check interval. In practice this value is lower-bounded by 0.1 seconds.
-
status
¶ Status object.
-
stop
()¶ Triggers the stop logic of a Resource by executing :py:meth: Resource.stopping <testplan.common.entity.base.Resource.stopping> method.
-
stopped_check
() → Union[bool, testplan.common.entity.base.FailedAction]¶ Predicate indicating whether driver has fully stopped.
Default implementation immediately returns True.
-
stopped_check_interval
¶ Driver stopped check interval.
-
timer
¶
-
uid
() → str¶ Driver uid.
-
wait
(target_status, timeout=None)¶ Wait until objects status becomes target status.
Parameters: - target_status (
str
) – expected status - timeout (
int
orNoneType
) – timeout in seconds
- target_status (
- name (
-
class
testplan.testing.multitest.driver.http.server.
HTTPServerConfig
(**options)[source]¶ Bases:
testplan.testing.multitest.driver.base.DriverConfig
Configuration object for
HTTPServer
driver.-
classmethod
build_schema
()¶ Build a validation schema using the config options defined in this class and its parent classes.
-
static
default_metadata_extractor
(driver) → testplan.testing.multitest.driver.base.DriverMetadata¶
-
denormalize
()¶ Create new config object that inherits all explicit attributes from its parents as well.
-
get_local
(name, default=None)¶ Returns a local config setting (not from container)
-
ignore_extra_keys
= False¶
-
parent
¶ Returns the parent configuration.
-
set_local
(name, value)¶ set without any check
-
classmethod
-
class
testplan.testing.multitest.driver.http.server.
ReceivedRequest
(method: str, path_url: str, headers: dict, raw_data: bytes, raw_requestline: bytes, requestline: str, request_version: str)[source]¶ Bases:
object
Stores information of requests received by the HTTP Server.
-
content_type
¶ Returns the request’s content type
:return Content type header or None
-
json
¶ Returns the request’s data in JSON format if exists
:return Request’s data in JSON format or None
-
Module contents¶
HTTP communication protocol drivers.