#include <userver/server/handlers/tests_control.hpp>
Handler that allows to control the behavior of server from tests, and functional tests with testsuite in particular.
It is highly recommended to disable this handle in production via the load-enabled: false option.
The component must be configured in service config.
Aside from common handler options component has the following options:
Name | Description | Default value |
---|---|---|
testpoint-url | an URL that should be notified in the TESTPOINT_CALLBACK and TESTPOINT_CALLBACK_NONCORO macros | - |
skip-unregistered-testpoints | do not send testpoints data for paths that were not registered by testpoint-url | false |
testpoint-timeout | timeout to use while working with testpoint-url | 1s |
tests-control:
skip-unregistered-testpoints: true
testpoint-timeout: 10s
testpoint-url: https://localhost:7891/testpoint
# Some options from server::handlers::HttpHandlerBase
path: /tests/{action}
method: POST
task_processor: main-task-processor
Main user of the scheme is the pytest_userver.client.Client python class. In particular:
Definition at line 64 of file tests_control.hpp.
Public Member Functions | |
TestsControl (const components::ComponentConfig &config, const components::ComponentContext &component_context) | |
formats::json::Value | HandleRequestJsonThrow (const http::HttpRequest &request, const formats::json::Value &request_body, request::RequestContext &context) const override |
![]() | |
HttpHandlerJsonBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
std::string | HandleRequestThrow (const http::HttpRequest &request, request::RequestContext &context) const final |
![]() | |
HttpHandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
void | HandleRequest (request::RequestBase &request, request::RequestContext &context) const override |
void | ReportMalformedRequest (request::RequestBase &request) const final |
virtual const std::string & | HandlerName () const |
const std::vector< http::HttpMethod > & | GetAllowedMethods () const |
virtual logging::Level | GetLogLevelForResponseStatus (http::HttpStatus status) const |
std::string | GetResponseDataForLoggingChecked (const http::HttpRequest &request, request::RequestContext &context, const std::string &response_data) const |
void | HandleCustomHandlerException (const http::HttpRequest &request, const CustomHandlerException &ex) const |
void | HandleUnknownException (const http::HttpRequest &request, const std::exception &ex) const |
void | LogUnknownException (const std::exception &ex) const |
Helper function to log an unknown exception. | |
const std::optional< logging::Level > & | GetLogLevel () const |
Returns the default log level for the handler. | |
![]() | |
HandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
bool | IsMonitor () const |
Returns whether this is a monitoring handler. | |
const HandlerConfig & | GetConfig () const |
Returns handler config. | |
![]() | |
LoggableComponentBase (const ComponentConfig &, const ComponentContext &) | |
LoggableComponentBase (LoggableComponentBase &&)=delete | |
LoggableComponentBase (const LoggableComponentBase &)=delete | |
~LoggableComponentBase () override=default | |
ComponentHealth | GetComponentHealth () const override |
void | OnLoadingCancelled () override |
void | OnAllComponentsLoaded () override |
void | OnAllComponentsAreStopping () override |
Static Public Member Functions | |
static yaml_config::Schema | GetStaticConfigSchema () |
![]() | |
static yaml_config::Schema | GetStaticConfigSchema () |
![]() | |
static yaml_config::Schema | GetStaticConfigSchema () |
![]() | |
static yaml_config::Schema | GetStaticConfigSchema () |
![]() | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Attributes | |
static constexpr std::string_view | kName = "tests-control" |
The default name of server::handlers::TestsControl. | |
Additional Inherited Members | |
![]() | |
using | HandlerErrorCode = handlers::HandlerErrorCode |
using | InternalMessage = handlers::InternalMessage |
using | ExternalBody = handlers::ExternalBody |
using | ClientError = handlers::ClientError |
using | InternalServerError = handlers::InternalServerError |
![]() | |
void | ParseRequestData (const http::HttpRequest &request, request::RequestContext &context) const override |
![]() | |
void | ThrowUnsupportedHttpMethod (const http::HttpRequest &request) const |
virtual void | OnRequestCompleteThrow (const http::HttpRequest &, request::RequestContext &) const |
virtual void | HandleStreamRequest (const server::http::HttpRequest &, server::request::RequestContext &, server::http::ResponseBodyStream &) const |
virtual bool | IsStreamed () const |
virtual bool | IsMethodStatisticIncluded () const |
virtual bool | NeedCheckAuth () const |
virtual std::string | GetRequestBodyForLogging (const http::HttpRequest &request, request::RequestContext &context, const std::string &request_body) const |
Override it if you need a custom request body logging. | |
virtual std::string | GetResponseDataForLogging (const http::HttpRequest &request, request::RequestContext &context, const std::string &response_data) const |
Override it if you need a custom response data logging. | |
virtual std::string | GetMetaType (const http::HttpRequest &) const |
![]() | |
static const formats::json::Value * | GetRequestJson (const request::RequestContext &context) |
static const formats::json::Value * | GetResponseJson (const request::RequestContext &context) |
|
overridevirtual |
Implements server::handlers::HttpHandlerJsonBase.