tigrbl-tests 0.3.1__tar.gz → 0.3.2.dev1__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 (196) hide show
  1. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/PKG-INFO +1 -1
  2. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/pyproject.toml +1 -1
  3. tigrbl_tests-0.3.2.dev1/tests/unit/test_base_columnspec_inheritance.py +29 -0
  4. tigrbl_tests-0.3.2.dev1/tests/unit/test_include_model_columns_namespace.py +22 -0
  5. tigrbl_tests-0.3.2.dev1/tests/unit/test_sqlite_uuid_type.py +70 -0
  6. tigrbl_tests-0.3.2.dev1/tests/unit/test_verbosity.py +62 -0
  7. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/LICENSE +0 -0
  8. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/README.md +0 -0
  9. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/__init__.py +0 -0
  10. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/conftest.py +0 -0
  11. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/__init__.py +0 -0
  12. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_acronym_route_name.py +0 -0
  13. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_allow_anon.py +0 -0
  14. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_apikey_generation.py +0 -0
  15. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_authn_provider_integration.py +0 -0
  16. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_bindings_integration.py +0 -0
  17. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_bindings_modules.py +0 -0
  18. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_bulk_docs_client.py +0 -0
  19. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_core_access.py +0 -0
  20. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_error_mappings.py +0 -0
  21. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_field_spec_effects.py +0 -0
  22. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_header_io_uvicorn.py +0 -0
  23. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_healthz_methodz_hookz.py +0 -0
  24. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_hook_ctx_v3_i9n.py +0 -0
  25. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_hook_lifecycle.py +0 -0
  26. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_iospec_attributes.py +0 -0
  27. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_iospec_integration.py +0 -0
  28. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_key_digest_uvicorn.py +0 -0
  29. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_list_filters_optional.py +0 -0
  30. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_mixins.py +0 -0
  31. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_nested_path_schema_and_rpc.py +0 -0
  32. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_nested_routing_depth.py +0 -0
  33. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_op_ctx_alias_examples.py +0 -0
  34. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_op_ctx_behavior.py +0 -0
  35. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_op_ctx_core_crud_order.py +0 -0
  36. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_openapi_clear_response_schema.py +0 -0
  37. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_openapi_schema_examples_presence.py +0 -0
  38. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_opspec_effects_i9n_test.py +0 -0
  39. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_owner_tenant_policy.py +0 -0
  40. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_request_extras.py +0 -0
  41. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_request_extras_provider.py +0 -0
  42. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_response_extras_provider.py +0 -0
  43. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_rest_fallback_serialization.py +0 -0
  44. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_rest_row_serialization.py +0 -0
  45. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_rest_rpc_parity_v3.py +0 -0
  46. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_row_result_serialization.py +0 -0
  47. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_schema.py +0 -0
  48. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_schema_ctx_attributes_integration.py +0 -0
  49. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_schema_ctx_op_ctx_integration.py +0 -0
  50. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_schema_ctx_spec_integration.py +0 -0
  51. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_sqlite_attachments.py +0 -0
  52. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_storage_spec_integration.py +0 -0
  53. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_symmetry_parity.py +0 -0
  54. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_v3_bulk_rest_endpoints.py +0 -0
  55. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_v3_default_rest_ops.py +0 -0
  56. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_v3_default_rpc_ops.py +0 -0
  57. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_v3_opspec_attributes.py +0 -0
  58. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/test_verb_alias_policy.py +0 -0
  59. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/i9n/uvicorn_utils.py +0 -0
  60. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/perf/__init__.py +0 -0
  61. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/perf/test_collect_caching.py +0 -0
  62. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/perf/test_hookz_performance.py +0 -0
  63. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/perf/test_methodz_performance.py +0 -0
  64. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/__init__.py +0 -0
  65. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_alias_ctx_bindings.py +0 -0
  66. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_engine_ctx_bindings.py +0 -0
  67. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_hook_ctx_bindings.py +0 -0
  68. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_op_alias_bindings.py +0 -0
  69. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_op_ctx_bindings.py +0 -0
  70. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_response_ctx_bindings.py +0 -0
  71. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/decorators/test_schema_ctx_bindings.py +0 -0
  72. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/response_utils.py +0 -0
  73. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_emit_paired_post.py +0 -0
  74. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_emit_paired_pre.py +0 -0
  75. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_emit_readtime_alias.py +0 -0
  76. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_out_masking.py +0 -0
  77. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_refresh_demand.py +0 -0
  78. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_resolve_assemble.py +0 -0
  79. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_resolve_paired_gen.py +0 -0
  80. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_schema_collect_in.py +0 -0
  81. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_schema_collect_out.py +0 -0
  82. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_storage_to_stored.py +0 -0
  83. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_wire_build_in.py +0 -0
  84. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_wire_build_out.py +0 -0
  85. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_wire_dump.py +0 -0
  86. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/atoms/test_wire_validate_in.py +0 -0
  87. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/runtime/test_events_phases.py +0 -0
  88. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_acol_vcol_knobs.py +0 -0
  89. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_alias_ctx_op_alias_attributes.py +0 -0
  90. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_alias_ctx_op_attributes.py +0 -0
  91. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_api_level_set_auth.py +0 -0
  92. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_app_model_defaults.py +0 -0
  93. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_app_reexport.py +0 -0
  94. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_base_facade_initialize.py +0 -0
  95. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_build_list_params_spec_model.py +0 -0
  96. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_bulk_body_annotation.py +0 -0
  97. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_bulk_response_schema.py +0 -0
  98. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_colspec_map_isolation.py +0 -0
  99. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_column_collect_mixins.py +0 -0
  100. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_column_rest_rpc_results.py +0 -0
  101. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_column_table_orm_binding.py +0 -0
  102. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_config_dataclass_none.py +0 -0
  103. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_core_crud_bulk_ops.py +0 -0
  104. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_core_crud_default_ops.py +0 -0
  105. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_core_crud_methods.py +0 -0
  106. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_core_wrap_memoization.py +0 -0
  107. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_db_dependency.py +0 -0
  108. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_decorator_and_collect.py +0 -0
  109. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_default_tags.py +0 -0
  110. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_engine_spec_and_shortcuts.py +0 -0
  111. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_engine_usage_levels.py +0 -0
  112. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_field_spec_attrs.py +0 -0
  113. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_file_response.py +0 -0
  114. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_handler_step_qualname.py +0 -0
  115. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_hook_ctx_attributes.py +0 -0
  116. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_hook_ctx_binding.py +0 -0
  117. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_hookz_empty_phase.py +0 -0
  118. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_hybrid_session_run_sync.py +0 -0
  119. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_in_tx.py +0 -0
  120. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_include_models_base_prefix.py +0 -0
  121. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_initialize_cross_ddl.py +0 -0
  122. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_io_spec_attributes.py +0 -0
  123. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_iospec_attributes.py +0 -0
  124. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_iospec_effects.py +0 -0
  125. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_jsonrpc_id_example.py +0 -0
  126. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_jsonrpc_router_default_tag.py +0 -0
  127. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_kernel_invoke_ctx.py +0 -0
  128. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_kernel_opview_on_demand.py +0 -0
  129. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_kernel_plan_labels.py +0 -0
  130. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_kernelz_endpoint.py +0 -0
  131. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_make_column_shortcuts.py +0 -0
  132. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_mixins_sqlalchemy.py +0 -0
  133. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_alias.py +0 -0
  134. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_class_engine_binding.py +0 -0
  135. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_ctx_arity_paths.py +0 -0
  136. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_ctx_attributes.py +0 -0
  137. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_ctx_core_crud_integration.py +0 -0
  138. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_ctx_dynamic_attach.py +0 -0
  139. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_op_ctx_persist_options.py +0 -0
  140. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_opspec_effects.py +0 -0
  141. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_postgres_engine_errors.py +0 -0
  142. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_postgres_env_vars.py +0 -0
  143. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_relationship_alias_cols.py +0 -0
  144. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_request_body_schema.py +0 -0
  145. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_request_response_examples.py +0 -0
  146. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_resolver_precedence.py +0 -0
  147. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_alias_table_rpc.py +0 -0
  148. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_ctx_precedence.py +0 -0
  149. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_diagnostics_kernelz.py +0 -0
  150. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_html_jinja_behavior.py +0 -0
  151. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_parity.py +0 -0
  152. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_rest.py +0 -0
  153. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_rpc.py +0 -0
  154. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_template.py +0 -0
  155. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_response_uuid.py +0 -0
  156. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_all_default_op_verbs.py +0 -0
  157. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_bulk_delete_suppresses_clear.py +0 -0
  158. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_no_schema_jsonable.py +0 -0
  159. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_operation_id_uniqueness.py +0 -0
  160. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_rpc_parity_default_ops.py +0 -0
  161. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_rpc_prefixes.py +0 -0
  162. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rest_rpc_symmetry.py +0 -0
  163. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rpc_all_default_op_verbs.py +0 -0
  164. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_rpc_default_ops.py +0 -0
  165. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_schema_ctx_attributes.py +0 -0
  166. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_schema_ctx_plain_class.py +0 -0
  167. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_schema_spec_presence.py +0 -0
  168. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_schemas_binding.py +0 -0
  169. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_security_per_route.py +0 -0
  170. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_should_wire_canonical.py +0 -0
  171. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_api.py +0 -0
  172. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_app.py +0 -0
  173. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_column.py +0 -0
  174. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_engine.py +0 -0
  175. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_field.py +0 -0
  176. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_hook.py +0 -0
  177. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_io.py +0 -0
  178. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_op.py +0 -0
  179. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_storage.py +0 -0
  180. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_spec_table.py +0 -0
  181. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_sqlite_attachments.py +0 -0
  182. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_storage_spec_attributes.py +0 -0
  183. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_sys_handler_crud.py +0 -0
  184. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_sys_run_rollback.py +0 -0
  185. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_sys_tx_async_begin.py +0 -0
  186. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_sys_tx_begin.py +0 -0
  187. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_sys_tx_commit.py +0 -0
  188. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_table_base_exports.py +0 -0
  189. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_table_collect_spec.py +0 -0
  190. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_table_columns_namespace.py +0 -0
  191. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_v3_favicon_endpoint.py +0 -0
  192. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_v3_healthz_endpoint.py +0 -0
  193. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_v3_op_alias.py +0 -0
  194. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_v3_op_ctx_attributes.py +0 -0
  195. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_v3_schemas_and_decorators.py +0 -0
  196. {tigrbl_tests-0.3.1 → tigrbl_tests-0.3.2.dev1}/tests/unit/test_v3_storage_spec_attributes.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl-tests
3
- Version: 0.3.1
3
+ Version: 0.3.2.dev1
4
4
  Summary: Test suite and fixtures for the Tigrbl framework.
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl-tests"
3
- version = "0.3.1"
3
+ version = "0.3.2.dev1"
4
4
  description = "Test suite and fixtures for the Tigrbl framework."
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
@@ -0,0 +1,29 @@
1
+ from __future__ import annotations
2
+
3
+ import warnings
4
+
5
+ from sqlalchemy import Integer, String
6
+ from sqlalchemy.exc import SAWarning
7
+
8
+ from tigrbl.column import ColumnSpec, S
9
+ from tigrbl.table._base import Base
10
+
11
+
12
+ def test_columnspec_inheritance_does_not_warn() -> None:
13
+ class Parent(Base):
14
+ __tablename__ = "test_parent"
15
+ __mapper_args__ = {
16
+ "polymorphic_identity": "parent",
17
+ "polymorphic_on": "kind",
18
+ }
19
+ id: int = ColumnSpec(storage=S(type_=Integer, primary_key=True))
20
+ kind: str = ColumnSpec(storage=S(type_=String))
21
+
22
+ with warnings.catch_warnings():
23
+ warnings.simplefilter("error", SAWarning)
24
+
25
+ class Child(Parent):
26
+ __mapper_args__ = {"polymorphic_identity": "child"}
27
+
28
+ # no extra columns, we just inherit Parent.id
29
+ pass
@@ -0,0 +1,22 @@
1
+ from types import SimpleNamespace
2
+
3
+ from sqlalchemy import Integer, String
4
+
5
+ from tigrbl.bindings import include_model
6
+ from tigrbl.column import ColumnSpec, S
7
+ from tigrbl.table import Table
8
+
9
+
10
+ class Widget(Table):
11
+ __tablename__ = "widgets_columns_namespace"
12
+
13
+ id: int = ColumnSpec(storage=S(type_=Integer, primary_key=True))
14
+ name: str = ColumnSpec(storage=S(type_=String, nullable=False))
15
+
16
+
17
+ def test_include_model_coerces_columns_namespace() -> None:
18
+ api = SimpleNamespace()
19
+
20
+ include_model(api, Widget, mount_router=False)
21
+
22
+ assert api.columns["Widget"] == ("id", "name")
@@ -0,0 +1,70 @@
1
+ from __future__ import annotations
2
+
3
+ from uuid import UUID, uuid4
4
+
5
+ from sqlalchemy.dialects import postgresql, sqlite
6
+
7
+ from tigrbl.types import SqliteUUID
8
+ from tigrbl.deps.sqlalchemy import String, _PgUUID
9
+
10
+
11
+ def test_sqlite_uuid_python_type_flags() -> None:
12
+ assert SqliteUUID(as_uuid=True).python_type is UUID
13
+ assert SqliteUUID(as_uuid=False).python_type is str
14
+
15
+
16
+ def test_sqlite_uuid_sqlite_bind_param_coerces_uuid_str() -> None:
17
+ dialect = sqlite.dialect()
18
+ type_ = SqliteUUID(as_uuid=True)
19
+ uid = uuid4()
20
+
21
+ assert type_.process_bind_param(uid, dialect) == str(uid)
22
+ assert type_.process_bind_param(uid.hex, dialect) == str(uid)
23
+
24
+ type_as_str = SqliteUUID(as_uuid=False)
25
+ assert type_as_str.process_bind_param(uid, dialect) == str(uid)
26
+ assert type_as_str.process_bind_param(uid.hex, dialect) == uid.hex
27
+
28
+
29
+ def test_sqlite_uuid_postgres_bind_param_returns_uuid() -> None:
30
+ dialect = postgresql.dialect()
31
+ type_ = SqliteUUID(as_uuid=True)
32
+ uid = uuid4()
33
+
34
+ assert type_.process_bind_param(uid, dialect) is uid
35
+ assert type_.process_bind_param(str(uid), dialect) == uid
36
+
37
+ type_as_str = SqliteUUID(as_uuid=False)
38
+ assert type_as_str.process_bind_param(uid, dialect) == str(uid)
39
+
40
+
41
+ def test_sqlite_uuid_result_processing() -> None:
42
+ uid = uuid4()
43
+ sqlite_dialect = sqlite.dialect()
44
+ pg_dialect = postgresql.dialect()
45
+
46
+ type_ = SqliteUUID(as_uuid=True)
47
+ assert type_.process_result_value(str(uid), sqlite_dialect) == uid
48
+ assert type_.process_result_value(uid, pg_dialect) is uid
49
+
50
+ type_as_str = SqliteUUID(as_uuid=False)
51
+ assert type_as_str.process_result_value(uid, sqlite_dialect) == str(uid)
52
+ assert type_as_str.process_result_value(str(uid), pg_dialect) == str(uid)
53
+
54
+
55
+ def test_sqlite_uuid_dialect_impls() -> None:
56
+ sqlite_dialect = sqlite.dialect()
57
+ pg_dialect = postgresql.dialect()
58
+
59
+ type_as_uuid = SqliteUUID(as_uuid=True)
60
+ sqlite_impl = type_as_uuid.load_dialect_impl(sqlite_dialect)
61
+ pg_impl = type_as_uuid.load_dialect_impl(pg_dialect)
62
+
63
+ assert isinstance(sqlite_impl, String)
64
+ assert isinstance(pg_impl, _PgUUID)
65
+ assert pg_impl.as_uuid is True
66
+
67
+ type_as_str = SqliteUUID(as_uuid=False)
68
+ pg_impl_str = type_as_str.load_dialect_impl(pg_dialect)
69
+ assert isinstance(pg_impl_str, _PgUUID)
70
+ assert pg_impl_str.as_uuid is False
@@ -0,0 +1,62 @@
1
+ import logging
2
+
3
+ from tigrbl.schema import collect as schema_collect
4
+
5
+
6
+ class _ListHandler(logging.Handler):
7
+ def __init__(self, records):
8
+ super().__init__()
9
+ self._records = records
10
+
11
+ def emit(self, record: logging.LogRecord) -> None:
12
+ self._records.append(record)
13
+
14
+
15
+ def _set_uvicorn_level(level: int) -> int:
16
+ logger = logging.getLogger("uvicorn")
17
+ previous = logger.level
18
+ logger.setLevel(level)
19
+ return previous
20
+
21
+
22
+ def test_verbosity_level_does_not_force_debug() -> None:
23
+ previous_level = _set_uvicorn_level(logging.INFO)
24
+ try:
25
+ assert schema_collect.logger.name == "uvicorn"
26
+ assert logging.getLogger("uvicorn").level == logging.INFO
27
+ finally:
28
+ logging.getLogger("uvicorn").setLevel(previous_level)
29
+
30
+
31
+ def test_verbosity_situations_skip_debug_without_verbose() -> None:
32
+ previous_level = _set_uvicorn_level(logging.INFO)
33
+ logger = logging.getLogger("uvicorn")
34
+ records: list[logging.LogRecord] = []
35
+ handler = _ListHandler(records)
36
+ logger.addHandler(handler)
37
+ try:
38
+ schema_collect.logger.debug("tigrbl verbosity debug")
39
+ assert not records
40
+ finally:
41
+ logger.removeHandler(handler)
42
+ logging.getLogger("uvicorn").setLevel(previous_level)
43
+
44
+
45
+ def test_verbosity_formatting_uses_uvicorn_logger() -> None:
46
+ previous_level = _set_uvicorn_level(logging.DEBUG)
47
+ logger = logging.getLogger("uvicorn")
48
+ records: list[logging.LogRecord] = []
49
+ handler = _ListHandler(records)
50
+ logger.addHandler(handler)
51
+ try:
52
+ schema_collect.logger.debug("tigrbl formatting %s", "ok")
53
+ record = next(
54
+ record
55
+ for record in records
56
+ if record.getMessage() == "tigrbl formatting ok"
57
+ )
58
+ assert record.name == "uvicorn"
59
+ assert record.levelname == "DEBUG"
60
+ finally:
61
+ logger.removeHandler(handler)
62
+ logging.getLogger("uvicorn").setLevel(previous_level)
File without changes