70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
"""Tests for _model_alias and PromptState.label in session_state."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from opensquilla.cli.repl.session_state import PromptState, _model_alias
|
|
|
|
|
|
def test_alias_none_returns_ellipsis() -> None:
|
|
assert _model_alias(None) == "…"
|
|
|
|
|
|
def test_alias_empty_string_returns_ellipsis() -> None:
|
|
assert _model_alias("") == "…"
|
|
|
|
|
|
def test_alias_with_slash_returns_last_segment() -> None:
|
|
# "deepseek-v4-flash-20260423" is 26 chars — under 28, no ellipsis
|
|
result = _model_alias("deepseek/deepseek-v4-flash-20260423")
|
|
assert result == "deepseek-v4-flash-20260423"
|
|
assert len(result) == 26
|
|
|
|
|
|
def test_alias_long_segment_is_middle_ellipsized() -> None:
|
|
# Build a 40-char tail segment
|
|
tail = "a" * 20 + "b" * 20 # 40 chars — over 28
|
|
full = f"provider/{tail}"
|
|
result = _model_alias(full)
|
|
assert result == tail[:12] + "…" + tail[-12:]
|
|
assert len(result) == 25 # 12 + 1 + 12
|
|
|
|
|
|
def test_alias_exactly_28_chars_no_ellipsis() -> None:
|
|
seg = "x" * 28
|
|
result = _model_alias(f"provider/{seg}")
|
|
assert result == seg
|
|
assert "…" not in result
|
|
|
|
|
|
def test_alias_29_chars_is_ellipsized() -> None:
|
|
seg = "x" * 29
|
|
result = _model_alias(f"provider/{seg}")
|
|
assert "…" in result
|
|
assert len(result) == 25 # 12 + 1 + 12
|
|
|
|
|
|
def test_alias_no_slash_returns_whole_string() -> None:
|
|
assert _model_alias("gpt-5.1") == "gpt-5.1"
|
|
|
|
|
|
def test_alias_no_slash_long_string_is_ellipsized() -> None:
|
|
# 40-char string with no slash — treated as the whole segment
|
|
seg = "z" * 40
|
|
result = _model_alias(seg)
|
|
assert result == seg[:12] + "…" + seg[-12:]
|
|
|
|
|
|
def test_prompt_state_label_uses_alias() -> None:
|
|
state = PromptState(model="openai/gpt-5.1", elevated=None)
|
|
assert state.label == "[gpt-5.1 normal] you ▸ "
|
|
|
|
|
|
def test_prompt_state_label_none_model() -> None:
|
|
state = PromptState(model=None, elevated=None)
|
|
assert state.label == "[… normal] you ▸ "
|
|
|
|
|
|
def test_prompt_state_label_elevated_mode() -> None:
|
|
state = PromptState(model="anthropic/claude-opus-4", elevated="bypass")
|
|
assert state.label == "[claude-opus-4 bypass] you ▸ "
|