mirror of
https://github.com/dtomlinson91/tembo.git
synced 2025-12-22 07:35:45 +00:00
adding latest
This commit is contained in:
@@ -42,6 +42,11 @@ Documentation:
|
|||||||
Overwrite `__init__`, access them in pytest with `.value.$args`
|
Overwrite `__init__`, access them in pytest with `.value.$args`
|
||||||
Access them in a try,except with `raise $excpetion as $name; $name.$arg`
|
Access them in a try,except with `raise $excpetion as $name; $name.$arg`
|
||||||
|
|
||||||
|
☐ Document capturing stdout
|
||||||
|
Use `capsys`
|
||||||
|
`assert capsys.readouterr().out`
|
||||||
|
A new line may be inserted if using `click.echo()`
|
||||||
|
|
||||||
☐ Document using datadir with a module rather than a shared one. Link to tembo as an example.
|
☐ Document using datadir with a module rather than a shared one. Link to tembo as an example.
|
||||||
☐ Can prospector ignore tests dir? document this in the gist if so
|
☐ Can prospector ignore tests dir? document this in the gist if so
|
||||||
☐ Redo the documentation on a CLI, reorganise and inocropoate all the new tembo layouts
|
☐ Redo the documentation on a CLI, reorganise and inocropoate all the new tembo layouts
|
||||||
@@ -68,6 +73,8 @@ Functionality:
|
|||||||
☐ Update poetry
|
☐ Update poetry
|
||||||
☐ Build docs
|
☐ Build docs
|
||||||
☐ Document using Duty
|
☐ Document using Duty
|
||||||
|
☐ Duty for auto insert version from `poetry version`.
|
||||||
|
Need to decide what file to place `__version__` in.
|
||||||
|
|
||||||
Logging:
|
Logging:
|
||||||
☐ Make all internal tembo logs be debug
|
☐ Make all internal tembo logs be debug
|
||||||
|
|||||||
@@ -149,13 +149,12 @@ def _new_get_config_scope(scope: str) -> dict:
|
|||||||
|
|
||||||
def _new_show_example(example: bool, config_scope: dict) -> None:
|
def _new_show_example(example: bool, config_scope: dict) -> None:
|
||||||
if example:
|
if example:
|
||||||
tembo.cli.logger.info(
|
if isinstance(config_scope["example"], str):
|
||||||
"Example for 'tembo new %s': %s",
|
cli_message(
|
||||||
config_scope["name"],
|
f'Example for {config_scope["name"]}: {config_scope["example"]}'
|
||||||
config_scope["example"]
|
)
|
||||||
if isinstance(config_scope["example"], str)
|
else:
|
||||||
else "No example in config.yml",
|
cli_message("No example in config.yml")
|
||||||
)
|
|
||||||
raise SystemExit(0)
|
raise SystemExit(0)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,11 @@ import pytest
|
|||||||
|
|
||||||
import tembo.exceptions
|
import tembo.exceptions
|
||||||
import tembo.cli
|
import tembo.cli
|
||||||
from tembo.cli.cli import _new_verify_name_exists, _new_get_config_scope
|
from tembo.cli.cli import (
|
||||||
|
_new_verify_name_exists,
|
||||||
|
_new_get_config_scope,
|
||||||
|
_new_show_example,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_cli_page_is_saved_success():
|
def test_cli_page_is_saved_success():
|
||||||
@@ -107,7 +111,6 @@ def test_new_get_config_scope_success(shared_datadir):
|
|||||||
|
|
||||||
|
|
||||||
def test_new_get_config_scope_key_not_found(shared_datadir):
|
def test_new_get_config_scope_key_not_found(shared_datadir):
|
||||||
# arrange
|
|
||||||
# arrange
|
# arrange
|
||||||
os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "missing_keys")
|
os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / "missing_keys")
|
||||||
importlib.reload(tembo.cli)
|
importlib.reload(tembo.cli)
|
||||||
@@ -122,3 +125,25 @@ def test_new_get_config_scope_key_not_found(shared_datadir):
|
|||||||
assert (
|
assert (
|
||||||
str(mandatory_key_not_found.value) == "Key 'filename' not found in config.yml"
|
str(mandatory_key_not_found.value) == "Key 'filename' not found in config.yml"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"path,message",
|
||||||
|
[
|
||||||
|
("success", "[TEMBO] Example for some_scope: tembo new some_scope 🐘\n"),
|
||||||
|
("optional_keys", "[TEMBO] No example in config.yml 🐘\n"),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_new_show_example(path, message, shared_datadir, capsys):
|
||||||
|
# arrange
|
||||||
|
os.environ["TEMBO_CONFIG"] = str(shared_datadir / "config" / path)
|
||||||
|
importlib.reload(tembo.cli)
|
||||||
|
config_scope = _new_get_config_scope("some_scope")
|
||||||
|
|
||||||
|
# act
|
||||||
|
with pytest.raises(SystemExit) as system_exit:
|
||||||
|
_new_show_example(True, config_scope)
|
||||||
|
|
||||||
|
# assert
|
||||||
|
assert capsys.readouterr().out == message
|
||||||
|
assert system_exit.value.code == 0
|
||||||
|
|||||||
Reference in New Issue
Block a user