Files
RustPython/extra_tests
Jeongseop Lim d634f2649c Check enumerate() arguments before calling iter() (#9241)
EnumerateArgs bound the iterable as PyIter, so argument binding called
__iter__ before start was converted and before surplus positional
arguments were rejected. An exception from __iter__ then replaced the
TypeError CPython raises for a bad start or a third argument.

Bind the iterable as an object and call get_iter() in py_new, after
start is converted, which is the order of CPython's enum_new_impl.

Assisted-by: Claude Code:claude-opus-5-5
2026-10-20 19:55:56 +09:00
..
2022-07-17 03:25:34 +09:00
2025-12-12 22:46:39 +09:00

Test snippets

This directory contains two sets of test snippets which can be run in Python. The snippets/ directory contains functional tests, and the benchmarks/ directory contains snippets for use in benchmarking RustPython's performance.

Setup

Our testing depends on pytest, which you can install using pip.

Running

Simply run pytest -v in this directory, and the tests should run (and hopefully pass). If it hangs for a long time, that's because it's building RustPython in release mode, which should take less time than it would to run every test snippet with RustPython compiled in debug mode.

Regression result collector

jsontests.py uses the canonical regrtest process setup before discovery. Its JSON and tables count each parent test once; failed subtests make their parent fail. The standard unittest summary counts individual failure/error/skip events and can therefore differ. Each case retains its full id and all subtest callbacks reported by unittest, including their IDs, outcomes and tracebacks. Historical result files are not rewritten.