13class TestsuiteEnvironmentPlugin:
19 def ensure_started(self, service_name, **kwargs):
21 self._env.ensure_started(service_name, **kwargs)
23 def pytest_sessionstart(self, session):
24 start_environment = session.config.option.start_environment
25 if start_environment ==
'no':
27 if hasattr(session.config,
'workerinput'):
28 worker_id = session.config.workerinput[
'workerid']
29 elif session.config.pluginmanager.getplugin(
'dsession'):
32 worker_id = control.DEFAULT_WORKER_ID
34 config = control.load_environment_config(
35 env_dir=session.config.option.env_dir,
37 reuse_services=start_environment ==
'auto',
38 verbose=session.config.option.verbose,
42 def register_service(service_name, factory=None):
43 def decorator(factory):
44 self._env.register_service(service_name, factory)
48 return decorator(factory)
50 session.config.pluginmanager.hook.pytest_service_register(
51 register_service=register_service,
54 def pytest_sessionfinish(self, session):
58 def pytest_addhooks(self, pluginmanager):
59 pluginmanager.add_hookspecs(Hookspec)
61 def pytest_report_header(self, config):
64 if self._env.config.reuse_services:
69 f
'testsuite env: {kind}, dir: {self._env.config.env_dir}',
72 headers.append(
'testsuite env: external')