Skip to main content

pytest for LLMs

Project description

prompttest

Build Status PyPI version PyPI - Python Versions PyPI Downloads License: MIT

pytest for LLMs.

You wouldn't ship code without tests. ✋😮🤚

Hold your prompts to the same standard. 😎👌🔥

A demo of prompttest

Features

  • 🔤 Test in Plain English: Write your tests in English, and let an AI grade the response.

  • 🚀 Write Tests Faster: Just list your inputs and criteria in a simple file—no code needed.

  • 🔓 Avoid Vendor Lock-in: Test against any LLM with a single, free OpenRouter API key.

Quick Start

1. Install prompttest

pip install prompttest

2. Set up prompttest

prompttest init

3. Run your tests

prompttest

How It Works

prompttest is built around 2 types of files:

The Prompt File (.txt)

A .txt file for your prompt template with ---[SECTIONS]--- and {variables}.

Example: prompts/customer_service.txt

---[SYSTEM]---
You are a customer service agent for "ChronoCorp" and an expert on the "{product_name}".
Always be helpful, polite, and empathetic. Address the customer by name if it is provided.

Style rules:
- If the customer's message is only a greeting (e.g., "hi", "hello", "hey"):
  - Reply with one short, polite greeting.
  - Add nothing else: no extra sentences, questions, emojis, or marketing text.
- For other messages, answer concisely and only with information relevant to the request.

---[USER]---
Customer name: {user_name}
Customer query: {user_query}

The Test File (.yml)

A .yml file for test cases with config, inputs and criteria.

Example: prompttests/test_customer_service.yml

config:
  prompt: customer_service

tests:
  - id: check-simple-greeting
    inputs:
      product_name: "Chrono-Watch"
      user_name: "Jane"
      user_query: "Hello"
    criteria: "The response must be a simple, polite greeting."

The Result

When you run prompttest, you get two outputs:

The Console Summary

A pass/fail summary right in your terminal.

A console summary of prompttest

The Markdown Report

A detailed Markdown report for every single test.

Example: .prompttest_reports/latest/test_customer_service-check-simple-greeting.md

A markdown report of prompttest

Advanced Usage

Run all tests in a folder

prompttest run folder_name/

Run all tests in a file

prompttest run file_name.yml

Run specific test

prompttest run test_id

Contributing

We're building the pytest for LLMs—and we need your help.

Report a bug, propose a feature, or contribute a single line.

Help shape a foundational tool for AI development.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prompttest-0.2.3.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prompttest-0.2.3-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file prompttest-0.2.3.tar.gz.

File metadata

  • Download URL: prompttest-0.2.3.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for prompttest-0.2.3.tar.gz
Algorithm Hash digest
SHA256 769686ef5b423de1fe5ae1dfbc56d0fd24fb659e9c8e9cea197dc85684f066af
MD5 1af1f2c508d4605781658b5e46fc286b
BLAKE2b-256 8fd9a5999aba913ca102bb1dd1bc26714c1844c8d592a18f4d8e3ed54767ac81

See more details on using hashes here.

Provenance

The following attestation bundles were made for prompttest-0.2.3.tar.gz:

Publisher: publish.yml on decodingchris/prompttest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file prompttest-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: prompttest-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 25.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for prompttest-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3f375261bfa704d7ee5e73a1601d25046bc6b37dfd755869c04d61e2036a8cf7
MD5 f0d94b3ec2d057ed485887d4f842fa16
BLAKE2b-256 2d9e0bf7c1dbcd3676c5328368ec2b2bd5a2d4a3edd71127ec8281268a125224

See more details on using hashes here.

Provenance

The following attestation bundles were made for prompttest-0.2.3-py3-none-any.whl:

Publisher: publish.yml on decodingchris/prompttest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page