CtrlK
BlogDocsLog inGet started
Tessl Logo

golikovichev/pytest-conversational

Test chat bots, voice assistants, and IVR menus with pytest using a small Conversation object and a callable bot adapter. Use when the user wants to write rule-based assertions over multi-turn dialogue without bringing in an LLM dependency, when they have a chatbot reachable as a Python callable or HTTP webhook, when they need to keep per-conversation state across turns and assert on slot filling, when they want pytest-native fixtures and a printable transcript on failure, or when they mention voice-assistant testing, IVR menu testing, conversational AI testing, LLM bot testing (used as the target under test, not as the matcher), expect matchers for bot replies, or multi-turn dialogue tests.

99

1.56x
Quality

100%

Does it follow best practices?

Impact

97%

1.56x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

__init__.pysrc/pytest_conversational/

"""pytest-conversational: rule-based multi-turn dialogue testing for pytest."""

from importlib.metadata import PackageNotFoundError, version as _pkg_version

from pytest_conversational import allure_attachments, expect, scenarios
from pytest_conversational.allure_attachments import (
    attach_to_allure,
    render_transcript_markdown,
    serialize_transcript_json,
)
from pytest_conversational.conversation import BotAdapter, Conversation, Turn
from pytest_conversational.scenarios import (
    Scenario,
    ScenarioLoadError,
    ScenarioTurn,
    load_scenarios,
    parametrize_scenarios,
)

try:
    __version__ = _pkg_version("pytest-conversational")
except PackageNotFoundError:
    # Package not installed (running from source tree without install).
    __version__ = "0.0.0+unknown"

__all__ = [
    "BotAdapter",
    "Conversation",
    "Scenario",
    "ScenarioLoadError",
    "ScenarioTurn",
    "Turn",
    "allure_attachments",
    "attach_to_allure",
    "expect",
    "load_scenarios",
    "parametrize_scenarios",
    "render_transcript_markdown",
    "scenarios",
    "serialize_transcript_json",
]

CHANGELOG.md

CONTRIBUTING.md

README.md

REFERENCE.md

SECURITY.md

SKILL.md

tessl.json

tile.json