Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import pytest

from memori._cli import Cli
from memori._config import Config


# A mock config object for instantiation
@pytest.fixture
def mock_config():
config = Config()
config.version = "3.1.2"
return config


def test_cli_banner_prints_memori(capsys, mock_config):
cli = Cli(config=mock_config)
cli.banner()
captured = capsys.readouterr()
assert f"v{mock_config.version}" in captured.out
assert "perfectam memoriam" in captured.out
assert "memorilabs.ai" in captured.out


def test_cli_newline_prints_empty_line(capsys, mock_config):
cli = Cli(config=mock_config)
cli.newline()
captured = capsys.readouterr()
assert captured.out == "\n"


def test_cli_notice_prints_message_with_prefix(capsys, mock_config):
cli = Cli(config=mock_config)
cli.notice("Hello World")
captured = capsys.readouterr()
assert captured.out == "+ Hello World\n"


def test_cli_notice_prints_message_with_indent(capsys, mock_config):
cli = Cli(config=mock_config)
cli.notice("Indented message", ident=1)
captured = capsys.readouterr()
assert captured.out == " Indented message\n"


def test_cli_print_prints_message(capsys, mock_config):
cli = Cli(config=mock_config)
cli.print("Raw message")
captured = capsys.readouterr()
assert captured.out == "Raw message\n"