tigrbl_tests 0.4.2.dev3__py3-none-any.whl → 0.4.2.dev4__py3-none-any.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.
- tests/unit/test_package_badges_and_notices.py +72 -0
- {tigrbl_tests-0.4.2.dev3.dist-info → tigrbl_tests-0.4.2.dev4.dist-info}/METADATA +108 -29
- {tigrbl_tests-0.4.2.dev3.dist-info → tigrbl_tests-0.4.2.dev4.dist-info}/RECORD +6 -4
- tigrbl_tests-0.4.2.dev4.dist-info/licenses/NOTICE +7 -0
- {tigrbl_tests-0.4.2.dev3.dist-info → tigrbl_tests-0.4.2.dev4.dist-info}/WHEEL +0 -0
- {tigrbl_tests-0.4.2.dev3.dist-info → tigrbl_tests-0.4.2.dev4.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
ROOT = Path(__file__).resolve().parents[5]
|
|
7
|
+
PACKAGE_GLOBS = ("pkgs/core/*", "pkgs/engines/*", "pkgs/deprecated/*")
|
|
8
|
+
PYTHON_BADGE_LABEL = "3.10 | 3.11 | 3.12 | 3.13 | 3.14"
|
|
9
|
+
REQUIRED_SECTIONS = (
|
|
10
|
+
"## Certification Status",
|
|
11
|
+
"## Install",
|
|
12
|
+
"## Surface Coverage",
|
|
13
|
+
"## What It Owns",
|
|
14
|
+
"## Public API and Import Surface",
|
|
15
|
+
"## Usage Examples",
|
|
16
|
+
"## How To Choose This Package",
|
|
17
|
+
"## Related Packages",
|
|
18
|
+
"## Documentation Links",
|
|
19
|
+
"## Support",
|
|
20
|
+
"## License",
|
|
21
|
+
)
|
|
22
|
+
QUESTION_PREFIXES = (
|
|
23
|
+
"## What is ",
|
|
24
|
+
"## Why use ",
|
|
25
|
+
"## When should I install ",
|
|
26
|
+
"## Who is ",
|
|
27
|
+
"## Where does ",
|
|
28
|
+
"## How does ",
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _package_roots() -> list[Path]:
|
|
33
|
+
roots: list[Path] = []
|
|
34
|
+
for pattern in PACKAGE_GLOBS:
|
|
35
|
+
roots.extend(
|
|
36
|
+
path
|
|
37
|
+
for path in ROOT.glob(pattern)
|
|
38
|
+
if path.is_dir() and (path / "pyproject.toml").exists()
|
|
39
|
+
)
|
|
40
|
+
return sorted(roots)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def test_all_package_roots_have_required_legal_files_and_badges() -> None:
|
|
44
|
+
package_roots = _package_roots()
|
|
45
|
+
assert len(package_roots) == 40
|
|
46
|
+
|
|
47
|
+
for package_root in package_roots:
|
|
48
|
+
readme = (package_root / "README.md").read_text(encoding="utf-8")
|
|
49
|
+
|
|
50
|
+
assert (package_root / "LICENSE").exists(), package_root
|
|
51
|
+
assert (package_root / "NOTICE").exists(), package_root
|
|
52
|
+
assert "license-Apache%202.0" in readme, package_root
|
|
53
|
+
assert "discord.gg/K4YTAPapjR" in readme, package_root
|
|
54
|
+
assert PYTHON_BADGE_LABEL in readme, package_root
|
|
55
|
+
assert "## Quick Answers" not in readme, package_root
|
|
56
|
+
for section in REQUIRED_SECTIONS:
|
|
57
|
+
assert section in readme, (package_root, section)
|
|
58
|
+
for prefix in QUESTION_PREFIXES:
|
|
59
|
+
assert prefix in readme, (package_root, prefix)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def test_root_readme_and_facade_package_readme_are_distinct() -> None:
|
|
63
|
+
root_readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
|
64
|
+
facade_readme = (ROOT / "pkgs/core/tigrbl/README.md").read_text(
|
|
65
|
+
encoding="utf-8"
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
assert "<h1>Tigrbl Workspace</h1>" in root_readme
|
|
69
|
+
assert "<h1>tigrbl</h1>" in facade_readme
|
|
70
|
+
assert "pkgs/core/tigrbl/README.md" in root_readme
|
|
71
|
+
assert "<h1>Tigrbl Workspace</h1>" not in facade_readme
|
|
72
|
+
assert "This root README is the repository and workspace entry point" in root_readme
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tigrbl_tests
|
|
3
|
-
Version: 0.4.2.
|
|
3
|
+
Version: 0.4.2.dev4
|
|
4
4
|
Summary: Reusable Tigrbl pytest fixtures, conformance assertions, integration helpers, and package test utilities.
|
|
5
5
|
License: Apache License
|
|
6
6
|
Version 2.0, January 2004
|
|
@@ -204,6 +204,7 @@ License: Apache License
|
|
|
204
204
|
See the License for the specific language governing permissions and
|
|
205
205
|
limitations under the License.
|
|
206
206
|
License-File: LICENSE
|
|
207
|
+
License-File: NOTICE
|
|
207
208
|
Keywords: tigrbl,asgi,api,json-rpc,rest,sqlalchemy,pydantic,pytest,testing,fixtures,tests,testkit,integration-testing,openapi,openrpc,schema-first
|
|
208
209
|
Author: Jacob Stewart
|
|
209
210
|
Author-email: jacob@swarmauri.com
|
|
@@ -254,12 +255,45 @@ Description-Content-Type: text/markdown
|
|
|
254
255
|
<p><strong>Reusable Tigrbl pytest fixtures, conformance assertions, integration helpers, and package test utilities.</strong></p>
|
|
255
256
|
<a href="https://pypi.org/project/tigrbl_tests/"><img src="https://img.shields.io/pypi/v/tigrbl_tests?label=PyPI" alt="PyPI version for tigrbl_tests"/></a>
|
|
256
257
|
<a href="https://pypi.org/project/tigrbl_tests/"><img src="https://static.pepy.tech/badge/tigrbl_tests" alt="Downloads for tigrbl_tests"/></a>
|
|
258
|
+
<a href="https://discord.gg/K4YTAPapjR"><img src="https://img.shields.io/badge/Discord-Join%20chat-5865F2?logo=discord&logoColor=white" alt="Discord community for tigrbl_tests"/></a>
|
|
257
259
|
<a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_tests/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_tests/README.md.svg?label=hits" alt="Repository hits for tigrbl_tests README"/></a>
|
|
258
260
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
|
|
259
|
-
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%
|
|
261
|
+
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-3776ab" alt="Python versions 3.10 | 3.11 | 3.12 | 3.13 | 3.14 for tigrbl_tests"/></a>
|
|
260
262
|
<a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-core-1f6feb" alt="Workspace group for tigrbl_tests"/></a>
|
|
261
263
|
</div>
|
|
262
264
|
|
|
265
|
+
## What is tigrbl_tests?
|
|
266
|
+
|
|
267
|
+
Reusable Tigrbl pytest fixtures, conformance assertions, integration helpers, and package test utilities.
|
|
268
|
+
|
|
269
|
+
## Why use tigrbl_tests?
|
|
270
|
+
|
|
271
|
+
Use it when downstream packages need the same Tigrbl fixtures, conformance helpers, and regression assertions used by the workspace.
|
|
272
|
+
|
|
273
|
+
## When should I install tigrbl_tests?
|
|
274
|
+
|
|
275
|
+
Install it in CI, package-local validation, transport integration tests, and compatibility checks.
|
|
276
|
+
|
|
277
|
+
## Who is tigrbl_tests for?
|
|
278
|
+
|
|
279
|
+
Maintainers, extension authors, and integration teams validating Tigrbl-compatible packages.
|
|
280
|
+
|
|
281
|
+
## Where does tigrbl_tests fit?
|
|
282
|
+
|
|
283
|
+
`tigrbl_tests` lives at `pkgs/core/tigrbl_tests` and serves reusable test, conformance, and integration support for Tigrbl packages.
|
|
284
|
+
|
|
285
|
+
## How does tigrbl_tests work?
|
|
286
|
+
|
|
287
|
+
It packages reusable pytest assets and helper modules that exercise public Tigrbl behavior instead of relying on private workspace state.
|
|
288
|
+
|
|
289
|
+
## Certification Status
|
|
290
|
+
|
|
291
|
+
- Package status: governed package in the `tigrbl/tigrbl` workspace.
|
|
292
|
+
- Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
|
|
293
|
+
- Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
|
|
294
|
+
- Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
|
|
295
|
+
- Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
|
|
296
|
+
|
|
263
297
|
## Install
|
|
264
298
|
|
|
265
299
|
```bash
|
|
@@ -270,54 +304,99 @@ uv add tigrbl_tests
|
|
|
270
304
|
pip install tigrbl_tests
|
|
271
305
|
```
|
|
272
306
|
|
|
307
|
+
## Surface Coverage
|
|
308
|
+
|
|
309
|
+
| Surface | Value |
|
|
310
|
+
|---|---|
|
|
311
|
+
| PyPI package | [`tigrbl_tests`](https://pypi.org/project/tigrbl_tests/) |
|
|
312
|
+
| Repository path | [`pkgs/core/tigrbl_tests`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests) |
|
|
313
|
+
| Python import root | `benchmarks`, `tigrbl_tests`, `triage_tests`, `v4` |
|
|
314
|
+
| Console scripts | none declared |
|
|
315
|
+
| Entry points | none declared |
|
|
316
|
+
| Optional extras | none declared |
|
|
317
|
+
| Legal files | `LICENSE`, `NOTICE` |
|
|
318
|
+
| Supported Python | `3.10 | 3.11 | 3.12 | 3.13 | 3.14` |
|
|
319
|
+
|
|
273
320
|
## What It Owns
|
|
274
321
|
|
|
275
|
-
`tigrbl_tests` owns the
|
|
322
|
+
`tigrbl_tests` owns the `test support package` boundary. It should be installed when you need this package's focused responsibility without assuming every other Tigrbl workspace package is present.
|
|
276
323
|
|
|
277
|
-
|
|
324
|
+
Implementation orientation:
|
|
325
|
+
- `benchmarks`: comparative_benchmark_verification, open_loop_load_patterns, run_hot_path_perf_suite, tigrbl_fastapi_surface_matrix_benchmark, tigrbl_kernel_plan_benchmark, tigrbl_request_response_benchmark, tigrbl_sse_perf_suite, tigrbl_streaming_perf_suite, tigrbl_websocket_perf_suite, tigrbl_webtransport_perf_suite
|
|
326
|
+
- `tigrbl_tests`: examples/, tests/
|
|
327
|
+
- `v4`: tests/
|
|
278
328
|
|
|
279
|
-
|
|
329
|
+
## Public API and Import Surface
|
|
280
330
|
|
|
281
|
-
|
|
331
|
+
- Import roots: `benchmarks`, `tigrbl_tests`, `triage_tests`, `v4`.
|
|
332
|
+
- Public symbols: public surface is module-oriented; import the package boundary and inspect submodules as needed.
|
|
333
|
+
- Workspace dependencies: [`tigrbl`](https://pypi.org/project/tigrbl/), [`tigrbl_client`](https://pypi.org/project/tigrbl_client/).
|
|
334
|
+
- External runtime dependencies: `psycopg2-binary>=2.9.9`, `asyncpg>=0.30.0`, `pytest>=8.0`, `pytest-asyncio>=0.24.0`, `pytest-xdist>=3.6.1`, `pytest-json-report>=1.5.0`, `python-dotenv`, `requests>=2.32.3`, `flake8>=7.0`, `pytest-timeout>=2.3.1`, `ruff>=0.9.9`, `pytest-benchmark>=4.0.0`, `jinja2>=3.1.0`.
|
|
282
335
|
|
|
283
|
-
|
|
284
|
-
- Primary module root: `examples` with module families `01-beginner-foundations/, 01_beginner_fundamentals/, 02-beginner-columns/, 02_beginner_models/, 03-beginner-mixins/, 03_beginner_specs/, 04-beginner-app-api/, 04_beginner_tables_columns/`.
|
|
336
|
+
## Usage Examples
|
|
285
337
|
|
|
286
|
-
|
|
338
|
+
### Verify the installed package
|
|
287
339
|
|
|
288
|
-
|
|
289
|
-
-
|
|
290
|
-
-
|
|
291
|
-
|
|
292
|
-
|
|
340
|
+
```bash
|
|
341
|
+
python -m pip show tigrbl_tests
|
|
342
|
+
python - <<'PY'
|
|
343
|
+
from importlib.metadata import version
|
|
344
|
+
print(version("tigrbl_tests"))
|
|
345
|
+
PY
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Run packaged Tigrbl tests
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
uv run pytest pkgs/core/tigrbl_tests/tests -q
|
|
352
|
+
python -m pytest --pyargs tigrbl_tests
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Import reusable test helpers
|
|
356
|
+
|
|
357
|
+
```python
|
|
358
|
+
import tigrbl_tests
|
|
293
359
|
|
|
294
|
-
|
|
360
|
+
print(tigrbl_tests.__name__)
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Use it in downstream CI
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
pip install tigrbl-tests pytest
|
|
367
|
+
pytest -q
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## How To Choose This Package
|
|
295
371
|
|
|
296
|
-
-
|
|
297
|
-
- External runtime dependencies: `psycopg2-binary>=2.9.9`, `asyncpg>=0.30.0`, `pytest>=8.0`, `pytest-asyncio>=0.24.0`, `pytest-xdist>=3.6.1`, `pytest-json-report>=1.5.0`, `python-dotenv`, `requests>=2.32.3`, `flake8>=7.0`, `pytest-timeout>=2.3.1`.
|
|
298
|
-
- Optional extras: none declared.
|
|
372
|
+
Choose `tigrbl_tests` when the quick-answer table matches your use case. Choose [`tigrbl`](https://pypi.org/project/tigrbl/) instead when you want the full public facade. Choose a lower-level package such as [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), or [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/) when you are building framework extensions or testing a specific internal boundary.
|
|
299
373
|
|
|
300
374
|
## Related Packages
|
|
301
375
|
|
|
302
376
|
- [`tigrbl`](https://pypi.org/project/tigrbl/)
|
|
303
377
|
- [`tigrbl_client`](https://pypi.org/project/tigrbl_client/)
|
|
304
378
|
|
|
305
|
-
##
|
|
379
|
+
## Documentation Links
|
|
380
|
+
|
|
381
|
+
- [Workspace docs](https://github.com/tigrbl/tigrbl/blob/master/docs/README.md)
|
|
382
|
+
- [Package catalog](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_CATALOG.md)
|
|
383
|
+
- [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
|
|
384
|
+
- [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
|
|
385
|
+
- [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
|
|
386
|
+
- [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
|
|
387
|
+
- [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
|
|
388
|
+
|
|
389
|
+
## Support
|
|
306
390
|
|
|
307
|
-
-
|
|
308
|
-
-
|
|
309
|
-
-
|
|
310
|
-
- `docs/conformance/NEXT_STEPS.md`
|
|
311
|
-
- `docs/governance/DOC_POINTERS.md`
|
|
312
|
-
- `docs/developer/PACKAGE_CATALOG.md`
|
|
313
|
-
- `docs/developer/PACKAGE_LAYOUT.md`
|
|
391
|
+
- Community: [Discord](https://discord.gg/K4YTAPapjR).
|
|
392
|
+
- Issues: [GitHub Issues](https://github.com/tigrbl/tigrbl/issues).
|
|
393
|
+
- Repository: [pkgs/core/tigrbl_tests](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests).
|
|
314
394
|
|
|
315
395
|
## Package-local Boundary
|
|
316
396
|
|
|
317
|
-
This
|
|
318
|
-
Use this page for package installation and boundary orientation. Repository governance, conformance state, target status, and release evidence remain governed from `docs/` and `.ssot/`.
|
|
397
|
+
This README is the package-local distribution entry point for `tigrbl_tests`. It answers install, usage, API, ownership, and certification-orientation questions for this package. Broader architectural decisions, release status, and cross-package proof chains remain in the repository-level docs and SSOT registry.
|
|
319
398
|
|
|
320
399
|
## License
|
|
321
400
|
|
|
322
|
-
Licensed under the Apache License, Version 2.0. See `LICENSE` and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
|
|
401
|
+
Licensed under the Apache License, Version 2.0. See `LICENSE`, `NOTICE`, and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
|
|
323
402
|
|
|
@@ -447,6 +447,7 @@ tests/unit/test_operator_surface_closure.py,sha256=DWCvS6VoGMLEwEGIJ3Lsn9b_8egEd
|
|
|
447
447
|
tests/unit/test_operator_surface_docs_parity.py,sha256=ecwPRAbZZmvKeEo3YTyfmrKbXP5vkN0FPNDUX_QXl30,1623
|
|
448
448
|
tests/unit/test_operator_websocket_route_contracts.py,sha256=RSG-0s407hz3K4nOIlgW1-k1czHpEIhlTuWJhUEpTl8,2854
|
|
449
449
|
tests/unit/test_opspec_effects.py,sha256=QMRD0l91KGgXFOZtSd2KgsB5ErIVonIHBqE1gFwhgGg,4394
|
|
450
|
+
tests/unit/test_package_badges_and_notices.py,sha256=aP5ebISyBwLLhOInrNmhPskhsMiFbdcnR3MB0QSeZ_U,2379
|
|
450
451
|
tests/unit/test_postgres_engine_errors.py,sha256=IPpr0RldtVcnnIPl6KZQaP85Oz8ww49wcvzVbJJ-rWU,540
|
|
451
452
|
tests/unit/test_postgres_env_vars.py,sha256=SPNMO5C5D4J8nQJGyaLFL_2lg2oX4RKnNn_MVLfidso,546
|
|
452
453
|
tests/unit/test_relationship_alias_cols.py,sha256=XdYd-2u4t0dkI4t5RYECSxH7hMKVKvp99lncauRO2vQ,3757
|
|
@@ -545,7 +546,8 @@ tests/unit/test_v3_op_ctx_attributes.py,sha256=gp3C88to8gLn99EYMxAxgRpmjBcvGz3OH
|
|
|
545
546
|
tests/unit/test_v3_schemas_and_decorators.py,sha256=e5DNBDe6w-3BW2lE_KJqiyGUL_Fi7kdaGRMm0TYhw1A,3970
|
|
546
547
|
tests/unit/test_v3_storage_spec_attributes.py,sha256=SkPXrnK8oGaCirCA_MapmikykBv3IJkIvigp7G06ELM,6652
|
|
547
548
|
tests/unit/test_verbosity.py,sha256=tL3gOhsfXBrHLPYboXyZ1Yo1emfKpHPpQercB0r93pc,1943
|
|
548
|
-
tigrbl_tests-0.4.2.
|
|
549
|
-
tigrbl_tests-0.4.2.
|
|
550
|
-
tigrbl_tests-0.4.2.
|
|
551
|
-
tigrbl_tests-0.4.2.
|
|
549
|
+
tigrbl_tests-0.4.2.dev4.dist-info/METADATA,sha256=3NwezXqd6StRLej9aDnXkiOcu4fHZSqMbRPi9X_25Lg,23047
|
|
550
|
+
tigrbl_tests-0.4.2.dev4.dist-info/WHEEL,sha256=eY7nduwzv-ldUxpzbRlxwvC693Hg6PX8bWDjEHjZ_dk,88
|
|
551
|
+
tigrbl_tests-0.4.2.dev4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
552
|
+
tigrbl_tests-0.4.2.dev4.dist-info/licenses/NOTICE,sha256=EvJMTshzsWz43LiK-DeN2ZuLtrP49cxvlrFlJ8F_buc,221
|
|
553
|
+
tigrbl_tests-0.4.2.dev4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|