import importlib import os import pytest import tembo.exceptions import tembo.cli from tembo.cli.cli import _new_verify_name_exists, _new_get_config_scope def test_cli_page_is_saved_success(): pass def test_new_verify_name_exists_success(shared_datadir): # arrange os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "success") importlib.reload(tembo.cli) # act verified_name = _new_verify_name_exists("some_scope") # assert assert verified_name is None # cleanup del os.environ["TEMBO_CONFIG"] def test_new_verify_name_exists_scope_not_found(shared_datadir): # arrange os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "success") importlib.reload(tembo.cli) from tembo.cli.cli import _new_verify_name_exists # act with pytest.raises(tembo.exceptions.ScopeNotFound) as scope_not_found: _new_verify_name_exists("some_missing_scope") # assert assert ( str(scope_not_found.value) == "Command some_missing_scope not found in config.yml" ) # cleanup del os.environ["TEMBO_CONFIG"] def test_new_verify_name_exists_empty_config(shared_datadir): # arrange os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "empty") importlib.reload(tembo.cli) from tembo.cli.cli import _new_verify_name_exists # act with pytest.raises(tembo.exceptions.EmptyConfigYML) as empty_config_yml: _new_verify_name_exists("some_missing_scope") # assert assert ( str(empty_config_yml.value) == f'Config.yml found in {os.environ["TEMBO_CONFIG"]} is empty' ) # cleanup del os.environ["TEMBO_CONFIG"] def test_new_verify_name_exists_missing_config(shared_datadir): # arrange os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "missing") importlib.reload(tembo.cli) from tembo.cli.cli import _new_verify_name_exists # act with pytest.raises(tembo.exceptions.MissingConfigYML) as missing_config_yml: _new_verify_name_exists("some_missing_scope") # assert assert ( str(missing_config_yml.value) == f'No config.yml found in {os.environ["TEMBO_CONFIG"]}' ) # cleanup del os.environ["TEMBO_CONFIG"] def test_new_get_config_scope_success(shared_datadir): # arrange os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "optional_keys") importlib.reload(tembo.cli) # act config_scope = _new_get_config_scope("some_scope") # assert assert config_scope == { "name": "some_scope", "path": "some_scope", "filename": "{name}", "extension": "md", "example": None, "template_filename": None, } def test_new_get_config_scope_key_not_found(shared_datadir): # arrange # arrange os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "missing_keys") importlib.reload(tembo.cli) # act with pytest.raises( tembo.exceptions.MandatoryKeyNotFound ) as mandatory_key_not_found: config_scope = _new_get_config_scope("some_scope") # assert assert ( str(mandatory_key_not_found.value) == "Key 'filename' not found in config.yml" )