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.
Files changed (522) hide show
  1. tigrbl_tests-0.4.0/PKG-INFO +143 -0
  2. tigrbl_tests-0.4.0/README.md +94 -0
  3. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/pyproject.toml +40 -20
  4. tigrbl_tests-0.4.0/tests/fixtures/system_diagnostics.py +100 -0
  5. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_04_appspec_corpus_fixture.py +53 -0
  6. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_01_appspec_corpus_uvicorn.py +46 -0
  7. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_bootstrap_kernel_compilation.py +7 -0
  8. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/hooks/test_hook_ctx_stage_validation.py +2 -2
  9. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/__init__.py +2 -2
  10. tigrbl_tests-0.4.0/tests/i9n/test_auth_status_projection_contract.py +103 -0
  11. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_bindings_modules.py +1 -1
  12. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_behavior.py +1 -1
  13. tigrbl_tests-0.4.0/tests/i9n/test_op_ctx_owner_scope_materialization_contracts.py +218 -0
  14. tigrbl_tests-0.4.0/tests/perf/benchmark_results_create_uvicorn.json +503 -0
  15. tigrbl_tests-0.4.0/tests/perf/benchmark_results_create_uvicorn_sequential_10_rounds.json +503 -0
  16. tigrbl_tests-0.4.0/tests/perf/benchmark_results_create_uvicorn_sequential_10_rounds_250_ops.json +503 -0
  17. tigrbl_tests-0.4.0/tests/perf/benchmark_results_executors_seq_10_rounds.json +915 -0
  18. tigrbl_tests-0.4.0/tests/perf/benchmark_results_sse_uvicorn.json +94 -0
  19. tigrbl_tests-0.4.0/tests/perf/benchmark_results_streaming_uvicorn.json +94 -0
  20. tigrbl_tests-0.4.0/tests/perf/benchmark_results_websocket_uvicorn.json +94 -0
  21. tigrbl_tests-0.4.0/tests/perf/benchmark_results_webtransport_uvicorn.json +54 -0
  22. tigrbl_tests-0.4.0/tests/perf/compiled_input_strategy_microbench.json +145 -0
  23. tigrbl_tests-0.4.0/tests/perf/egress_body_coercion_microbench.json +68 -0
  24. tigrbl_tests-0.4.0/tests/perf/exact_route_marker_microbench.json +41 -0
  25. tigrbl_tests-0.4.0/tests/perf/fastapi_create_call_graph_250_ops.json +1589 -0
  26. tigrbl_tests-0.4.0/tests/perf/fastapi_sse_call_graph_250_ops.json +1591 -0
  27. tigrbl_tests-0.4.0/tests/perf/fastapi_sse_transport_call_graph_250_ops.json +1591 -0
  28. tigrbl_tests-0.4.0/tests/perf/fastapi_streaming_call_graph_250_ops.json +1591 -0
  29. tigrbl_tests-0.4.0/tests/perf/fastapi_websocket_call_graph_250_ops.json +1591 -0
  30. tigrbl_tests-0.4.0/tests/perf/fastapi_websocket_transport_call_graph_250_ops.json +1591 -0
  31. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/helper_fastapi_create_app.py +1 -0
  32. tigrbl_tests-0.4.0/tests/perf/helper_sse_apps.py +176 -0
  33. tigrbl_tests-0.4.0/tests/perf/helper_streaming_apps.py +167 -0
  34. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/helper_tigrbl_create_app.py +28 -4
  35. tigrbl_tests-0.4.0/tests/perf/helper_websocket_apps.py +125 -0
  36. tigrbl_tests-0.4.0/tests/perf/helper_webtransport_apps.py +93 -0
  37. tigrbl_tests-0.4.0/tests/perf/hot_block_lane_microbench.json +101 -0
  38. tigrbl_tests-0.4.0/tests/perf/hot_path_perf_suite_manifest.json +426 -0
  39. tigrbl_tests-0.4.0/tests/perf/hot_path_perf_suite_report.md +111 -0
  40. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-sse.json +126 -0
  41. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-sse.md +7 -0
  42. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-streaming.json +126 -0
  43. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-streaming.md +7 -0
  44. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-websocket.json +126 -0
  45. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-websocket.md +7 -0
  46. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-webtransport.json +87 -0
  47. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark-webtransport.md +7 -0
  48. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark.json +80 -0
  49. tigrbl_tests-0.4.0/tests/perf/kernel-plan-benchmark.md +31 -0
  50. tigrbl_tests-0.4.0/tests/perf/runtime_hotstate_microbench.json +58 -0
  51. tigrbl_tests-0.4.0/tests/perf/runtime_namespace_dictget_microbench.json +75 -0
  52. tigrbl_tests-0.4.0/tests/perf/runtime_typecheck_microbench.json +92 -0
  53. tigrbl_tests-0.4.0/tests/perf/test_compiled_input_strategy_microbench.py +252 -0
  54. tigrbl_tests-0.4.0/tests/perf/test_egress_body_coercion_microbench.py +99 -0
  55. tigrbl_tests-0.4.0/tests/perf/test_exact_route_marker_microbench.py +130 -0
  56. tigrbl_tests-0.4.0/tests/perf/test_fastapi_create_call_graph.py +157 -0
  57. tigrbl_tests-0.4.0/tests/perf/test_hot_block_lane_microbench.py +142 -0
  58. tigrbl_tests-0.4.0/tests/perf/test_runtime_hotstate_microbench.py +153 -0
  59. tigrbl_tests-0.4.0/tests/perf/test_runtime_namespace_dictget_microbench.py +204 -0
  60. tigrbl_tests-0.4.0/tests/perf/test_runtime_typecheck_microbench.py +134 -0
  61. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_tigrbl_create_call_graph.py +12 -8
  62. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_tigrbl_vs_fastapi_create_benchmark.py +48 -19
  63. tigrbl_tests-0.4.0/tests/perf/test_validation_guard_strategy_microbench.py +116 -0
  64. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.benchmark.json +39 -0
  65. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.benchmark.md +16 -0
  66. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.bin +0 -0
  67. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.hexdump.txt +102 -0
  68. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-items.summary.json +427 -0
  69. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.benchmark.json +39 -0
  70. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.benchmark.md +16 -0
  71. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.bin +0 -0
  72. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.hexdump.txt +54 -0
  73. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-sse.summary.json +417 -0
  74. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.benchmark.json +39 -0
  75. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.benchmark.md +16 -0
  76. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.bin +0 -0
  77. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.hexdump.txt +54 -0
  78. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-streaming.summary.json +417 -0
  79. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.benchmark.json +39 -0
  80. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.benchmark.md +16 -0
  81. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.bin +0 -0
  82. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.hexdump.txt +53 -0
  83. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-websocket.summary.json +417 -0
  84. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.benchmark.json +39 -0
  85. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.benchmark.md +16 -0
  86. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.bin +0 -0
  87. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.hexdump.txt +53 -0
  88. tigrbl_tests-0.4.0/tests/perf/tgpkhot1-benchmark-webtransport.summary.json +417 -0
  89. tigrbl_tests-0.4.0/tests/perf/tigrbl_create_call_graph_250_ops.json +1589 -0
  90. tigrbl_tests-0.4.0/tests/perf/tigrbl_sse_call_graph_250_ops.json +1591 -0
  91. tigrbl_tests-0.4.0/tests/perf/tigrbl_sse_transport_call_graph_250_ops.json +1591 -0
  92. tigrbl_tests-0.4.0/tests/perf/tigrbl_streaming_call_graph_250_ops.json +1591 -0
  93. tigrbl_tests-0.4.0/tests/perf/tigrbl_websocket_call_graph_250_ops.json +1591 -0
  94. tigrbl_tests-0.4.0/tests/perf/tigrbl_websocket_transport_call_graph_250_ops.json +1591 -0
  95. tigrbl_tests-0.4.0/tests/perf/tigrbl_webtransport_call_graph_250_ops.json +1591 -0
  96. tigrbl_tests-0.4.0/tests/perf/tigrbl_webtransport_transport_call_graph_250_ops.json +1591 -0
  97. tigrbl_tests-0.4.0/tests/perf/validation_guard_strategy_microbench.json +53 -0
  98. tigrbl_tests-0.4.0/tests/perf/wsproto_client.py +82 -0
  99. tigrbl_tests-0.4.0/tests/protocol/test_protocol_runtime_governance_contracts.py +44 -0
  100. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/runtime/test_rust_runtime_public_surface.py +8 -1
  101. tigrbl_tests-0.4.0/tests/security/test_httpbearer_contract.py +42 -0
  102. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/test_secdeps_execute_in_pre_tx.py +136 -1
  103. tigrbl_tests-0.4.0/tests/unit/runtime/test_app_framed_message_codec_contract.py +108 -0
  104. tigrbl_tests-0.4.0/tests/unit/runtime/test_binding_exchange_normalization_contract.py +221 -0
  105. tigrbl_tests-0.4.0/tests/unit/runtime/test_binding_subevent_phase_atom_legality_matrix_contract.py +224 -0
  106. tigrbl_tests-0.4.0/tests/unit/runtime/test_bindingspec_event_subevent_schema_contract.py +135 -0
  107. tigrbl_tests-0.4.0/tests/unit/runtime/test_bindingspec_kernelplan_protocol_compilation_contract.py +110 -0
  108. tigrbl_tests-0.4.0/tests/unit/runtime/test_compiled_loop_regions_contract.py +163 -0
  109. tigrbl_tests-0.4.0/tests/unit/runtime/test_completion_fence_emit_complete_contract.py +185 -0
  110. tigrbl_tests-0.4.0/tests/unit/runtime/test_derived_runtime_subevent_taxonomy_contract.py +87 -0
  111. tigrbl_tests-0.4.0/tests/unit/runtime/test_dispatch_exchange_family_subevent_atoms_contract.py +92 -0
  112. tigrbl_tests-0.4.0/tests/unit/runtime/test_eventful_channel_state_metadata_contract.py +96 -0
  113. tigrbl_tests-0.4.0/tests/unit/runtime/test_eventful_protocol_decorator_surface_contract.py +138 -0
  114. tigrbl_tests-0.4.0/tests/unit/runtime/test_eventful_subevent_surface_contracts.py +109 -0
  115. tigrbl_tests-0.4.0/tests/unit/runtime/test_eventkey_bit_coded_dispatch_contract.py +118 -0
  116. tigrbl_tests-0.4.0/tests/unit/runtime/test_eventkey_hook_bucket_compilation_contract.py +113 -0
  117. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_events_runtime_behavior.py +3 -3
  118. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_events_stages.py +16 -6
  119. tigrbl_tests-0.4.0/tests/unit/runtime/test_first_class_callback_runtime_contract.py +126 -0
  120. tigrbl_tests-0.4.0/tests/unit/runtime/test_first_class_webhook_delivery_contract.py +123 -0
  121. tigrbl_tests-0.4.0/tests/unit/runtime/test_framing_decode_encode_atoms_contract.py +95 -0
  122. tigrbl_tests-0.4.0/tests/unit/runtime/test_hook_selector_matching_contract.py +177 -0
  123. tigrbl_tests-0.4.0/tests/unit/runtime/test_http_rest_jsonrpc_atom_chain_contract.py +137 -0
  124. tigrbl_tests-0.4.0/tests/unit/runtime/test_http_stream_atom_chain_contract.py +115 -0
  125. tigrbl_tests-0.4.0/tests/unit/runtime/test_iterator_producer_contract.py +111 -0
  126. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_kernel_plan_event_ordering.py +2 -2
  127. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_kernel_plan_full_ordering.py +6 -6
  128. tigrbl_tests-0.4.0/tests/unit/runtime/test_kernelplan_executor_runtime_shim_contract.py +52 -0
  129. tigrbl_tests-0.4.0/tests/unit/runtime/test_lifespan_runtime_chain_contract.py +86 -0
  130. tigrbl_tests-0.4.0/tests/unit/runtime/test_loop_ownership_mode_contract.py +130 -0
  131. tigrbl_tests-0.4.0/tests/unit/runtime/test_loop_region_executor_contract.py +63 -0
  132. tigrbl_tests-0.4.0/tests/unit/runtime/test_opchannel_capability_handshake_contract.py +123 -0
  133. tigrbl_tests-0.4.0/tests/unit/runtime/test_packed_executor_hot_path_contract.py +981 -0
  134. tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_anchor_ordering_parity_contract.py +49 -0
  135. tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_phase_tree_contract.py +96 -0
  136. tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_phase_tree_plan_contract.py +243 -0
  137. tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_scope_schemas_contract.py +153 -0
  138. tigrbl_tests-0.4.0/tests/unit/runtime/test_protocol_segment_fusion_contract.py +139 -0
  139. tigrbl_tests-0.4.0/tests/unit/runtime/test_runtime_hook_legality_contract.py +90 -0
  140. tigrbl_tests-0.4.0/tests/unit/runtime/test_segment_fusion_barrier_policy_contract.py +116 -0
  141. tigrbl_tests-0.4.0/tests/unit/runtime/test_sse_runtime_contract.py +132 -0
  142. tigrbl_tests-0.4.0/tests/unit/runtime/test_static_file_runtime_chain_contract.py +90 -0
  143. tigrbl_tests-0.4.0/tests/unit/runtime/test_subevent_handler_dispatch_contract.py +114 -0
  144. tigrbl_tests-0.4.0/tests/unit/runtime/test_subevent_transaction_units_contract.py +109 -0
  145. tigrbl_tests-0.4.0/tests/unit/runtime/test_transport_accept_emit_close_atoms_contract.py +92 -0
  146. tigrbl_tests-0.4.0/tests/unit/runtime/test_transport_event_registry_contract.py +100 -0
  147. tigrbl_tests-0.4.0/tests/unit/runtime/test_two_axis_lifecycle_matrix_contract.py +151 -0
  148. tigrbl_tests-0.4.0/tests/unit/runtime/test_websocket_atom_chain_contract.py +138 -0
  149. tigrbl_tests-0.4.0/tests/unit/runtime/test_webtransport_transport_events_contract.py +84 -0
  150. tigrbl_tests-0.4.0/tests/unit/runtime/test_yield_iterator_producer_contract.py +63 -0
  151. tigrbl_tests-0.4.0/tests/unit/test_base_public_projection_contracts.py +55 -0
  152. tigrbl_tests-0.4.0/tests/unit/test_canonical_custom_op_contract.py +98 -0
  153. tigrbl_tests-0.4.0/tests/unit/test_canonical_file_transfer_op_contracts.py +92 -0
  154. tigrbl_tests-0.4.0/tests/unit/test_canonical_pubsub_op_contracts.py +92 -0
  155. tigrbl_tests-0.4.0/tests/unit/test_canonical_query_op_contracts.py +134 -0
  156. tigrbl_tests-0.4.0/tests/unit/test_canonical_standard_op_contracts.py +142 -0
  157. tigrbl_tests-0.4.0/tests/unit/test_canonical_stream_transport_op_contracts.py +92 -0
  158. tigrbl_tests-0.4.0/tests/unit/test_canonical_tail_op_contract.py +77 -0
  159. tigrbl_tests-0.4.0/tests/unit/test_concrete_response_classes.py +156 -0
  160. tigrbl_tests-0.4.0/tests/unit/test_declared_surface_metadata_contracts.py +59 -0
  161. tigrbl_tests-0.4.0/tests/unit/test_diagnostics_endpoint_contracts.py +88 -0
  162. tigrbl_tests-0.4.0/tests/unit/test_hook_surface_contracts.py +192 -0
  163. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_instance_naming_conventions.py +1 -0
  164. tigrbl_tests-0.4.0/tests/unit/test_jcs_canonicalization_contract.py +41 -0
  165. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_jsonrpc_openrpc.py +176 -0
  166. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernel_plan_labels.py +2 -2
  167. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernelz_endpoint.py +1 -1
  168. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_persist_options.py +1 -1
  169. tigrbl_tests-0.4.0/tests/unit/test_op_surface_owner_scope_contracts.py +113 -0
  170. tigrbl_tests-0.4.0/tests/unit/test_operator_auth_surface_contracts.py +145 -0
  171. tigrbl_tests-0.4.0/tests/unit/test_operator_bounded_middleware_catalog_contracts.py +57 -0
  172. tigrbl_tests-0.4.0/tests/unit/test_operator_cookie_form_upload_contracts.py +127 -0
  173. tigrbl_tests-0.4.0/tests/unit/test_operator_docs_descope_contracts.py +55 -0
  174. tigrbl_tests-0.4.0/tests/unit/test_operator_oidc_descope_contracts.py +88 -0
  175. tigrbl_tests-0.4.0/tests/unit/test_operator_static_files_contracts.py +78 -0
  176. tigrbl_tests-0.4.0/tests/unit/test_operator_streaming_sse_contracts.py +84 -0
  177. tigrbl_tests-0.4.0/tests/unit/test_operator_websocket_route_contracts.py +88 -0
  178. tigrbl_tests-0.4.0/tests/unit/test_security_dependency_surface_contracts.py +195 -0
  179. tigrbl_tests-0.4.0/tests/unit/test_spec_binding_app_engine_contracts.py +270 -0
  180. tigrbl_tests-0.4.0/tests/unit/test_spec_contracts_request_schema_storage.py +103 -0
  181. tigrbl_tests-0.4.0/tests/unit/test_spec_contracts_session_bindings.py +164 -0
  182. tigrbl_tests-0.4.0/tests/unit/test_spec_contracts_table_registry_template.py +108 -0
  183. tigrbl_tests-0.4.0/tests/unit/test_stdapi_transport_asgi_wsgi.py +150 -0
  184. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_tx_commit.py +1 -1
  185. tigrbl_tests-0.4.0/tests/unit/test_system_diagnostics_fixture_contracts.py +158 -0
  186. tigrbl_tests-0.4.0/tests/unit/test_system_docs_diagnostics_contracts.py +203 -0
  187. tigrbl_tests-0.4.0/tests/unit/test_system_uix_surface_contracts.py +115 -0
  188. tigrbl_tests-0.4.0/tests/unit/test_tigrbl_app_event_handlers.py +96 -0
  189. tigrbl_tests-0.4.0/tests/unit/test_transport_dispatch_parity_contract.py +121 -0
  190. tigrbl_tests-0.4.0/tests/unit/test_transport_response_concrete_class.py +62 -0
  191. tigrbl_tests-0.3.24.dev1/PKG-INFO +0 -60
  192. tigrbl_tests-0.3.24.dev1/README.md +0 -23
  193. tigrbl_tests-0.3.24.dev1/tests/perf/benchmark_results_create_uvicorn.json +0 -502
  194. tigrbl_tests-0.3.24.dev1/tests/perf/benchmark_results_create_uvicorn_sequential_10_rounds.json +0 -502
  195. tigrbl_tests-0.3.24.dev1/tests/perf/benchmark_results_executors_seq_10_rounds.json +0 -915
  196. tigrbl_tests-0.3.24.dev1/tests/perf/tigrbl_create_call_graph_250_ops.json +0 -1589
  197. tigrbl_tests-0.3.24.dev1/tests/unit/test_stdapi_transport_asgi_wsgi.py +0 -301
  198. tigrbl_tests-0.3.24.dev1/tests/unit/test_tigrbl_app_event_handlers.py +0 -53
  199. tigrbl_tests-0.3.24.dev1/tests/unit/test_transport_dispatch_parity_contract.py +0 -8
  200. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/LICENSE +0 -0
  201. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/__init__.py +0 -0
  202. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_import_graph_audit.py +0 -0
  203. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_no_bindings_imports.py +0 -0
  204. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_operation_resolution_parity.py +0 -0
  205. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_runtime_structure.py +0 -0
  206. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_trace_plan_parity.py +0 -0
  207. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_transport_boundaries.py +0 -0
  208. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/architecture/test_transport_dispatch_convergence.py +0 -0
  209. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/conftest.py +0 -0
  210. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/appspec_corpus.canonical.json +0 -0
  211. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/appspec_corpus.negative.json +0 -0
  212. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/appspec_corpus_loader.py +0 -0
  213. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/fixtures/cli_smoke_app.py +0 -0
  214. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_00_appspec_contract.py +0 -0
  215. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_01_kernel_plan_compilation.py +0 -0
  216. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_02_bootstrap_plan.py +0 -0
  217. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_03_appspec_uvicorn_e2e.py +0 -0
  218. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness/test_05_appspec_metamorphic.py +0 -0
  219. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_00_appspec_uvicorn_rest_rpc.py +0 -0
  220. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_e2e/test_01_imperative_uvicorn_rest_rpc.py +0 -0
  221. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/__init__.py +0 -0
  222. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/_support.py +0 -0
  223. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_appspec_prefixes.py +0 -0
  224. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_default_opspec_bindings.py +0 -0
  225. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_kernel_plan_routing.py +0 -0
  226. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_mapping_plan_compilation.py +0 -0
  227. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_route_rpc_prebinding.py +0 -0
  228. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_route_runtime_fallback_atoms.py +0 -0
  229. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/harness_v3/test_uvicorn_e2e_appspec.py +0 -0
  230. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_acronym_route_name.py +0 -0
  231. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_allow_anon.py +0 -0
  232. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_apikey_generation.py +0 -0
  233. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_authn_provider_integration.py +0 -0
  234. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_bindings_integration.py +0 -0
  235. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_bulk_docs_client.py +0 -0
  236. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_core_access.py +0 -0
  237. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_engine_install_uvicorn.py +0 -0
  238. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_engine_resolver_uvicorn.py +0 -0
  239. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_error_mappings.py +0 -0
  240. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_field_spec_effects.py +0 -0
  241. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_header_io_uvicorn.py +0 -0
  242. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_healthz_methodz_hookz.py +0 -0
  243. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_hook_ctx_v3_i9n.py +0 -0
  244. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_hook_lifecycle.py +0 -0
  245. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_iospec_attributes.py +0 -0
  246. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_iospec_integration.py +0 -0
  247. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_jsonrpc_batch_behavior.py +0 -0
  248. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_key_digest_uvicorn.py +0 -0
  249. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_list_filters_optional.py +0 -0
  250. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mixins.py +0 -0
  251. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_favicon_uvicorn.py +0 -0
  252. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_lens_uvicorn.py +0 -0
  253. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_openapi_uvicorn.py +0 -0
  254. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_openrpc_uvicorn.py +0 -0
  255. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_mountable_swagger_uvicorn.py +0 -0
  256. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_nested_path_schema_and_rpc.py +0 -0
  257. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_nested_routing_depth.py +0 -0
  258. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_alias_examples.py +0 -0
  259. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_core_crud_order.py +0 -0
  260. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_op_ctx_owner_scope_uvicorn_matrix.py +0 -0
  261. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_openapi_clear_response_schema.py +0 -0
  262. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_openapi_schema_examples_presence.py +0 -0
  263. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_opspec_effects_i9n_test.py +0 -0
  264. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_opspec_pre_tx_deps.py +0 -0
  265. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_owner_tenant_policy.py +0 -0
  266. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_request_extras.py +0 -0
  267. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_rest_fallback_serialization.py +0 -0
  268. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_rest_row_serialization.py +0 -0
  269. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_rest_rpc_parity_v3.py +0 -0
  270. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_row_result_serialization.py +0 -0
  271. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema.py +0 -0
  272. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema_ctx_attributes_integration.py +0 -0
  273. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema_ctx_op_ctx_integration.py +0 -0
  274. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_schema_ctx_spec_integration.py +0 -0
  275. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_sqlite_attachments.py +0 -0
  276. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_storage_spec_integration.py +0 -0
  277. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_symmetry_parity.py +0 -0
  278. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_api_app_usage_uvicorn.py +0 -0
  279. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_api_usage_uvicorn.py +0 -0
  280. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_api_uvicorn.py +0 -0
  281. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_include_api_uvicorn.py +0 -0
  282. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_multi_api_uvicorn.py +0 -0
  283. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_usage_uvicorn.py +0 -0
  284. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_tigrbl_app_uvicorn.py +0 -0
  285. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_transport_dispatch_parity.py +0 -0
  286. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_types_deprecation_exports.py +0 -0
  287. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_uvicorn_transport_behavior.py +0 -0
  288. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_bulk_rest_endpoints.py +0 -0
  289. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_default_rest_ops.py +0 -0
  290. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_default_rpc_ops.py +0 -0
  291. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_v3_opspec_attributes.py +0 -0
  292. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/test_verb_alias_policy.py +0 -0
  293. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/i9n/uvicorn_utils.py +0 -0
  294. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/mount/__init__.py +0 -0
  295. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/mount/test_mount_favico.py +0 -0
  296. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/options/test_rest_options.py +0 -0
  297. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/options/test_rpc_options.py +0 -0
  298. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/__init__.py +0 -0
  299. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_atom_parity_corpus.py +0 -0
  300. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_executor_metamorphic_parity.py +0 -0
  301. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_hook_runtime_stage_parity.py +0 -0
  302. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_stdapi_openapi_docs.py +0 -0
  303. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_stdapi_primitives.py +0 -0
  304. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/parity/test_stdapi_routing.py +0 -0
  305. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/__init__.py +0 -0
  306. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/benchmark_results_executors_seq_10_rounds_1000_ops.json +0 -0
  307. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_collect_caching.py +0 -0
  308. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_fastapi_vs_tigrbl_executor_benchmark.py +0 -0
  309. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_hookz_performance.py +0 -0
  310. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/perf/test_methodz_performance.py +0 -0
  311. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_asgi_scope_compat.py +0 -0
  312. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_authn_strip.py +0 -0
  313. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_dot_notation.py +0 -0
  314. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_response_conveniences.py +0 -0
  315. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/request/test_request_transport_convenience_dot_notation.py +0 -0
  316. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/requests/test_request_json_modes.py +0 -0
  317. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/response/test_response_dot_notation.py +0 -0
  318. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/response/test_response_transport_convenience_dot_notation.py +0 -0
  319. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/atoms/test_rust_atoms_public_surface.py +0 -0
  320. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/ffi/test_rust_binding_trace.py +0 -0
  321. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/kernel/test_rust_kernel_public_surface.py +0 -0
  322. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/parity/test_rust_parity_contract.py +0 -0
  323. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/rust/runtime/test_rust_runtime_engine_policy.py +0 -0
  324. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/security/test_dot_notation_schemes.py +0 -0
  325. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/security/test_schemes.py +0 -0
  326. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/__init__.py +0 -0
  327. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_alias_ctx_bindings.py +0 -0
  328. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_declarative_surface.py +0 -0
  329. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_engine_ctx_bindings.py +0 -0
  330. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_hook_ctx_bindings.py +0 -0
  331. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_op_alias_bindings.py +0 -0
  332. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_op_ctx_bindings.py +0 -0
  333. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_response_ctx_bindings.py +0 -0
  334. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/decorators/test_schema_ctx_bindings.py +0 -0
  335. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/response_utils.py +0 -0
  336. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_emit_paired_post.py +0 -0
  337. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_emit_paired_pre.py +0 -0
  338. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_emit_readtime_alias.py +0 -0
  339. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_out_masking.py +0 -0
  340. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_refresh_demand.py +0 -0
  341. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_resolve_assemble.py +0 -0
  342. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_resolve_paired_gen.py +0 -0
  343. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_route_protocol_detect.py +0 -0
  344. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_schema_collect_in.py +0 -0
  345. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_schema_collect_out.py +0 -0
  346. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_storage_to_stored.py +0 -0
  347. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_build_in.py +0 -0
  348. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_build_out.py +0 -0
  349. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_dump.py +0 -0
  350. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/atoms/test_wire_validate_in.py +0 -0
  351. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_atom_stage_window_static.py +0 -0
  352. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_compilation_runtime_behavior.py +0 -0
  353. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_ingress_egress_access.py +0 -0
  354. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_kernel_runtime_behavior.py +0 -0
  355. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_ordering_runtime_behavior.py +0 -0
  356. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_payload_select_header_merge.py +0 -0
  357. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/runtime/test_payload_select_invalid_rpc_params.py +0 -0
  358. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_acol_vcol_knobs.py +0 -0
  359. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_alias_ctx_op_alias_attributes.py +0 -0
  360. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_alias_ctx_op_attributes.py +0 -0
  361. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_api_level_set_auth.py +0 -0
  362. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_app_model_defaults.py +0 -0
  363. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_app_reexport.py +0 -0
  364. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_app_spec_normalization.py +0 -0
  365. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_attrdict_vs_simplenamespace.py +0 -0
  366. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_authorize_runtime_secdep.py +0 -0
  367. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_base_columnspec_inheritance.py +0 -0
  368. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_base_facade_initialize.py +0 -0
  369. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_build_list_params_spec_model.py +0 -0
  370. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_bulk_body_annotation.py +0 -0
  371. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_bulk_response_schema.py +0 -0
  372. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_cli_cmds.py +0 -0
  373. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_cli_srv.py +0 -0
  374. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_colspec_map_isolation.py +0 -0
  375. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_collect_mixins.py +0 -0
  376. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_mro_collect_namespace.py +0 -0
  377. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_rest_rpc_results.py +0 -0
  378. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_column_table_orm_binding.py +0 -0
  379. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_config_dataclass_none.py +0 -0
  380. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_crud_bulk_ops.py +0 -0
  381. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_crud_default_ops.py +0 -0
  382. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_crud_methods.py +0 -0
  383. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_core_wrap_memoization.py +0 -0
  384. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_db_dependency.py +0 -0
  385. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_declared_surface_docs.py +0 -0
  386. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_decorator_and_collect.py +0 -0
  387. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_default_schema_selection.py +0 -0
  388. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_default_tags.py +0 -0
  389. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_diagnostics_no_compat_module.py +0 -0
  390. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_docs_security_parity.py +0 -0
  391. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_api.py +0 -0
  392. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_app.py +0 -0
  393. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_op.py +0 -0
  394. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_install_table.py +0 -0
  395. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_session_database_availability.py +0 -0
  396. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_spec_and_shortcuts.py +0 -0
  397. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_engine_usage_levels.py +0 -0
  398. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_field_spec_attrs.py +0 -0
  399. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_file_response.py +0 -0
  400. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_get_schema.py +0 -0
  401. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_handler_step_qualname.py +0 -0
  402. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hook_ctx_attributes.py +0 -0
  403. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hook_ctx_binding.py +0 -0
  404. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hookz_empty_stage.py +0 -0
  405. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_http_route_registration.py +0 -0
  406. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_hybrid_session_run_sync.py +0 -0
  407. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_in_tx.py +0 -0
  408. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_include_model_columns_namespace.py +0 -0
  409. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_include_models_base_prefix.py +0 -0
  410. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_include_tables_base_prefix.py +0 -0
  411. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_async_task.py +0 -0
  412. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_cross_ddl.py +0 -0
  413. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_mixed_engines.py +0 -0
  414. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_initialize_task_schedule.py +0 -0
  415. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_io_spec_attributes.py +0 -0
  416. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_iospec_attributes.py +0 -0
  417. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_iospec_effects.py +0 -0
  418. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_jsonrpc_id_example.py +0 -0
  419. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_jsonrpc_router_default_tag.py +0 -0
  420. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernel_invoke_ctx.py +0 -0
  421. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_kernel_opview_on_demand.py +0 -0
  422. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_make_column_shortcuts.py +0 -0
  423. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_mapping_bind_response_export.py +0 -0
  424. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_mapping_plan_precedence.py +0 -0
  425. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_middleware_http_and_cors.py +0 -0
  426. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_mixins_sqlalchemy.py +0 -0
  427. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_alias.py +0 -0
  428. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_class_engine_binding.py +0 -0
  429. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_arity_paths.py +0 -0
  430. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_attributes.py +0 -0
  431. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_core_crud_integration.py +0 -0
  432. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_custom_target_persist.py +0 -0
  433. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_dynamic_attach.py +0 -0
  434. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_op_ctx_parameter_matrix.py +0 -0
  435. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_openapi_documentation_security_behavior.py +0 -0
  436. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_openapi_openrpc_schema_separation.py +0 -0
  437. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_openrpc_documentation_security_behavior.py +0 -0
  438. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_operator_surface_closure.py +0 -0
  439. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_operator_surface_docs_parity.py +0 -0
  440. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_opspec_effects.py +0 -0
  441. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_postgres_engine_errors.py +0 -0
  442. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_postgres_env_vars.py +0 -0
  443. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_relationship_alias_cols.py +0 -0
  444. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_request_body_schema.py +0 -0
  445. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_request_response_examples.py +0 -0
  446. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_resolver_interning_warmup.py +0 -0
  447. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_resolver_precedence.py +0 -0
  448. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_alias_table_rpc.py +0 -0
  449. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_ctx_precedence.py +0 -0
  450. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_diagnostics_kernelz.py +0 -0
  451. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_html_jinja_behavior.py +0 -0
  452. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_parity.py +0 -0
  453. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_rest.py +0 -0
  454. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_rpc.py +0 -0
  455. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_template.py +0 -0
  456. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_response_uuid.py +0 -0
  457. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_all_default_op_verbs.py +0 -0
  458. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_bulk_delete_suppresses_clear.py +0 -0
  459. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_jsonrpc_metamorphic_default_ops.py +0 -0
  460. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_no_schema_jsonable.py +0 -0
  461. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_operation_id_uniqueness.py +0 -0
  462. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_output_serialization_extras.py +0 -0
  463. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_request_mapping_access.py +0 -0
  464. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_rpc_parity_default_ops.py +0 -0
  465. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_rpc_prefixes.py +0 -0
  466. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rest_rpc_symmetry.py +0 -0
  467. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_router_compatibility_shims.py +0 -0
  468. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_router_dependency_execution_blocked.py +0 -0
  469. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rpc_all_default_op_verbs.py +0 -0
  470. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_rpc_default_ops.py +0 -0
  471. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schema_ctx_attributes.py +0 -0
  472. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schema_ctx_plain_class.py +0 -0
  473. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schema_spec_presence.py +0 -0
  474. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_schemas_binding.py +0 -0
  475. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_security_per_route.py +0 -0
  476. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_should_wire_canonical.py +0 -0
  477. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_api.py +0 -0
  478. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_app.py +0 -0
  479. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_column.py +0 -0
  480. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_engine.py +0 -0
  481. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_field.py +0 -0
  482. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_hook.py +0 -0
  483. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_io.py +0 -0
  484. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_op.py +0 -0
  485. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_snapshots.py +0 -0
  486. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_storage.py +0 -0
  487. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_spec_table.py +0 -0
  488. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sqlite_attachments.py +0 -0
  489. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sqlite_uuid_type.py +0 -0
  490. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_stdapi_request_injection.py +0 -0
  491. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_storage_spec_attributes.py +0 -0
  492. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_handler_crud.py +0 -0
  493. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_run_rollback.py +0 -0
  494. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_tx_async_begin.py +0 -0
  495. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_sys_tx_begin.py +0 -0
  496. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_system_docs_builders.py +0 -0
  497. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_base_exports.py +0 -0
  498. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_collect_spec.py +0 -0
  499. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_columns_namespace.py +0 -0
  500. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_model_attribute_contract.py +0 -0
  501. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_namespace_init.py +0 -0
  502. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_table_namespace_isolation.py +0 -0
  503. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_app_configuration.py +0 -0
  504. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_app_instantiation.py +0 -0
  505. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_app_subclass_definition.py +0 -0
  506. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_configuration.py +0 -0
  507. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_instantiation.py +0 -0
  508. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_api_subclass_definition.py +0 -0
  509. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_configuration.py +0 -0
  510. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_instantiation.py +0 -0
  511. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_state.py +0 -0
  512. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_tigrbl_app_subclass_definition.py +0 -0
  513. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_transport_gw_contract.py +0 -0
  514. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_transport_security_runtime_only.py +0 -0
  515. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_default_root_endpoint.py +0 -0
  516. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_favicon_endpoint.py +0 -0
  517. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_healthz_endpoint.py +0 -0
  518. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_op_alias.py +0 -0
  519. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_op_ctx_attributes.py +0 -0
  520. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_schemas_and_decorators.py +0 -0
  521. {tigrbl_tests-0.3.24.dev1 → tigrbl_tests-0.4.0}/tests/unit/test_v3_storage_spec_attributes.py +0 -0
  522. {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
+ ![Tigrbl Logo](https://raw.githubusercontent.com/swarmauri/swarmauri-sdk/master/assets/tigrbl_full_logo.png)
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
+ ![Tigrbl Logo](https://raw.githubusercontent.com/swarmauri/swarmauri-sdk/master/assets/tigrbl_full_logo.png)
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.3.24.dev1"
4
- description = "Test suite and fixtures for the Tigrbl framework."
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
- repository = "http://github.com/swarmauri/swarmauri-sdk"
8
- requires-python = ">=3.10,<3.14"
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 :: 1 - Planning",
11
- "Natural Language :: English",
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
- "Programming Language :: Python",
17
- "Programming Language :: Python :: 3",
18
- "Programming Language :: Python :: 3 :: Only",
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
- keywords = [
39
- "tigrbl",
40
- "tests",
41
- "sdk",
42
- "standards",
43
- "pytest",
44
- "fixtures",
45
- "integration",
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
+ )
@@ -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")
@@ -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:
@@ -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 "ON_ROLLBACK" in message
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 "ON_ROLLBACK" in message
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 "ON_ROLLBACK" in message
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 "ON_ROLLBACK" in message
55
+ assert "TX_ROLLBACK" in message
56
56