$npx skillfedfor your agent

testtools

Extensions to the Python standard library unit testing framework

Worth itPyPI LibrariesReleased Apr 20261.8M downloads / mopermissive licensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — testtools-2.9.1-py3-none-any.whl
v2.9.1 · released 2026-04-24 · Python >=3.10

Yes. testtools is production-stable, actively maintained, has no dependencies, and solves real problems in unittest-based projects: custom matchers reduce boilerplate, fixture management simplifies setup/teardown, and rich result reporting cuts debugging time. Install it if you're committed to unittest and want better assertions and diagnostics without migrating to pytest.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later.
  • Low install friction with no runtime dependencies.
  • Actively maintained with a recent release (112 days ago) and ongoing repository activity.

License · maintenance · safety

permissive license (permissive) — Licensed under MIT (permissive), allowing free use, modification, and distribution with minimal restrictions.

last release 2026-04-24 (112 days) · last repo commit 2026-08-03 · 100 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,838,139 downloads/mo, #3,499 on PyPI

Verify before relying

pip install testtools

from testtools import TestCase
from testtools.matchers import Equals

class MyTest(TestCase):
    def test_example(self):
        self.assertThat(7 * 7, Equals(49))
  • Whether the matcher ecosystem is large enough for common assertion patterns in your project.
  • Performance characteristics compared to standard unittest or pytest for large test suites.
Same gist for agents: .md · .json

What it is and what it does

testtools is a mature extension library for Python's unittest that adds custom matchers (reusable assertion predicates), fixture lifecycle management, and rich test result reporting. It lets you attach arbitrary diagnostic data to test failures—log files, system state, environment details—making debugging easier when tests fail in production-like conditions.

The library prioritizes compatibility with the standard library while providing advanced features like parametrized exception handling, multi-result aggregation, and test cloning. It works with Python 3.10+ and PyPy3, making it suitable for projects that need unittest's ecosystem but want more expressive assertions and better failure diagnostics without switching to an entirely different test framework.

Use it for

  • Writing custom matchers for domain-specific assertions in integration or acceptance tests.
  • Attaching log files, metrics, or environment snapshots to test results for post-mortem debugging.
  • Building test frameworks or libraries that extend unittest while remaining compatible with standard tools.
  • Testing server or service code where fixture setup/teardown and detailed failure context are critical.
  • Projects requiring PyPy3 or Python 3.10+ support while staying within the unittest ecosystem.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

testtools is production-stable, actively maintained, has no dependencies, and solves real problems in unittest-based projects: custom matchers reduce boilerplate, fixture management simplifies setup/teardown, and rich result reporting cuts debugging time. Install it if you're committed to unittest and want better assertions and diagnostics without migrating to pytest.

Install

testtools on PyPI

Before you install

Low install friction with no runtime dependencies. Actively maintained with a recent release (112 days ago) and ongoing repository activity. Supports current Python versions (3.10+).

Requires Python 3.10 or later.

License in practice

Licensed under MIT (permissive), allowing free use, modification, and distribution with minimal restrictions.

Quickstart

pip install testtools

from testtools import TestCase
from testtools.matchers import Equals

class MyTest(TestCase):
    def test_example(self):
        self.assertThat(7 * 7, Equals(49))

Verify before relying

  • Whether the matcher ecosystem is large enough for common assertion patterns in your project.
  • Performance characteristics compared to standard unittest or pytest for large test suites.

Package facts

Licensepermissive license permissive
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependenciesNone
MaintenanceActively maintained 112 days since the last release
Last repo commit
First released
Downloads1,838,139 / month, #3,499 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: TestingTyping :: Typed

Evidence: testtools-2.9.1-py3-none-any.whl

Tags

Capabilities
unittest extensionscustom test matchersfixture management testingdetailed test reportingpython test frameworkadvanced assertionstest result details
Topics
unittest-extensiontest-matchersfixture-management

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “unittest extensions”

  • testtoolstesttools extends Python's standard unittest framework with custom…
  • unittest-parametrizeAdds parametrization support to unittest TestCases, allowing you to…
  • parametrizeProvides a `@parametrize` decorator that works with…

Give your agent the search over MCP, or paste the wish link into any chat.

More Libraries packages

urllib3 Worth it
PyPI · Libraries · released May 2026

urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.

MITpure Python · 3.10+
1.8Bdownloads / mo
requests Worth it
PyPI · Libraries · released May 2026

Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.

Apache-2.0pure Python · 3.10+
1.8Bdownloads / mo
pluggy Worth it
PyPI · Libraries · released May 2025

Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.

Install it if you're building an extensible application or framework.

MITpure Python · 3.9+aging
1.3Bdownloads / mo
python-dateutil Worth it
PyPI · Libraries · released Mar 2024

Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.

Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.

Apache-2.0pure Python
1.2Bdownloads / mo
six With conditions
PyPI · Libraries · released Dec 2024

Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.

MITpure Python
1.2Bdownloads / mo
pytest Worth it
PyPI · Libraries · released Jun 2026

pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.

MITpure Python · 3.10+
1.1Bdownloads / mo

See also xunitparser · asserts · django-test-plus · testfixtures · oslotest · xmlunittest · unittest2 · PyHamcrest · approvaltests · testresources