v2.15.0 (#773)
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com> Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai> Co-authored-by: Maxime Dolores <maxime.dolores@ext.mistral.ai> Co-authored-by: Nelson PROIA <144663685+Nelson-PROIA@users.noreply.github.com> Co-authored-by: Paul VEZIA <166131032+le-codeur-rapide@users.noreply.github.com> Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai> Co-authored-by: Quentin <quentin.torroba@mistral.ai> Co-authored-by: Val <102326092+vdeva@users.noreply.github.com> Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
parent
702d0f412e
commit
cafb6d4147
247 changed files with 12401 additions and 3029 deletions
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
import pytest
|
||||
|
||||
from vibe.cli.textual_ui.message_queue import MessageQueue, QueuedItemKind
|
||||
from vibe.cli.textual_ui.message_queue import MessageQueue, QueuedItem, QueuedItemKind
|
||||
|
||||
|
||||
def test_empty_queue_is_falsy() -> None:
|
||||
|
|
@ -38,6 +38,17 @@ def test_pop_last_returns_newest() -> None:
|
|||
assert [item.content for item in queue.items] == ["a", "b"]
|
||||
|
||||
|
||||
def test_pop_last_resumes_when_queue_becomes_empty() -> None:
|
||||
queue = MessageQueue()
|
||||
queue.append_prompt("a")
|
||||
queue.pause()
|
||||
|
||||
queue.pop_last()
|
||||
|
||||
assert not queue
|
||||
assert not queue.paused
|
||||
|
||||
|
||||
def test_pop_first_returns_oldest() -> None:
|
||||
queue = MessageQueue()
|
||||
queue.append_prompt("a")
|
||||
|
|
@ -74,11 +85,9 @@ def test_pause_and_resume() -> None:
|
|||
|
||||
def test_pause_is_idempotent() -> None:
|
||||
queue = MessageQueue()
|
||||
calls = []
|
||||
queue.set_change_listener(lambda: calls.append(None))
|
||||
queue.pause()
|
||||
queue.pause()
|
||||
assert len(calls) == 1
|
||||
assert queue.paused
|
||||
|
||||
|
||||
def test_clear_resets_state() -> None:
|
||||
|
|
@ -90,34 +99,30 @@ def test_clear_resets_state() -> None:
|
|||
assert not queue.paused
|
||||
|
||||
|
||||
def test_change_listener_fires_on_mutations() -> None:
|
||||
def test_prepend_prompts_inserts_at_head_preserving_order() -> None:
|
||||
queue = MessageQueue()
|
||||
calls: list[None] = []
|
||||
queue.set_change_listener(lambda: calls.append(None))
|
||||
|
||||
queue.append_prompt("a")
|
||||
assert len(calls) == 1
|
||||
|
||||
queue.append_bash("ls")
|
||||
assert len(calls) == 2
|
||||
|
||||
queue.pop_last()
|
||||
assert len(calls) == 3
|
||||
|
||||
queue.pause()
|
||||
assert len(calls) == 4
|
||||
|
||||
queue.resume()
|
||||
assert len(calls) == 5
|
||||
queue.append_prompt("x")
|
||||
queue.append_prompt("y")
|
||||
queue.prepend_prompts([
|
||||
QueuedItem(QueuedItemKind.PROMPT, "a"),
|
||||
QueuedItem(QueuedItemKind.PROMPT, "b"),
|
||||
])
|
||||
assert [item.content for item in queue.items] == ["a", "b", "x", "y"]
|
||||
|
||||
|
||||
def test_change_listener_can_be_cleared() -> None:
|
||||
def test_prepend_prompts_empty_is_noop() -> None:
|
||||
queue = MessageQueue()
|
||||
calls: list[None] = []
|
||||
queue.set_change_listener(lambda: calls.append(None))
|
||||
queue.set_change_listener(None)
|
||||
queue.append_prompt("a")
|
||||
assert calls == []
|
||||
queue.append_prompt("x")
|
||||
queue.prepend_prompts([])
|
||||
assert [item.content for item in queue.items] == ["x"]
|
||||
|
||||
|
||||
def test_append_prompt_with_skill_name() -> None:
|
||||
queue = MessageQueue()
|
||||
queue.append_prompt("expanded prompt", skill_name="my-skill")
|
||||
item = queue.items[0]
|
||||
assert item.skill_name == "my-skill"
|
||||
assert item.content == "expanded prompt"
|
||||
|
||||
|
||||
def test_items_returns_copy() -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue