11# pylint:disable=unused-argument
22
33import os
4+ import traceback
45
56import pytest
7+ from click .testing import Result
68from pytest_simcore .helpers .monkeypatch_envs import load_dotenv , setenvs_from_dict
79from pytest_simcore .helpers .typing_env import EnvVarsDict
810from simcore_service_dynamic_scheduler ._meta import API_VERSION
1113from typer .testing import CliRunner
1214
1315
16+ def _format_cli_error (result : Result ) -> str :
17+ assert result .exception
18+ tb_message = "\n " .join (traceback .format_tb (result .exception .__traceback__ ))
19+ return f"Below exception was raised by the cli:\n { tb_message } "
20+
21+
1422def test_cli_help_and_version (cli_runner : CliRunner ):
1523 # simcore-service-dynamic-scheduler --help
1624 result = cli_runner .invoke (cli_main , "--help" )
17- assert result .exit_code == os .EX_OK , result . output
25+ assert result .exit_code == os .EX_OK , _format_cli_error ( result )
1826
1927 result = cli_runner .invoke (cli_main , "--version" )
20- assert result .exit_code == os .EX_OK , result . output
28+ assert result .exit_code == os .EX_OK , _format_cli_error ( result )
2129 assert result .stdout .strip () == API_VERSION
2230
2331
2432def test_echo_dotenv (cli_runner : CliRunner , monkeypatch : pytest .MonkeyPatch ):
2533 # simcore-service-dynamic-scheduler echo-dotenv
2634 result = cli_runner .invoke (cli_main , "echo-dotenv" )
27- assert result .exit_code == os .EX_OK , result . output
35+ assert result .exit_code == os .EX_OK , _format_cli_error ( result )
2836
2937 environs = load_dotenv (result .stdout )
3038
@@ -33,10 +41,25 @@ def test_echo_dotenv(cli_runner: CliRunner, monkeypatch: pytest.MonkeyPatch):
3341 ApplicationSettings .create_from_envs ()
3442
3543
36- def test_list_settings (cli_runner : CliRunner , app_environment : EnvVarsDict ):
37- # simcore-service-dynamic-scheduler settings --show-secrets --as-json
38- result = cli_runner .invoke (cli_main , ["settings" , "--show-secrets" , "--as-json" ])
39- assert result .exit_code == os .EX_OK , result .output
44+ def test_list_settings (
45+ cli_runner : CliRunner , app_environment : EnvVarsDict , monkeypatch : pytest .MonkeyPatch
46+ ):
47+ with monkeypatch .context () as patch :
48+ setenvs_from_dict (
49+ patch ,
50+ {
51+ ** app_environment ,
52+ "DYNAMIC_SCHEDULER_TRACING" : "{}" ,
53+ "TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT" : "http://replace-with-opentelemetry-collector" ,
54+ "TRACING_OPENTELEMETRY_COLLECTOR_PORT" : "4318" ,
55+ },
56+ )
57+
58+ # simcore-service-dynamic-scheduler settings --show-secrets --as-json
59+ result = cli_runner .invoke (
60+ cli_main , ["settings" , "--show-secrets" , "--as-json" ]
61+ )
62+ assert result .exit_code == os .EX_OK , _format_cli_error (result )
4063
4164 print (result .output )
4265 settings = ApplicationSettings (result .output )
0 commit comments