Zac-HD / stdlib-property-tests

Property-based tests for the Python standard library (and builtins)
27 stars 6 forks source link

stdlib-property-tests

Property-based tests for the Python standard library (and builtins)

Goal

Find and fix bugs in Python, before they ship to users.

CPython's existing test suite is good, but bugs still slip through occasionally. We think that using property-based testing tools - i.e. Hypothesis - can help with this. They're no magic bullet, but computer-assisted testing techniques routinely try inputs that humans wouldn't think of (or bother trying), and turn up bugs that humans missed.

Specifically, we propose adding these tests to CPython's CI suite, and gave a talk at the 2020 Language Summit to that effect. Doing so would mean:

PyPy already uses Hypothesis, and sharing as much of the test suite as possible between implementations would be great. How this would work depends largely on CPython's decisions, though.

LICENSE

By contributing to this repository, you agree to license the contributed code under user's choice of the Mozilla Public License Version 2.0, and the Apache License 2.0.

This dual-licence is intended to make it as easy as possible for the tests in this repository to be used upstream by the CPython project, other implementations of Python, and the Hypothesis project and ecosystem.

Workflow

To run the tests against the current version of Python:

For development, we use tox to manage an extensive suite of auto-formatters and linters, so:

will set up a virtualenv for you, install everything, and finally run the formatters, linters, and test suite.

Contributors

Trophy Case

Bugs found via this specific project:

Further reading