rustest 0.7.0__cp310-cp310-macosx_10_12_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,232 @@
1
+ Metadata-Version: 2.4
2
+ Name: rustest
3
+ Version: 0.7.0
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: License :: OSI Approved :: MIT License
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Classifier: Programming Language :: Rust
14
+ Classifier: Topic :: Software Development :: Testing
15
+ Requires-Dist: typing-extensions>=4.15
16
+ Requires-Dist: basedpyright>=1.19 ; extra == 'dev'
17
+ Requires-Dist: maturin>=1.4,<2 ; extra == 'dev'
18
+ Requires-Dist: poethepoet>=0.22 ; extra == 'dev'
19
+ Requires-Dist: pre-commit>=3.5 ; extra == 'dev'
20
+ Requires-Dist: pytest>=7.0 ; extra == 'dev'
21
+ Requires-Dist: pytest-asyncio>=1.2.0 ; extra == 'dev'
22
+ Requires-Dist: pytest-codeblocks>=0.17.0 ; extra == 'dev'
23
+ Requires-Dist: ruff>=0.1.9 ; extra == 'dev'
24
+ Requires-Dist: mkdocs>=1.5.0 ; extra == 'docs'
25
+ Requires-Dist: mkdocs-material>=9.5.0 ; extra == 'docs'
26
+ Requires-Dist: mkdocstrings[python]>=0.24.0 ; extra == 'docs'
27
+ Requires-Dist: mkdocs-autorefs>=0.5.0 ; extra == 'docs'
28
+ Provides-Extra: dev
29
+ Provides-Extra: docs
30
+ License-File: LICENSE
31
+ Summary: Rust powered pytest-compatible runner
32
+ Author: rustest contributors
33
+ Requires-Python: >=3.10
34
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
35
+ Project-URL: Homepage, https://github.com/Apex-Engineers-Inc/rustest
36
+ Project-URL: Repository, https://github.com/Apex-Engineers-Inc/rustest
37
+ Project-URL: Documentation, https://apex-engineers-inc.github.io/rustest
38
+
39
+ # rustest
40
+
41
+ Rustest (pronounced like Russ-Test) is a Rust-powered test runner that aims to provide the most common pytest ergonomics with a focus on raw performance. Get **~2x faster** test execution with familiar syntax and minimal setup.
42
+
43
+ 📚 **[Full Documentation](https://apex-engineers-inc.github.io/rustest)** | [Getting Started](https://apex-engineers-inc.github.io/rustest/getting-started/quickstart/) | [User Guide](https://apex-engineers-inc.github.io/rustest/guide/writing-tests/) | [API Reference](https://apex-engineers-inc.github.io/rustest/api/overview/)
44
+
45
+ ## Why rustest?
46
+
47
+ - 🚀 **About 2x faster** than pytest on the rustest integration test suite
48
+ - ✅ Familiar `@fixture`, `@parametrize`, `@skip`, and `@mark` decorators
49
+ - 🔄 **Built-in async support** with `@mark.asyncio` (like pytest-asyncio)
50
+ - 🔍 Automatic test discovery (`test_*.py` and `*_test.py` files)
51
+ - 📝 **Built-in markdown code block testing** (like pytest-codeblocks, but faster)
52
+ - 🎯 Simple, clean API—if you know pytest, you already know rustest
53
+ - 🧮 Built-in `approx()` helper for tolerant numeric comparisons
54
+ - 🪤 `raises()` context manager for precise exception assertions
55
+ - 📦 Easy installation with pip or uv
56
+ - ⚡ Low-overhead execution keeps small suites feeling instant
57
+
58
+ ## Performance
59
+
60
+ Rustest is designed for speed. Our latest benchmarks on the rustest integration suite (~200 tests) show a consistent **2.1x wall-clock speedup** over pytest:
61
+
62
+ | Test Runner | Wall Clock | Speedup | Command |
63
+ |-------------|------------|---------|---------|
64
+ | pytest | 1.33–1.59s | 1.0x (baseline) | `pytest tests/ examples/tests/ -q` |
65
+ | rustest | 0.69–0.70s | **~2.1x faster** | `python -m rustest tests/ examples/tests/` |
66
+
67
+ ### Large Parametrized Stress Test
68
+
69
+ With **10,000 parametrized invocations**:
70
+
71
+ | Test Runner | Avg. Wall Clock | Speedup | Command |
72
+ |-------------|-----------------|---------|---------|
73
+ | pytest | 9.72s | 1.0x | `pytest benchmarks/test_large_parametrize.py -q` |
74
+ | rustest | 0.41s | **~24x faster** | `python -m rustest benchmarks/test_large_parametrize.py` |
75
+
76
+ **[📊 View Detailed Performance Analysis →](https://apex-engineers-inc.github.io/rustest/advanced/performance/)**
77
+
78
+ ## Installation
79
+
80
+ Rustest supports Python **3.10 through 3.14**.
81
+
82
+ <!--pytest.mark.skip-->
83
+ ```bash
84
+ # Using pip
85
+ pip install rustest
86
+
87
+ # Using uv
88
+ uv add rustest
89
+ ```
90
+
91
+ **[📖 Installation Guide →](https://apex-engineers-inc.github.io/rustest/getting-started/installation/)**
92
+
93
+ ## Quick Start
94
+
95
+ ### 1. Write Your Tests
96
+
97
+ Create a file `test_math.py`:
98
+
99
+ ```python
100
+ from rustest import fixture, parametrize, mark, approx, raises
101
+ import asyncio
102
+
103
+ @fixture
104
+ def numbers() -> list[int]:
105
+ return [1, 2, 3, 4, 5]
106
+
107
+ def test_sum(numbers: list[int]) -> None:
108
+ assert sum(numbers) == approx(15)
109
+
110
+ @parametrize("value,expected", [(2, 4), (3, 9), (4, 16)])
111
+ def test_square(value: int, expected: int) -> None:
112
+ assert value ** 2 == expected
113
+
114
+ @mark.slow
115
+ def test_expensive_operation() -> None:
116
+ result = sum(range(1000000))
117
+ assert result > 0
118
+
119
+ @mark.asyncio
120
+ async def test_async_operation() -> None:
121
+ # Example async operation
122
+ await asyncio.sleep(0.001)
123
+ result = 42
124
+ assert result == 42
125
+
126
+ def test_division_by_zero() -> None:
127
+ with raises(ZeroDivisionError, match="division by zero"):
128
+ 1 / 0
129
+ ```
130
+
131
+ ### 2. Run Your Tests
132
+
133
+ <!--pytest.mark.skip-->
134
+ ```bash
135
+ # Run all tests
136
+ rustest
137
+
138
+ # Run specific tests
139
+ rustest tests/
140
+
141
+ # Filter by test name pattern
142
+ rustest -k "test_sum"
143
+
144
+ # Filter by marks
145
+ rustest -m "slow" # Run only slow tests
146
+ rustest -m "not slow" # Skip slow tests
147
+ rustest -m "slow and integration" # Run tests with both marks
148
+
149
+ # Rerun only failed tests
150
+ rustest --lf # Last failed only
151
+ rustest --ff # Failed first, then all others
152
+
153
+ # Exit on first failure
154
+ rustest -x # Fail fast
155
+
156
+ # Combine options
157
+ rustest --ff -x # Run failed tests first, stop on first failure
158
+
159
+ # Show output during execution
160
+ rustest --no-capture
161
+ ```
162
+
163
+ **[📖 Full Quick Start Guide →](https://apex-engineers-inc.github.io/rustest/getting-started/quickstart/)**
164
+
165
+ ## Documentation
166
+
167
+ **[📚 Full Documentation](https://apex-engineers-inc.github.io/rustest)**
168
+
169
+ ### Getting Started
170
+ - [Installation](https://apex-engineers-inc.github.io/rustest/getting-started/installation/)
171
+ - [Quick Start](https://apex-engineers-inc.github.io/rustest/getting-started/quickstart/)
172
+
173
+ ### User Guide
174
+ - [Writing Tests](https://apex-engineers-inc.github.io/rustest/guide/writing-tests/)
175
+ - [Fixtures](https://apex-engineers-inc.github.io/rustest/guide/fixtures/)
176
+ - [Parametrization](https://apex-engineers-inc.github.io/rustest/guide/parametrization/)
177
+ - [Marks & Skipping](https://apex-engineers-inc.github.io/rustest/guide/marks/)
178
+ - [Test Classes](https://apex-engineers-inc.github.io/rustest/guide/test-classes/)
179
+ - [Assertion Helpers](https://apex-engineers-inc.github.io/rustest/guide/assertions/)
180
+ - [Markdown Testing](https://apex-engineers-inc.github.io/rustest/guide/markdown-testing/)
181
+ - [CLI Usage](https://apex-engineers-inc.github.io/rustest/guide/cli/)
182
+ - [Python API](https://apex-engineers-inc.github.io/rustest/guide/python-api/)
183
+
184
+ ### API Reference
185
+ - [API Overview](https://apex-engineers-inc.github.io/rustest/api/overview/)
186
+ - [Decorators](https://apex-engineers-inc.github.io/rustest/api/decorators/)
187
+ - [Test Execution](https://apex-engineers-inc.github.io/rustest/api/core/)
188
+ - [Reporting](https://apex-engineers-inc.github.io/rustest/api/reporting/)
189
+ - [Assertion Utilities](https://apex-engineers-inc.github.io/rustest/api/approx/)
190
+
191
+ ### Advanced Topics
192
+ - [Performance](https://apex-engineers-inc.github.io/rustest/advanced/performance/)
193
+ - [Comparison with pytest](https://apex-engineers-inc.github.io/rustest/advanced/comparison/)
194
+ - [Development Guide](https://apex-engineers-inc.github.io/rustest/advanced/development/)
195
+
196
+ ## Feature Comparison with pytest
197
+
198
+ Rustest implements the 20% of pytest features that cover 80% of use cases, with a focus on raw speed and simplicity.
199
+
200
+ **[📋 View Full Feature Comparison →](https://apex-engineers-inc.github.io/rustest/advanced/comparison/)**
201
+
202
+ ✅ **Supported:** Fixtures, parametrization, marks, test classes, conftest.py, markdown testing
203
+ 🚧 **Planned:** Parallel execution, mark filtering, JUnit XML output
204
+ ❌ **Not Planned:** Plugins, hooks, custom collectors (keeps rustest simple)
205
+
206
+ ## Contributing
207
+
208
+ We welcome contributions! See the [Development Guide](https://apex-engineers-inc.github.io/rustest/advanced/development/) for setup instructions.
209
+
210
+ Quick reference:
211
+
212
+ <!--pytest.mark.skip-->
213
+ ```bash
214
+ # Setup
215
+ git clone https://github.com/Apex-Engineers-Inc/rustest.git
216
+ cd rustest
217
+ uv sync --all-extras
218
+ uv run maturin develop
219
+
220
+ # Run tests
221
+ uv run poe pytests # Python tests
222
+ cargo test # Rust tests
223
+
224
+ # Format and lint
225
+ uv run pre-commit install # One-time setup
226
+ git commit -m "message" # Pre-commit hooks run automatically
227
+ ```
228
+
229
+ ## License
230
+
231
+ rustest is distributed under the terms of the MIT license. See [LICENSE](LICENSE).
232
+
@@ -0,0 +1,16 @@
1
+ rustest-0.7.0.dist-info/METADATA,sha256=4oreZ3cw8nBFQuC5UMDhGkci1x-9p5KT6sz0YXkuhoA,8818
2
+ rustest-0.7.0.dist-info/WHEEL,sha256=6OEI0fn46RZW776jnDyvYKnzOfyEBMUSBYc_YzRdWnE,107
3
+ rustest-0.7.0.dist-info/entry_points.txt,sha256=7fUa3LO8vudQ4dKG1sTRaDnxcMdBSZsWs9EyuxFQ7Lk,48
4
+ rustest-0.7.0.dist-info/licenses/LICENSE,sha256=s64ibUGtb6jEDBsYuxUFtMr_c4PaqYP-vj3YY6QtTGw,1075
5
+ rustest/__init__.py,sha256=0CkHfrmIjpGw6DMu2VcZLOUpBVtdwsN-aitn-RzOglo,514
6
+ rustest/__main__.py,sha256=bBvo5gsSluUzlDTDvn5bP_gZZEXMwJQZMqVA5W1M1v8,178
7
+ rustest/approx.py,sha256=MKmuorBBHqpH0h0QaIMVjbm3-mXJ0E90limEgSHHVfw,5744
8
+ rustest/cli.py,sha256=26zaX635WqW0q8B-alb0Kk0wzIDZVkF-y9ZqzKtHDbI,10185
9
+ rustest/core.py,sha256=FBnr3yzHQequ83R-pRlwlCdbcYlkjjucwtHpp0gnqdQ,1461
10
+ rustest/decorators.py,sha256=mZDieFSaUx5FIeDqsWO07H6E0urk70cOYtQIuCIjKzY,18703
11
+ rustest/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ rustest/reporting.py,sha256=3-R8aljv2ZbmjOa9Q9KZeCPsMaitm8nZ96LoJS_NnUQ,1623
13
+ rustest/rust.cpython-310-darwin.so,sha256=ElGdG4FcCR6AcsSTphhOzc0g5wnktFv8SLzIKS2vl-g,1668672
14
+ rustest/rust.py,sha256=tCIvjYd06VxoT_rKvv2o8CpXW_pFNua5VgcRDjLgU78,659
15
+ rustest/rust.pyi,sha256=bJDdaokbRZWPtTZ1bwsXWb43L9jwOm2gLkk7LzNlQcw,810
16
+ rustest-0.7.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.10.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-macosx_10_12_x86_64
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ rustest=rustest.__main__:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Apex Engineers Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.