tigrbl_tests 0.3.24.dev1__tar.gz → 0.4.0__tar.gz
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.
- tigrbl_tests-0.4.0/PKG-INFO +143 -0
- tigrbl_tests-0.4.0/README.md +94 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/pyproject.toml +40 -20
- tigrbl_tests-0.4.0/tests/fixtures/system_diagnostics.py +100 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_04_appspec_corpus_fixture.py +53 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_01_appspec_corpus_uvicorn.py +46 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_bootstrap_kernel_compilation.py +7 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/hooks/test_hook_ctx_stage_validation.py +2 -2
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/__init__.py +2 -2
- tigrbl_tests-0.4.0/tests/i9n/test_auth_status_projection_contract.py +103 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_bindings_modules.py +1 -1
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_behavior.py +1 -1
- tigrbl_tests-0.4.0/tests/i9n/test_op_ctx_owner_scope_materialization_contracts.py +218 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_create_uvicorn.json +503 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_create_uvicorn_sequential_10_rounds.json +503 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_create_uvicorn_sequential_10_rounds_250_ops.json +503 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_executors_seq_10_rounds.json +915 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_sse_uvicorn.json +94 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_streaming_uvicorn.json +94 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_websocket_uvicorn.json +94 -0
- tigrbl_tests-0.4.0/tests/perf/benchmark_results_webtransport_uvicorn.json +54 -0
- tigrbl_tests-0.4.0/tests/perf/compiled_input_strategy_microbench.json +145 -0
- tigrbl_tests-0.4.0/tests/perf/egress_body_coercion_microbench.json +68 -0
- tigrbl_tests-0.4.0/tests/perf/exact_route_marker_microbench.json +41 -0
- tigrbl_tests-0.4.0/tests/perf/fastapi_create_call_graph_250_ops.json +1589 -0
- tigrbl_tests-0.4.0/tests/perf/fastapi_sse_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/fastapi_sse_transport_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/fastapi_streaming_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/fastapi_websocket_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/fastapi_websocket_transport_call_graph_250_ops.json +1591 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/helper_fastapi_create_app.py +1 -0
- tigrbl_tests-0.4.0/tests/perf/helper_sse_apps.py +176 -0
- tigrbl_tests-0.4.0/tests/perf/helper_streaming_apps.py +167 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/helper_tigrbl_create_app.py +28 -4
- tigrbl_tests-0.4.0/tests/perf/helper_websocket_apps.py +125 -0
- tigrbl_tests-0.4.0/tests/perf/helper_webtransport_apps.py +93 -0
- tigrbl_tests-0.4.0/tests/perf/hot_block_lane_microbench.json +101 -0
- tigrbl_tests-0.4.0/tests/perf/hot_path_perf_suite_manifest.json +426 -0
- tigrbl_tests-0.4.0/tests/perf/hot_path_perf_suite_report.md +111 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-sse.json +126 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-sse.md +7 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-streaming.json +126 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-streaming.md +7 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-websocket.json +126 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-websocket.md +7 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-webtransport.json +87 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-webtransport.md +7 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark.json +80 -0
- tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark.md +31 -0
- tigrbl_tests-0.4.0/tests/perf/runtime_hotstate_microbench.json +58 -0
- tigrbl_tests-0.4.0/tests/perf/runtime_namespace_dictget_microbench.json +75 -0
- tigrbl_tests-0.4.0/tests/perf/runtime_typecheck_microbench.json +92 -0
- tigrbl_tests-0.4.0/tests/perf/test_compiled_input_strategy_microbench.py +252 -0
- tigrbl_tests-0.4.0/tests/perf/test_egress_body_coercion_microbench.py +99 -0
- tigrbl_tests-0.4.0/tests/perf/test_exact_route_marker_microbench.py +130 -0
- tigrbl_tests-0.4.0/tests/perf/test_fastapi_create_call_graph.py +157 -0
- tigrbl_tests-0.4.0/tests/perf/test_hot_block_lane_microbench.py +142 -0
- tigrbl_tests-0.4.0/tests/perf/test_runtime_hotstate_microbench.py +153 -0
- tigrbl_tests-0.4.0/tests/perf/test_runtime_namespace_dictget_microbench.py +204 -0
- tigrbl_tests-0.4.0/tests/perf/test_runtime_typecheck_microbench.py +134 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_tigrbl_create_call_graph.py +12 -8
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_tigrbl_vs_fastapi_create_benchmark.py +48 -19
- tigrbl_tests-0.4.0/tests/perf/test_validation_guard_strategy_microbench.py +116 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.benchmark.json +39 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.benchmark.md +16 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.bin +0 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.hexdump.txt +102 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.summary.json +427 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.benchmark.json +39 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.benchmark.md +16 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.bin +0 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.hexdump.txt +54 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.summary.json +417 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.benchmark.json +39 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.benchmark.md +16 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.bin +0 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.hexdump.txt +54 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.summary.json +417 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.benchmark.json +39 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.benchmark.md +16 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.bin +0 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.hexdump.txt +53 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.summary.json +417 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.benchmark.json +39 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.benchmark.md +16 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.bin +0 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.hexdump.txt +53 -0
- tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.summary.json +417 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_create_call_graph_250_ops.json +1589 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_sse_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_sse_transport_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_streaming_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_websocket_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_websocket_transport_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_webtransport_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/tigrbl_webtransport_transport_call_graph_250_ops.json +1591 -0
- tigrbl_tests-0.4.0/tests/perf/validation_guard_strategy_microbench.json +53 -0
- tigrbl_tests-0.4.0/tests/perf/wsproto_client.py +82 -0
- tigrbl_tests-0.4.0/tests/protocol/test_protocol_runtime_governance_contracts.py +44 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/runtime/test_rust_runtime_public_surface.py +8 -1
- tigrbl_tests-0.4.0/tests/security/test_httpbearer_contract.py +42 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/test_secdeps_execute_in_pre_tx.py +136 -1
- tigrbl_tests-0.4.0/tests/unit/runtime/test_app_framed_message_codec_contract.py +108 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_binding_exchange_normalization_contract.py +221 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_binding_subevent_phase_atom_legality_matrix_contract.py +224 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_bindingspec_event_subevent_schema_contract.py +135 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_bindingspec_kernelplan_protocol_compilation_contract.py +110 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_compiled_loop_regions_contract.py +163 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_completion_fence_emit_complete_contract.py +185 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_derived_runtime_subevent_taxonomy_contract.py +87 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_dispatch_exchange_family_subevent_atoms_contract.py +92 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_eventful_channel_state_metadata_contract.py +96 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_eventful_protocol_decorator_surface_contract.py +138 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_eventful_subevent_surface_contracts.py +109 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_eventkey_bit_coded_dispatch_contract.py +118 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_eventkey_hook_bucket_compilation_contract.py +113 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_events_runtime_behavior.py +3 -3
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_events_stages.py +16 -6
- tigrbl_tests-0.4.0/tests/unit/runtime/test_first_class_callback_runtime_contract.py +126 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_first_class_webhook_delivery_contract.py +123 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_framing_decode_encode_atoms_contract.py +95 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_hook_selector_matching_contract.py +177 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_http_rest_jsonrpc_atom_chain_contract.py +137 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_http_stream_atom_chain_contract.py +115 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_iterator_producer_contract.py +111 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_kernel_plan_event_ordering.py +2 -2
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_kernel_plan_full_ordering.py +6 -6
- tigrbl_tests-0.4.0/tests/unit/runtime/test_kernelplan_executor_runtime_shim_contract.py +52 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_lifespan_runtime_chain_contract.py +86 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_loop_ownership_mode_contract.py +130 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_loop_region_executor_contract.py +63 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_opchannel_capability_handshake_contract.py +123 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_packed_executor_hot_path_contract.py +981 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_anchor_ordering_parity_contract.py +49 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_phase_tree_contract.py +96 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_phase_tree_plan_contract.py +243 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_scope_schemas_contract.py +153 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_segment_fusion_contract.py +139 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_runtime_hook_legality_contract.py +90 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_segment_fusion_barrier_policy_contract.py +116 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_sse_runtime_contract.py +132 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_static_file_runtime_chain_contract.py +90 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_subevent_handler_dispatch_contract.py +114 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_subevent_transaction_units_contract.py +109 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_transport_accept_emit_close_atoms_contract.py +92 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_transport_event_registry_contract.py +100 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_two_axis_lifecycle_matrix_contract.py +151 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_websocket_atom_chain_contract.py +138 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_webtransport_transport_events_contract.py +84 -0
- tigrbl_tests-0.4.0/tests/unit/runtime/test_yield_iterator_producer_contract.py +63 -0
- tigrbl_tests-0.4.0/tests/unit/test_base_public_projection_contracts.py +55 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_custom_op_contract.py +98 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_file_transfer_op_contracts.py +92 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_pubsub_op_contracts.py +92 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_query_op_contracts.py +134 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_standard_op_contracts.py +142 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_stream_transport_op_contracts.py +92 -0
- tigrbl_tests-0.4.0/tests/unit/test_canonical_tail_op_contract.py +77 -0
- tigrbl_tests-0.4.0/tests/unit/test_concrete_response_classes.py +156 -0
- tigrbl_tests-0.4.0/tests/unit/test_declared_surface_metadata_contracts.py +59 -0
- tigrbl_tests-0.4.0/tests/unit/test_diagnostics_endpoint_contracts.py +88 -0
- tigrbl_tests-0.4.0/tests/unit/test_hook_surface_contracts.py +192 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_instance_naming_conventions.py +1 -0
- tigrbl_tests-0.4.0/tests/unit/test_jcs_canonicalization_contract.py +41 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_jsonrpc_openrpc.py +176 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernel_plan_labels.py +2 -2
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernelz_endpoint.py +1 -1
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_persist_options.py +1 -1
- tigrbl_tests-0.4.0/tests/unit/test_op_surface_owner_scope_contracts.py +113 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_auth_surface_contracts.py +145 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_bounded_middleware_catalog_contracts.py +57 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_cookie_form_upload_contracts.py +127 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_docs_descope_contracts.py +55 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_oidc_descope_contracts.py +88 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_static_files_contracts.py +78 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_streaming_sse_contracts.py +84 -0
- tigrbl_tests-0.4.0/tests/unit/test_operator_websocket_route_contracts.py +88 -0
- tigrbl_tests-0.4.0/tests/unit/test_security_dependency_surface_contracts.py +195 -0
- tigrbl_tests-0.4.0/tests/unit/test_spec_binding_app_engine_contracts.py +270 -0
- tigrbl_tests-0.4.0/tests/unit/test_spec_contracts_request_schema_storage.py +103 -0
- tigrbl_tests-0.4.0/tests/unit/test_spec_contracts_session_bindings.py +164 -0
- tigrbl_tests-0.4.0/tests/unit/test_spec_contracts_table_registry_template.py +108 -0
- tigrbl_tests-0.4.0/tests/unit/test_stdapi_transport_asgi_wsgi.py +150 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_tx_commit.py +1 -1
- tigrbl_tests-0.4.0/tests/unit/test_system_diagnostics_fixture_contracts.py +158 -0
- tigrbl_tests-0.4.0/tests/unit/test_system_docs_diagnostics_contracts.py +203 -0
- tigrbl_tests-0.4.0/tests/unit/test_system_uix_surface_contracts.py +115 -0
- tigrbl_tests-0.4.0/tests/unit/test_tigrbl_app_event_handlers.py +96 -0
- tigrbl_tests-0.4.0/tests/unit/test_transport_dispatch_parity_contract.py +121 -0
- tigrbl_tests-0.4.0/tests/unit/test_transport_response_concrete_class.py +62 -0
- tigrbl_tests-0.3.24.dev1/PKG-INFO +0 -60
- tigrbl_tests-0.3.24.dev1/README.md +0 -23
- tigrbl_tests-0.3.24.dev1/tests/perf/benchmark_results_create_uvicorn.json +0 -502
- tigrbl_tests-0.3.24.dev1/tests/perf/benchmark_results_create_uvicorn_sequential_10_rounds.json +0 -502
- tigrbl_tests-0.3.24.dev1/tests/perf/benchmark_results_executors_seq_10_rounds.json +0 -915
- tigrbl_tests-0.3.24.dev1/tests/perf/tigrbl_create_call_graph_250_ops.json +0 -1589
- tigrbl_tests-0.3.24.dev1/tests/unit/test_stdapi_transport_asgi_wsgi.py +0 -301
- tigrbl_tests-0.3.24.dev1/tests/unit/test_tigrbl_app_event_handlers.py +0 -53
- tigrbl_tests-0.3.24.dev1/tests/unit/test_transport_dispatch_parity_contract.py +0 -8
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/LICENSE +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/__init__.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_import_graph_audit.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_no_bindings_imports.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_operation_resolution_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_runtime_structure.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_trace_plan_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_transport_boundaries.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_transport_dispatch_convergence.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/conftest.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/appspec_corpus.canonical.json +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/appspec_corpus.negative.json +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/appspec_corpus_loader.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/cli_smoke_app.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_00_appspec_contract.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_01_kernel_plan_compilation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_02_bootstrap_plan.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_03_appspec_uvicorn_e2e.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_05_appspec_metamorphic.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_00_appspec_uvicorn_rest_rpc.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_01_imperative_uvicorn_rest_rpc.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/__init__.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/_support.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_appspec_prefixes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_default_opspec_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_kernel_plan_routing.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_mapping_plan_compilation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_route_rpc_prebinding.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_route_runtime_fallback_atoms.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_uvicorn_e2e_appspec.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_acronym_route_name.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_allow_anon.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_apikey_generation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_authn_provider_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_bindings_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_bulk_docs_client.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_core_access.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_engine_install_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_engine_resolver_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_error_mappings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_field_spec_effects.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_header_io_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_healthz_methodz_hookz.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_hook_ctx_v3_i9n.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_hook_lifecycle.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_iospec_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_iospec_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_jsonrpc_batch_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_key_digest_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_list_filters_optional.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mixins.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_favicon_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_lens_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_openapi_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_openrpc_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_swagger_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_nested_path_schema_and_rpc.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_nested_routing_depth.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_alias_examples.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_core_crud_order.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_owner_scope_uvicorn_matrix.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_openapi_clear_response_schema.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_openapi_schema_examples_presence.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_opspec_effects_i9n_test.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_opspec_pre_tx_deps.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_owner_tenant_policy.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_request_extras.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_rest_fallback_serialization.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_rest_row_serialization.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_rest_rpc_parity_v3.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_row_result_serialization.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema_ctx_attributes_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema_ctx_op_ctx_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema_ctx_spec_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_sqlite_attachments.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_storage_spec_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_symmetry_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_api_app_usage_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_api_usage_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_api_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_include_api_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_multi_api_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_usage_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_uvicorn.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_transport_dispatch_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_types_deprecation_exports.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_uvicorn_transport_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_bulk_rest_endpoints.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_default_rest_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_default_rpc_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_opspec_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_verb_alias_policy.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/uvicorn_utils.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/mount/__init__.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/mount/test_mount_favico.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/options/test_rest_options.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/options/test_rpc_options.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/__init__.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_atom_parity_corpus.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_executor_metamorphic_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_hook_runtime_stage_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_stdapi_openapi_docs.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_stdapi_primitives.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_stdapi_routing.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/__init__.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/benchmark_results_executors_seq_10_rounds_1000_ops.json +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_collect_caching.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_fastapi_vs_tigrbl_executor_benchmark.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_hookz_performance.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_methodz_performance.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_asgi_scope_compat.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_authn_strip.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_dot_notation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_response_conveniences.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_transport_convenience_dot_notation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/requests/test_request_json_modes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/response/test_response_dot_notation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/response/test_response_transport_convenience_dot_notation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/atoms/test_rust_atoms_public_surface.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/ffi/test_rust_binding_trace.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/kernel/test_rust_kernel_public_surface.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/parity/test_rust_parity_contract.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/runtime/test_rust_runtime_engine_policy.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/security/test_dot_notation_schemes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/security/test_schemes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/__init__.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_alias_ctx_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_declarative_surface.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_engine_ctx_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_hook_ctx_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_op_alias_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_op_ctx_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_response_ctx_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_schema_ctx_bindings.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/response_utils.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_emit_paired_post.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_emit_paired_pre.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_emit_readtime_alias.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_out_masking.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_refresh_demand.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_resolve_assemble.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_resolve_paired_gen.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_route_protocol_detect.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_schema_collect_in.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_schema_collect_out.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_storage_to_stored.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_build_in.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_build_out.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_dump.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_validate_in.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_atom_stage_window_static.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_compilation_runtime_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_ingress_egress_access.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_kernel_runtime_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_ordering_runtime_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_payload_select_header_merge.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_payload_select_invalid_rpc_params.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_acol_vcol_knobs.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_alias_ctx_op_alias_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_alias_ctx_op_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_api_level_set_auth.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_app_model_defaults.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_app_reexport.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_app_spec_normalization.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_attrdict_vs_simplenamespace.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_authorize_runtime_secdep.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_base_columnspec_inheritance.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_base_facade_initialize.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_build_list_params_spec_model.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_bulk_body_annotation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_bulk_response_schema.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_cli_cmds.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_cli_srv.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_colspec_map_isolation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_collect_mixins.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_mro_collect_namespace.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_rest_rpc_results.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_table_orm_binding.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_config_dataclass_none.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_crud_bulk_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_crud_default_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_crud_methods.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_wrap_memoization.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_db_dependency.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_declared_surface_docs.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_decorator_and_collect.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_default_schema_selection.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_default_tags.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_diagnostics_no_compat_module.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_docs_security_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_api.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_app.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_op.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_table.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_session_database_availability.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_spec_and_shortcuts.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_usage_levels.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_field_spec_attrs.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_file_response.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_get_schema.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_handler_step_qualname.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hook_ctx_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hook_ctx_binding.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hookz_empty_stage.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_http_route_registration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hybrid_session_run_sync.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_in_tx.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_include_model_columns_namespace.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_include_models_base_prefix.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_include_tables_base_prefix.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_async_task.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_cross_ddl.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_mixed_engines.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_task_schedule.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_io_spec_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_iospec_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_iospec_effects.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_jsonrpc_id_example.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_jsonrpc_router_default_tag.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernel_invoke_ctx.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernel_opview_on_demand.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_make_column_shortcuts.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_mapping_bind_response_export.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_mapping_plan_precedence.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_middleware_http_and_cors.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_mixins_sqlalchemy.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_alias.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_class_engine_binding.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_arity_paths.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_core_crud_integration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_custom_target_persist.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_dynamic_attach.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_parameter_matrix.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_openapi_documentation_security_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_openapi_openrpc_schema_separation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_openrpc_documentation_security_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_operator_surface_closure.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_operator_surface_docs_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_opspec_effects.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_postgres_engine_errors.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_postgres_env_vars.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_relationship_alias_cols.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_request_body_schema.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_request_response_examples.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_resolver_interning_warmup.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_resolver_precedence.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_alias_table_rpc.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_ctx_precedence.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_diagnostics_kernelz.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_html_jinja_behavior.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_parity.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_rest.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_rpc.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_template.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_uuid.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_all_default_op_verbs.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_bulk_delete_suppresses_clear.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_jsonrpc_metamorphic_default_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_no_schema_jsonable.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_operation_id_uniqueness.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_output_serialization_extras.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_request_mapping_access.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_rpc_parity_default_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_rpc_prefixes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_rpc_symmetry.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_router_compatibility_shims.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_router_dependency_execution_blocked.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rpc_all_default_op_verbs.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rpc_default_ops.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schema_ctx_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schema_ctx_plain_class.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schema_spec_presence.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schemas_binding.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_security_per_route.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_should_wire_canonical.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_api.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_app.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_column.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_engine.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_field.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_hook.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_io.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_op.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_snapshots.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_storage.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_table.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sqlite_attachments.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sqlite_uuid_type.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_stdapi_request_injection.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_storage_spec_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_handler_crud.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_run_rollback.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_tx_async_begin.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_tx_begin.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_system_docs_builders.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_base_exports.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_collect_spec.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_columns_namespace.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_model_attribute_contract.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_namespace_init.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_namespace_isolation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_app_configuration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_app_instantiation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_app_subclass_definition.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_configuration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_instantiation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_subclass_definition.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_configuration.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_instantiation.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_state.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_subclass_definition.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_transport_gw_contract.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_transport_security_runtime_only.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_default_root_endpoint.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_favicon_endpoint.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_healthz_endpoint.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_op_alias.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_op_ctx_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_schemas_and_decorators.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_storage_spec_attributes.py +0 -0
- {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_verbosity.py +0 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tigrbl_tests
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: tigrbl_tests is a testkit package for pytest fixtures, shared assertions, and integration test helpers for Tigrbl packages.
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Keywords: tigrbl,asgi,api,json-rpc,rest,sqlalchemy,pydantic,pytest,testing,fixtures,tests,testkit,integration-testing
|
|
8
|
+
Author: Jacob Stewart
|
|
9
|
+
Author-email: jacob@swarmauri.com
|
|
10
|
+
Requires-Python: >=3.10,<3.14
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Information Technology
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
+
Classifier: Framework :: Pytest
|
|
26
|
+
Classifier: Topic :: Software Development :: Testing
|
|
27
|
+
Requires-Dist: asyncpg (>=0.30.0)
|
|
28
|
+
Requires-Dist: flake8 (>=7.0)
|
|
29
|
+
Requires-Dist: jinja2 (>=3.1.0)
|
|
30
|
+
Requires-Dist: psycopg2-binary (>=2.9.9)
|
|
31
|
+
Requires-Dist: pytest (>=8.0)
|
|
32
|
+
Requires-Dist: pytest-asyncio (>=0.24.0)
|
|
33
|
+
Requires-Dist: pytest-benchmark (>=4.0.0)
|
|
34
|
+
Requires-Dist: pytest-json-report (>=1.5.0)
|
|
35
|
+
Requires-Dist: pytest-timeout (>=2.3.1)
|
|
36
|
+
Requires-Dist: pytest-xdist (>=3.6.1)
|
|
37
|
+
Requires-Dist: python-dotenv
|
|
38
|
+
Requires-Dist: requests (>=2.32.3)
|
|
39
|
+
Requires-Dist: ruff (>=0.9.9)
|
|
40
|
+
Requires-Dist: tigrbl
|
|
41
|
+
Requires-Dist: tigrbl_client
|
|
42
|
+
Project-URL: Discord, https://discord.gg/K4YTAPapjR
|
|
43
|
+
Project-URL: Homepage, https://github.com/tigrbl/tigrbl
|
|
44
|
+
Project-URL: Issues, https://github.com/tigrbl/tigrbl/issues
|
|
45
|
+
Project-URL: Organization, https://github.com/tigrbl
|
|
46
|
+
Project-URL: Repository, https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests
|
|
47
|
+
Description-Content-Type: text/markdown
|
|
48
|
+
|
|
49
|
+

|
|
50
|
+
|
|
51
|
+
<p align="center">
|
|
52
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
53
|
+
<img src="https://img.shields.io/pypi/dm/tigrbl_tests" alt="PyPI downloads for tigrbl_tests"/></a>
|
|
54
|
+
<a href="https://hits.sh/github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests/">
|
|
55
|
+
<img src="https://hits.sh/github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests.svg" alt="Repository views for tigrbl_tests"/></a>
|
|
56
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
57
|
+
<img src="https://img.shields.io/pypi/pyversions/tigrbl_tests" alt="Supported Python versions for tigrbl_tests"/></a>
|
|
58
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
59
|
+
<img src="https://img.shields.io/pypi/l/tigrbl_tests" alt="PyPI license metadata for tigrbl_tests"/></a>
|
|
60
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
61
|
+
<img src="https://img.shields.io/pypi/v/tigrbl_tests?label=tigrbl_tests&color=green" alt="PyPI version for tigrbl_tests"/></a>
|
|
62
|
+
</p>
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
# Tigrbl tests
|
|
67
|
+
|
|
68
|
+
**Run examples and comparisons: [inspect `tigrbl_tests` examples and benchmark surfaces](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests).**
|
|
69
|
+
|
|
70
|
+
tigrbl_tests is a testkit package for pytest fixtures, shared assertions, and integration test helpers for Tigrbl packages.
|
|
71
|
+
|
|
72
|
+
`tigrbl_tests` is part of the Tigrbl package graph. It documents package-resident classes, concepts, extension points, and execution responsibilities while cross-linking to the facade, core specs, canonical mapping, runtime phases, concrete objects, operation packages, engine plugins, and Rust crates that complete the system.
|
|
73
|
+
|
|
74
|
+
## Resident concepts
|
|
75
|
+
|
|
76
|
+
- `tigrbl_tests` owns shared fixtures, integration examples, parity checks, benchmark-ready scenarios, and comparison surfaces including places where Tigrbl-vs-FastAPI evidence should live.
|
|
77
|
+
- Document reproducible benchmark commands here rather than in the facade package. The facade should link to evidence; this package should hold the examples, fixtures, and test harnesses.
|
|
78
|
+
|
|
79
|
+
## Package ecosystem cross-links
|
|
80
|
+
|
|
81
|
+
Core cross-links:
|
|
82
|
+
- [`tigrbl`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl) - Facade package
|
|
83
|
+
- [`tigrbl_core`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_core) - Spec and primitive contracts
|
|
84
|
+
- [`tigrbl_canon`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_canon) - Canonical mapping and operation resolution
|
|
85
|
+
- [`tigrbl_runtime`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_runtime) - Phase lifecycle and execution runtime
|
|
86
|
+
- [`tigrbl_concrete`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_concrete) - Native objects, transports, hooks, deps, and secdeps
|
|
87
|
+
- [`tigrbl_ops_oltp`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_ops_oltp) - CRUD and transactional operation handlers
|
|
88
|
+
- [`tigrbl_ops_olap`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_ops_olap) - Analytical operation boundary
|
|
89
|
+
- [`tigrbl_ops_realtime`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_ops_realtime) - Stream, transfer, datagram, and realtime ops
|
|
90
|
+
- [`tigrbl_tests`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests) - Examples, benchmark, parity, and package test surfaces
|
|
91
|
+
Engine cross-links:
|
|
92
|
+
- [`tigrbl_engine_sqlite`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_sqlite) - SQLite local transactional engine
|
|
93
|
+
- [`tigrbl_engine_postgres`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_postgres) - PostgreSQL SQLAlchemy engine
|
|
94
|
+
- [`tigrbl_engine_inmemory`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_inmemory) - Process-local transactional in-memory engine
|
|
95
|
+
- [`tigrbl_engine_redis`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_redis) - Redis cache/database engine
|
|
96
|
+
- [`tigrbl_engine_duckdb`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_duckdb) - DuckDB analytical engine
|
|
97
|
+
- [`tigrbl_engine_pandas`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_pandas) - pandas DataFrame engine
|
|
98
|
+
- [`tigrbl_engine_pgsqli_wal`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_pgsqli_wal) - PostgreSQL and SQLite WAL engine
|
|
99
|
+
Rust cross-links:
|
|
100
|
+
- [`tigrbl_rs_spec`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_spec) - Rust IR and AppSpec model
|
|
101
|
+
- [`tigrbl_rs_atoms`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_atoms) - Rust atom catalog and phase algebra
|
|
102
|
+
- [`tigrbl_rs_kernel`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_kernel) - Rust compiler and plan optimizer
|
|
103
|
+
- [`tigrbl_rs_runtime`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_runtime) - Rust executor and callback fences
|
|
104
|
+
- [`tigrbl_rs_ports`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_ports) - Engine, session, transaction, callback, and handler ports
|
|
105
|
+
|
|
106
|
+
## Install
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
pip install tigrbl_tests
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Package discovery
|
|
113
|
+
|
|
114
|
+
Search and AI discovery terms for `tigrbl_tests` include: tigrbl, ASGI, REST, JSON-RPC, SQLAlchemy, Pydantic, asgi, api, json-rpc, rest, sqlalchemy, pydantic, pytest, testing, fixtures, tests, testkit, integration-testing.
|
|
115
|
+
|
|
116
|
+
## Package-local entry point
|
|
117
|
+
|
|
118
|
+
This file is a package-local distribution entry point.
|
|
119
|
+
It is not the authoritative location for repository governance, current target status, current state reporting, certification claims, or release evidence.
|
|
120
|
+
|
|
121
|
+
## Canonical repository docs
|
|
122
|
+
|
|
123
|
+
- `README.md`
|
|
124
|
+
- `docs/README.md`
|
|
125
|
+
- `docs/conformance/CURRENT_TARGET.md`
|
|
126
|
+
- `docs/conformance/CURRENT_STATE.md`
|
|
127
|
+
- `docs/conformance/NEXT_STEPS.md`
|
|
128
|
+
- `docs/governance/DOC_POINTERS.md`
|
|
129
|
+
- `docs/developer/PACKAGE_CATALOG.md`
|
|
130
|
+
- `docs/developer/PACKAGE_LAYOUT.md`
|
|
131
|
+
|
|
132
|
+
## Package identity
|
|
133
|
+
|
|
134
|
+
- canonical repository: `https://github.com/tigrbl/tigrbl`
|
|
135
|
+
- organization: `https://github.com/tigrbl`
|
|
136
|
+
- social: `https://discord.gg/K4YTAPapjR`
|
|
137
|
+
- package path: `https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests`
|
|
138
|
+
- workspace path: `pkgs/core/tigrbl_tests`
|
|
139
|
+
- workspace class: core Python package
|
|
140
|
+
- implementation layout: `tigrbl_tests/`
|
|
141
|
+
|
|
142
|
+
Long-form repository documentation is governed from `docs/`.
|
|
143
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
5
|
+
<img src="https://img.shields.io/pypi/dm/tigrbl_tests" alt="PyPI downloads for tigrbl_tests"/></a>
|
|
6
|
+
<a href="https://hits.sh/github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests/">
|
|
7
|
+
<img src="https://hits.sh/github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests.svg" alt="Repository views for tigrbl_tests"/></a>
|
|
8
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
9
|
+
<img src="https://img.shields.io/pypi/pyversions/tigrbl_tests" alt="Supported Python versions for tigrbl_tests"/></a>
|
|
10
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
11
|
+
<img src="https://img.shields.io/pypi/l/tigrbl_tests" alt="PyPI license metadata for tigrbl_tests"/></a>
|
|
12
|
+
<a href="https://pypi.org/project/tigrbl_tests/">
|
|
13
|
+
<img src="https://img.shields.io/pypi/v/tigrbl_tests?label=tigrbl_tests&color=green" alt="PyPI version for tigrbl_tests"/></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Tigrbl tests
|
|
19
|
+
|
|
20
|
+
**Run examples and comparisons: [inspect `tigrbl_tests` examples and benchmark surfaces](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests).**
|
|
21
|
+
|
|
22
|
+
tigrbl_tests is a testkit package for pytest fixtures, shared assertions, and integration test helpers for Tigrbl packages.
|
|
23
|
+
|
|
24
|
+
`tigrbl_tests` is part of the Tigrbl package graph. It documents package-resident classes, concepts, extension points, and execution responsibilities while cross-linking to the facade, core specs, canonical mapping, runtime phases, concrete objects, operation packages, engine plugins, and Rust crates that complete the system.
|
|
25
|
+
|
|
26
|
+
## Resident concepts
|
|
27
|
+
|
|
28
|
+
- `tigrbl_tests` owns shared fixtures, integration examples, parity checks, benchmark-ready scenarios, and comparison surfaces including places where Tigrbl-vs-FastAPI evidence should live.
|
|
29
|
+
- Document reproducible benchmark commands here rather than in the facade package. The facade should link to evidence; this package should hold the examples, fixtures, and test harnesses.
|
|
30
|
+
|
|
31
|
+
## Package ecosystem cross-links
|
|
32
|
+
|
|
33
|
+
Core cross-links:
|
|
34
|
+
- [`tigrbl`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl) - Facade package
|
|
35
|
+
- [`tigrbl_core`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_core) - Spec and primitive contracts
|
|
36
|
+
- [`tigrbl_canon`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_canon) - Canonical mapping and operation resolution
|
|
37
|
+
- [`tigrbl_runtime`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_runtime) - Phase lifecycle and execution runtime
|
|
38
|
+
- [`tigrbl_concrete`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_concrete) - Native objects, transports, hooks, deps, and secdeps
|
|
39
|
+
- [`tigrbl_ops_oltp`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_ops_oltp) - CRUD and transactional operation handlers
|
|
40
|
+
- [`tigrbl_ops_olap`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_ops_olap) - Analytical operation boundary
|
|
41
|
+
- [`tigrbl_ops_realtime`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_ops_realtime) - Stream, transfer, datagram, and realtime ops
|
|
42
|
+
- [`tigrbl_tests`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests) - Examples, benchmark, parity, and package test surfaces
|
|
43
|
+
Engine cross-links:
|
|
44
|
+
- [`tigrbl_engine_sqlite`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_sqlite) - SQLite local transactional engine
|
|
45
|
+
- [`tigrbl_engine_postgres`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_postgres) - PostgreSQL SQLAlchemy engine
|
|
46
|
+
- [`tigrbl_engine_inmemory`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_inmemory) - Process-local transactional in-memory engine
|
|
47
|
+
- [`tigrbl_engine_redis`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_redis) - Redis cache/database engine
|
|
48
|
+
- [`tigrbl_engine_duckdb`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_duckdb) - DuckDB analytical engine
|
|
49
|
+
- [`tigrbl_engine_pandas`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_pandas) - pandas DataFrame engine
|
|
50
|
+
- [`tigrbl_engine_pgsqli_wal`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/engines/tigrbl_engine_pgsqli_wal) - PostgreSQL and SQLite WAL engine
|
|
51
|
+
Rust cross-links:
|
|
52
|
+
- [`tigrbl_rs_spec`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_spec) - Rust IR and AppSpec model
|
|
53
|
+
- [`tigrbl_rs_atoms`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_atoms) - Rust atom catalog and phase algebra
|
|
54
|
+
- [`tigrbl_rs_kernel`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_kernel) - Rust compiler and plan optimizer
|
|
55
|
+
- [`tigrbl_rs_runtime`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_runtime) - Rust executor and callback fences
|
|
56
|
+
- [`tigrbl_rs_ports`](https://github.com/tigrbl/tigrbl/tree/master/crates/tigrbl_rs_ports) - Engine, session, transaction, callback, and handler ports
|
|
57
|
+
|
|
58
|
+
## Install
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pip install tigrbl_tests
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Package discovery
|
|
65
|
+
|
|
66
|
+
Search and AI discovery terms for `tigrbl_tests` include: tigrbl, ASGI, REST, JSON-RPC, SQLAlchemy, Pydantic, asgi, api, json-rpc, rest, sqlalchemy, pydantic, pytest, testing, fixtures, tests, testkit, integration-testing.
|
|
67
|
+
|
|
68
|
+
## Package-local entry point
|
|
69
|
+
|
|
70
|
+
This file is a package-local distribution entry point.
|
|
71
|
+
It is not the authoritative location for repository governance, current target status, current state reporting, certification claims, or release evidence.
|
|
72
|
+
|
|
73
|
+
## Canonical repository docs
|
|
74
|
+
|
|
75
|
+
- `README.md`
|
|
76
|
+
- `docs/README.md`
|
|
77
|
+
- `docs/conformance/CURRENT_TARGET.md`
|
|
78
|
+
- `docs/conformance/CURRENT_STATE.md`
|
|
79
|
+
- `docs/conformance/NEXT_STEPS.md`
|
|
80
|
+
- `docs/governance/DOC_POINTERS.md`
|
|
81
|
+
- `docs/developer/PACKAGE_CATALOG.md`
|
|
82
|
+
- `docs/developer/PACKAGE_LAYOUT.md`
|
|
83
|
+
|
|
84
|
+
## Package identity
|
|
85
|
+
|
|
86
|
+
- canonical repository: `https://github.com/tigrbl/tigrbl`
|
|
87
|
+
- organization: `https://github.com/tigrbl`
|
|
88
|
+
- social: `https://discord.gg/K4YTAPapjR`
|
|
89
|
+
- package path: `https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests`
|
|
90
|
+
- workspace path: `pkgs/core/tigrbl_tests`
|
|
91
|
+
- workspace class: core Python package
|
|
92
|
+
- implementation layout: `tigrbl_tests/`
|
|
93
|
+
|
|
94
|
+
Long-form repository documentation is governed from `docs/`.
|
|
@@ -1,23 +1,45 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tigrbl_tests"
|
|
3
|
-
version = "0.
|
|
4
|
-
description = "
|
|
5
|
-
license = "Apache-2.0"
|
|
3
|
+
version = "0.4.0"
|
|
4
|
+
description = "tigrbl_tests is a testkit package for pytest fixtures, shared assertions, and integration test helpers for Tigrbl packages."
|
|
6
5
|
readme = "README.md"
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
license = "Apache-2.0"
|
|
7
|
+
keywords = [
|
|
8
|
+
"tigrbl",
|
|
9
|
+
"asgi",
|
|
10
|
+
"api",
|
|
11
|
+
"json-rpc",
|
|
12
|
+
"rest",
|
|
13
|
+
"sqlalchemy",
|
|
14
|
+
"pydantic",
|
|
15
|
+
"pytest",
|
|
16
|
+
"testing",
|
|
17
|
+
"fixtures",
|
|
18
|
+
"tests",
|
|
19
|
+
"testkit",
|
|
20
|
+
"integration-testing",
|
|
21
|
+
]
|
|
9
22
|
classifiers = [
|
|
10
|
-
"Development Status ::
|
|
11
|
-
"
|
|
23
|
+
"Development Status :: 3 - Alpha",
|
|
24
|
+
"Intended Audience :: Developers",
|
|
25
|
+
"Intended Audience :: Information Technology",
|
|
26
|
+
"Operating System :: OS Independent",
|
|
27
|
+
"Programming Language :: Python",
|
|
28
|
+
"Programming Language :: Python :: 3",
|
|
29
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
12
30
|
"Programming Language :: Python :: 3.10",
|
|
13
31
|
"Programming Language :: Python :: 3.11",
|
|
14
32
|
"Programming Language :: Python :: 3.12",
|
|
15
33
|
"Programming Language :: Python :: 3.13",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
34
|
+
"Topic :: Internet :: WWW/HTTP",
|
|
35
|
+
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
36
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
37
|
+
"Framework :: Pytest",
|
|
38
|
+
"Topic :: Software Development :: Testing",
|
|
19
39
|
]
|
|
40
|
+
requires-python = ">=3.10,<3.14"
|
|
20
41
|
authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
|
|
42
|
+
|
|
21
43
|
dependencies = [
|
|
22
44
|
"tigrbl",
|
|
23
45
|
"tigrbl_client",
|
|
@@ -35,16 +57,14 @@ dependencies = [
|
|
|
35
57
|
"pytest-benchmark>=4.0.0",
|
|
36
58
|
"jinja2>=3.1.0",
|
|
37
59
|
]
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"performance",
|
|
47
|
-
]
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
[project.urls]
|
|
63
|
+
Organization = "https://github.com/tigrbl"
|
|
64
|
+
Discord = "https://discord.gg/K4YTAPapjR"
|
|
65
|
+
Homepage = "https://github.com/tigrbl/tigrbl"
|
|
66
|
+
Repository = "https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_tests"
|
|
67
|
+
Issues = "https://github.com/tigrbl/tigrbl/issues"
|
|
48
68
|
|
|
49
69
|
[tool.uv.sources]
|
|
50
70
|
tigrbl = { workspace = true }
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from types import SimpleNamespace
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from sqlalchemy import Column, String
|
|
8
|
+
|
|
9
|
+
from tigrbl import Request, TigrblApp
|
|
10
|
+
from tigrbl.factories.engine import mem
|
|
11
|
+
from tigrbl.orm.mixins import GUIDPk
|
|
12
|
+
from tigrbl.orm.tables import TableBase
|
|
13
|
+
from tigrbl.system.diagnostics import mount_diagnostics
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class SystemDiagnosticsFixtureWidget(TableBase, GUIDPk):
|
|
17
|
+
__tablename__ = "system_diagnostics_fixture_widgets"
|
|
18
|
+
|
|
19
|
+
name = Column(String, nullable=False)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class UnavailableDiagnosticsDb:
|
|
23
|
+
def execute(self, *_args: Any, **_kwargs: Any) -> None:
|
|
24
|
+
raise RuntimeError("fixture database unavailable")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class AvailableDiagnosticsDb:
|
|
28
|
+
def execute(self, *_args: Any, **_kwargs: Any) -> None:
|
|
29
|
+
return None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@dataclass(frozen=True)
|
|
33
|
+
class SystemDiagnosticsFixture:
|
|
34
|
+
app: TigrblApp
|
|
35
|
+
healthz_path: str
|
|
36
|
+
absent_default_path: str
|
|
37
|
+
expected_healthz_payload: dict[str, bool]
|
|
38
|
+
warning_vocabulary: frozenset[str]
|
|
39
|
+
|
|
40
|
+
def request(
|
|
41
|
+
self,
|
|
42
|
+
path: str | None = None,
|
|
43
|
+
*,
|
|
44
|
+
db: Any | None = None,
|
|
45
|
+
dbs: dict[str, Any] | None = None,
|
|
46
|
+
query: dict[str, list[str]] | None = None,
|
|
47
|
+
) -> Request:
|
|
48
|
+
state = SimpleNamespace()
|
|
49
|
+
if db is not None:
|
|
50
|
+
state.db = db
|
|
51
|
+
if dbs is not None:
|
|
52
|
+
state.dbs = dbs
|
|
53
|
+
return Request(
|
|
54
|
+
method="GET",
|
|
55
|
+
path=path or self.healthz_path,
|
|
56
|
+
headers={},
|
|
57
|
+
query=query or {},
|
|
58
|
+
path_params={},
|
|
59
|
+
body=b"",
|
|
60
|
+
state=state,
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
def available_db_request(self) -> Request:
|
|
64
|
+
return self.request(db=AvailableDiagnosticsDb())
|
|
65
|
+
|
|
66
|
+
def unavailable_db_request(self) -> Request:
|
|
67
|
+
return self.request(db=UnavailableDiagnosticsDb())
|
|
68
|
+
|
|
69
|
+
def multi_db_request(self, *, detail: str | None = None) -> Request:
|
|
70
|
+
query = {"dbs": [detail]} if detail is not None else {}
|
|
71
|
+
return self.request(
|
|
72
|
+
dbs={
|
|
73
|
+
"primary": AvailableDiagnosticsDb(),
|
|
74
|
+
"analytics": AvailableDiagnosticsDb(),
|
|
75
|
+
"archive": UnavailableDiagnosticsDb(),
|
|
76
|
+
},
|
|
77
|
+
query=query,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
def no_db_warning_request(self) -> Request:
|
|
81
|
+
return self.request(query={"warn_no_db": ["1"]})
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def build_system_diagnostics_fixture(
|
|
85
|
+
*,
|
|
86
|
+
prefix: str = "/internal",
|
|
87
|
+
) -> SystemDiagnosticsFixture:
|
|
88
|
+
app = TigrblApp(engine=mem(async_=False), mount_system=False)
|
|
89
|
+
app.include_table(SystemDiagnosticsFixtureWidget)
|
|
90
|
+
app.initialize()
|
|
91
|
+
app.mount_jsonrpc()
|
|
92
|
+
app.include_router(mount_diagnostics(app), prefix=prefix)
|
|
93
|
+
|
|
94
|
+
return SystemDiagnosticsFixture(
|
|
95
|
+
app=app,
|
|
96
|
+
healthz_path=f"{prefix.rstrip('/')}/healthz",
|
|
97
|
+
absent_default_path="/system/healthz",
|
|
98
|
+
expected_healthz_payload={"ok": True},
|
|
99
|
+
warning_vocabulary=frozenset({"db-not-configured", "db-unavailable"}),
|
|
100
|
+
)
|
{tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_04_appspec_corpus_fixture.py
RENAMED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from copy import deepcopy
|
|
4
|
+
|
|
3
5
|
from sqlalchemy import Column, String
|
|
4
6
|
import pytest
|
|
5
7
|
|
|
@@ -44,6 +46,57 @@ def test_appspec_corpus_fixture_schema_and_ids(filename: str, lane: str) -> None
|
|
|
44
46
|
validate_corpus(corpus, lane=lane)
|
|
45
47
|
|
|
46
48
|
|
|
49
|
+
@pytest.mark.acceptance
|
|
50
|
+
def test_canonical_corpus_cases_have_unique_routes_tables_and_modes() -> None:
|
|
51
|
+
corpus = load_corpus("appspec_corpus.canonical.json")
|
|
52
|
+
validate_corpus(corpus, lane="canonical")
|
|
53
|
+
|
|
54
|
+
case_ids = [case["id"] for case in corpus["cases"]]
|
|
55
|
+
table_names = [case["table"]["tablename"] for case in corpus["cases"]]
|
|
56
|
+
modes = [case["mode"] for case in corpus["cases"]]
|
|
57
|
+
|
|
58
|
+
assert len(case_ids) == len(set(case_ids))
|
|
59
|
+
assert len(table_names) == len(set(table_names))
|
|
60
|
+
assert set(modes) == {"rest_rpc_parity", "rest_rpc_roundtrip"}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@pytest.mark.acceptance
|
|
64
|
+
def test_canonical_corpus_compilation_is_deterministic() -> None:
|
|
65
|
+
corpus = load_corpus("appspec_corpus.canonical.json")
|
|
66
|
+
validate_corpus(corpus, lane="canonical")
|
|
67
|
+
case = corpus["cases"][0]
|
|
68
|
+
|
|
69
|
+
def compile_signature() -> tuple[str, str, tuple[str | None, ...]]:
|
|
70
|
+
widget = _make_widget_model(
|
|
71
|
+
tablename=case["table"]["tablename"],
|
|
72
|
+
resource=case["table"]["resource"],
|
|
73
|
+
include_jsonrpc=True,
|
|
74
|
+
)
|
|
75
|
+
spec = AppSpec(
|
|
76
|
+
title=case["app"]["title"],
|
|
77
|
+
version=case["app"]["version"],
|
|
78
|
+
engine=mem(async_=False),
|
|
79
|
+
tables=(widget,),
|
|
80
|
+
jsonrpc_prefix=case["app"]["jsonrpc_prefix"],
|
|
81
|
+
system_prefix=case["app"]["system_prefix"],
|
|
82
|
+
)
|
|
83
|
+
app = TigrblApp.from_spec(spec)
|
|
84
|
+
paths = tuple(sorted(getattr(route, "path", None) for route in app.routes))
|
|
85
|
+
return app.title, app.version, paths
|
|
86
|
+
|
|
87
|
+
assert compile_signature() == compile_signature()
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
@pytest.mark.acceptance
|
|
91
|
+
def test_negative_corpus_rejects_duplicate_case_ids() -> None:
|
|
92
|
+
corpus = load_corpus("appspec_corpus.negative.json")
|
|
93
|
+
duplicate = deepcopy(corpus)
|
|
94
|
+
duplicate["cases"][1]["id"] = duplicate["cases"][0]["id"]
|
|
95
|
+
|
|
96
|
+
with pytest.raises(ValueError, match="duplicate case id"):
|
|
97
|
+
validate_corpus(duplicate, lane="negative")
|
|
98
|
+
|
|
99
|
+
|
|
47
100
|
@pytest.mark.acceptance
|
|
48
101
|
def test_canonical_corpus_materializes_rpc_mounts() -> None:
|
|
49
102
|
corpus = load_corpus("appspec_corpus.canonical.json")
|
{tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_01_appspec_corpus_uvicorn.py
RENAMED
|
@@ -138,3 +138,49 @@ async def test_negative_corpus_unknown_rpc_method_returns_fail_closed_contract()
|
|
|
138
138
|
assert body.get("detail") == case["expect"]["detail"]
|
|
139
139
|
finally:
|
|
140
140
|
await stop_uvicorn(server, task)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
@pytest.mark.acceptance
|
|
144
|
+
@pytest.mark.asyncio
|
|
145
|
+
async def test_negative_corpus_no_rpc_binding_has_no_rpc_runtime_side_effect() -> None:
|
|
146
|
+
corpus = load_corpus("appspec_corpus.negative.json")
|
|
147
|
+
validate_corpus(corpus, lane="negative")
|
|
148
|
+
case = next(c for c in corpus["cases"] if c["mode"] == "no_rpc_binding_no_mount")
|
|
149
|
+
|
|
150
|
+
widget = _make_widget_model(
|
|
151
|
+
tablename=case["table"]["tablename"],
|
|
152
|
+
resource=case["table"]["resource"],
|
|
153
|
+
include_jsonrpc=False,
|
|
154
|
+
)
|
|
155
|
+
spec = AppSpec(
|
|
156
|
+
title=case["app"]["title"],
|
|
157
|
+
version=case["app"]["version"],
|
|
158
|
+
engine=mem(async_=False),
|
|
159
|
+
tables=(widget,),
|
|
160
|
+
jsonrpc_prefix=case["app"]["jsonrpc_prefix"],
|
|
161
|
+
system_prefix=case["app"]["system_prefix"],
|
|
162
|
+
)
|
|
163
|
+
app = TigrblApp.from_spec(spec)
|
|
164
|
+
port = pick_unique_port()
|
|
165
|
+
base_url, server, task = await start_uvicorn(app, port=port)
|
|
166
|
+
try:
|
|
167
|
+
async with httpx.AsyncClient(base_url=base_url, timeout=10.0) as client:
|
|
168
|
+
missing_rpc = await client.post(
|
|
169
|
+
f"{case['app']['jsonrpc_prefix']}/",
|
|
170
|
+
json={
|
|
171
|
+
"jsonrpc": "2.0",
|
|
172
|
+
"method": "Widget.create",
|
|
173
|
+
"params": {"name": "should-not-execute"},
|
|
174
|
+
"id": 44,
|
|
175
|
+
},
|
|
176
|
+
)
|
|
177
|
+
rest = await client.post(
|
|
178
|
+
f"/{case['table']['resource']}",
|
|
179
|
+
json={"name": "rest-still-works"},
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
assert missing_rpc.status_code == 404
|
|
183
|
+
assert missing_rpc.json()["detail"] == "No runtime operation matched request."
|
|
184
|
+
assert rest.status_code in {200, 201}
|
|
185
|
+
finally:
|
|
186
|
+
await stop_uvicorn(server, task)
|
|
@@ -48,6 +48,13 @@ def test_kernel_ensure_primed_compiles_plan_once() -> None:
|
|
|
48
48
|
plan2 = _default_kernel.kernel_plan(app)
|
|
49
49
|
|
|
50
50
|
assert plan1 is plan2
|
|
51
|
+
packed = plan1.packed
|
|
52
|
+
assert packed is not None
|
|
53
|
+
assert len(packed.atom_catalog_labels) <= len(packed.step_table)
|
|
54
|
+
assert len(packed.segment_catalog_offsets) <= len(packed.program_segment_refs)
|
|
55
|
+
assert len(packed.program_error_profile_ids) == len(plan1.opmeta)
|
|
56
|
+
assert packed.hot_block_bytes.startswith(b"TGPKHOT1")
|
|
57
|
+
assert isinstance(packed.hot_block_view, dict)
|
|
51
58
|
|
|
52
59
|
|
|
53
60
|
def test_opview_is_compiled_once_per_model_alias() -> None:
|
{tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/hooks/test_hook_ctx_stage_validation.py
RENAMED
|
@@ -30,7 +30,7 @@ def test_hook_ctx_invalid_string_anchor_raises_immediately():
|
|
|
30
30
|
assert "Invalid hook phase 'IN_BUILD'." in message
|
|
31
31
|
assert "Valid phases are:" in message
|
|
32
32
|
assert "PRE_HANDLER" in message
|
|
33
|
-
assert "
|
|
33
|
+
assert "TX_ROLLBACK" in message
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def test_hook_ctx_valid_enum_anchor_does_not_raise():
|
|
@@ -52,4 +52,4 @@ def test_hook_ctx_invalid_enum_anchor_raises_immediately():
|
|
|
52
52
|
assert "Invalid hook phase 'IN_BUILD'." in message
|
|
53
53
|
assert "Valid phases are:" in message
|
|
54
54
|
assert "PRE_HANDLER" in message
|
|
55
|
-
assert "
|
|
55
|
+
assert "TX_ROLLBACK" in message
|
|
@@ -30,7 +30,7 @@ def test_hook_ctx_invalid_string_anchor_raises_immediately():
|
|
|
30
30
|
assert "Invalid hook phase 'IN_BUILD'." in message
|
|
31
31
|
assert "Valid phases are:" in message
|
|
32
32
|
assert "PRE_HANDLER" in message
|
|
33
|
-
assert "
|
|
33
|
+
assert "TX_ROLLBACK" in message
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def test_hook_ctx_valid_enum_anchor_does_not_raise():
|
|
@@ -52,5 +52,5 @@ def test_hook_ctx_invalid_enum_anchor_raises_immediately():
|
|
|
52
52
|
assert "Invalid hook phase 'IN_BUILD'." in message
|
|
53
53
|
assert "Valid phases are:" in message
|
|
54
54
|
assert "PRE_HANDLER" in message
|
|
55
|
-
assert "
|
|
55
|
+
assert "TX_ROLLBACK" in message
|
|
56
56
|
|