userver: pytest_userver.plugins.config Namespace Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
pytest_userver.plugins.config Namespace Reference

Detailed Description

Work with the configuration files of the service in testsuite.

Functions

pathlib.Path service_config_path (pytestconfig, service_binary)
 Returns the path to service.yaml file set by command line --service-config option.
 
pathlib.Path db_dump_schema_path (service_binary, service_tmpdir)
 Runs the service binary with --dump-db-schema argument, dumps the 0_db_schema.sql file with database schema and returns path to it.
 
Optional[pathlib.Path] service_config_vars_path (pytestconfig)
 Returns the path to config_vars.yaml file set by command line --service-config-vars option.
 
Optional[pathlib.Path] service_secdist_path (pytestconfig)
 Returns the path to secure_data.json file set by command line --service-secdist option.
 
pathlib.Path config_fallback_path (pytestconfig)
 Returns the path to dynamic config fallback file set by command line --config-fallback option.
 
 service_tmpdir (service_binary, tmp_path_factory)
 Returns the path for temporary files.
 
pathlib.Path service_config_path_temp (service_tmpdir, service_config, service_config_yaml, service_config_vars)
 Dumps the contents of the service_config_yaml and service_config_vars into a static config for testsuite and returns the path to the config file.
 
dict service_config_yaml (_service_config_hooked)
 Returns the static config values after the USERVER_CONFIG_HOOKS were applied (if any).
 
dict service_config_vars (_service_config_hooked)
 Returns the static config variables (config_vars.yaml) values after the USERVER_CONFIG_HOOKS were applied (if any).
 
None _substitute_values (config, dict service_config_vars, service_env)
 
Callable[[Any, dict], Any] substitute_config_vars (service_env)
 A function that takes config_yaml, config_vars and applies all substitutions just like the service would.
 
dict service_config (service_config_yaml, service_config_vars, substitute_config_vars)
 Returns the static config values after the USERVER_CONFIG_HOOKS were applied (if any) and with all the '$', environment and fallback variables substituted.
 
_UserverConfig _original_service_config (service_config_path, service_config_vars_path)
 
_UserverConfig _service_config_hooked (daemon_scoped_mark, pytestconfig, request, _original_service_config)
 
Mapping[str, str] _service_config_substitution_vars (request, mockserver_info)
 
ServiceConfigPatch userver_config_substitutions (_service_config_substitution_vars)
 Replaces substitution vars in all strings within config_vars using string.Template.substitute.
 
ServiceConfigPatch userver_config_http_server (service_port, monitor_port)
 Returns a function that adjusts the static configuration file for testsuite.
 
List[str] allowed_url_prefixes_extra ()
 By default, userver HTTP client is only allowed to talk to mockserver when running in testsuite.
 
ServiceConfigPatch userver_config_http_client (mockserver_info, mockserver_ssl_info, allowed_url_prefixes_extra)
 Returns a function that adjusts the static configuration file for testsuite.
 
str userver_default_log_level ()
 Default log level to use in userver if no command line option was provided.
 
str userver_log_level (pytestconfig, userver_default_log_level)
 Returns –service-log-level value if provided, otherwise returns userver_default_log_level() value from fixture.
 
ServiceConfigPatch userver_config_logging (userver_log_level, _service_logfile_path)
 Returns a function that adjusts the static configuration file for testsuite.
 
ServiceConfigPatch userver_config_logging_otlp ()
 Returns a function that adjusts the static configuration file for testsuite.
 
ServiceConfigPatch userver_config_testsuite (pytestconfig, mockserver_info)
 Returns a function that adjusts the static configuration file for testsuite.
 
ServiceConfigPatch userver_config_secdist (service_secdist_path)
 Returns a function that adjusts the static configuration file for testsuite.
 
ServiceConfigPatch userver_config_testsuite_middleware (bool userver_testsuite_middleware_enabled)
 
bool userver_testsuite_middleware_enabled ()
 Whether testsuite middleware is enabled.
 

Variables

list USERVER_CONFIG_HOOKS
 Fixtures and functions in USERVER_CONFIG_HOOKS used to change the static config or config_vars.yaml.
 
 ServiceConfigPatch = Callable[[dict, dict], None]
 

Function Documentation

◆ _original_service_config()

_UserverConfig pytest_userver.plugins.config._original_service_config ( service_config_path,
service_config_vars_path )
protected

Definition at line 379 of file config.py.

◆ _service_config_hooked()

_UserverConfig pytest_userver.plugins.config._service_config_hooked ( daemon_scoped_mark,
pytestconfig,
request,
_original_service_config )
protected

Definition at line 399 of file config.py.

◆ _service_config_substitution_vars()

Mapping[str, str] pytest_userver.plugins.config._service_config_substitution_vars ( request,
mockserver_info )
protected

Definition at line 422 of file config.py.

◆ _substitute_values()

None pytest_userver.plugins.config._substitute_values ( config,
dict service_config_vars,
service_env )
protected

Definition at line 283 of file config.py.

◆ userver_config_testsuite_middleware()

ServiceConfigPatch pytest_userver.plugins.config.userver_config_testsuite_middleware ( bool userver_testsuite_middleware_enabled)

Definition at line 715 of file config.py.

◆ userver_testsuite_middleware_enabled()

bool pytest_userver.plugins.config.userver_testsuite_middleware_enabled ( )

Whether testsuite middleware is enabled.

Definition at line 735 of file config.py.

Variable Documentation

◆ ServiceConfigPatch

pytest_userver.plugins.config.ServiceConfigPatch = Callable[[dict, dict], None]

Definition at line 51 of file config.py.

◆ USERVER_CONFIG_HOOKS

list pytest_userver.plugins.config.USERVER_CONFIG_HOOKS

Fixtures and functions in USERVER_CONFIG_HOOKS used to change the static config or config_vars.yaml.

Functions and fixtures that are listed in the USERVER_CONFIG_HOOKS variable in your pytest-plugin are run before config is written to disk, so that the service, the pytest_userver.plugins.config.service_config_yaml and the pytest_userver.plugins.config.service_config_vars get the modified values.

Example of patching config :

Definition at line 40 of file config.py.