QUALITY / EVIDENCE
設計をたどる。品質を確かめる。
対象revision:a0a8215b641e3c33d8e80d53e52fe0e136d7b062
run:36379917632-1 · full · 2026-09-28T05:30:24.561667+00:00
構成適合・設計drift・テスト実行は別の判定です。部分検証を全件合格とは表示しません。
静的解析・検証コマンド
| 検査 | 状態 | コマンド |
|---|---|---|
| package | passed | /app/.venv/bin/python -m tools.project.package_lambda |
| quint | passed | /app/.venv/bin/python tools/quintflow.py check |
| codegen | passed | app-codegen all --check |
| docs | passed | app-docs generate --check |
| archlint | passed | app-archlint all |
| rulecheck-checklist | passed | /app/.venv/bin/python -m tools.rulecheck verify --repo-root . --rules-dir docs/rule/coding --checklist docs/rule/coding/12_review_checklist.generated.md --config config/rulecheck_config.example.json |
| rulecheck | passed | /app/.venv/bin/python -m tools.project.rulecheck_gate |
| design | passed | /app/.venv/bin/python -B src/tools/project/design.py --manifest --check |
| design-contract | passed | /app/.venv/bin/python -m tools.project.design_contract --root . |
| adapter | passed | pytest tests/tools -q --junitxml=artifacts/adapter.xml --cov=src/tools --cov-report=json:artifacts/adapter-coverage.json -p tools.project.collector |
| ruff-format | passed | ruff format --check src tests infra |
| ruff | passed | ruff check src tests infra |
| mypy | passed | mypy |
| pyright | passed | pyright |
| backend | passed | pytest tests --ignore=tests/tools --ignore=tests/infra -q --junitxml=artifacts/backend.xml --cov=src/app --cov-report=json:artifacts/backend-coverage.json -p tools.project.collector |
| infra | passed | pytest tests/infra -q --junitxml=artifacts/infra.xml --cov=infra --cov-report=json:artifacts/infra-coverage.json -p tools.project.collector |
| synth-dev | passed | npx cdk synth --strict -c env=dev --output artifacts/cdk.out/dev |
| synth-prod | passed | npx cdk synth --strict -c env=prod --output artifacts/cdk.out/prod |
| astro | passed | npm run check |
| portal-types | passed | npx astro check --root portal |
| openapi-types | passed | node src/tools/frontend.mjs |
| eslint | passed | npm run lint |
| format | passed | npm run format |
| frontend-build | passed | npm run build |
| vitest | passed | npx vitest run --coverage --reporter=json --outputFile=artifacts/vitest.json |
| e2e | passed | npx playwright test --config=e2e/playwright.config.ts |
| performance | passed | /app/.venv/bin/python -m tools.project.perf |
| portal-build | passed | npm run portal |
| portal-e2e | passed | npx playwright test --config=e2e/portal.config.ts |
カバレッジ
Pythonは行・分岐を区別します。未計測を100%にしません。
backend / lines:failed 1659 / 1773 (93.6%)
手書き業務コード src/app。除外: 生成した型付きSQL(apis/*/*/generated)とテストコード
backend / branches:failed 218 / 296 (73.6%)
手書き業務コード src/app。除外: 生成した型付きSQL(apis/*/*/generated)とテストコード
infra / lines:measured 83 / 93 (89.2%)
CDK定義 infra。除外: テストコード
infra / branches:measured 11 / 16 (68.8%)
CDK定義 infra。除外: テストコード
adapter / lines:measured 7990 / 10170 (78.6%)
lazunex由来の生成器・検査器と証跡変換 src/tools。除外: テストコード
adapter / branches:measured 3229 / 4596 (70.3%)
lazunex由来の生成器・検査器と証跡変換 src/tools。除外: テストコード
frontend / statements:passed 40 / 40 (100.0%)
画面の業務ロジック frontend/src/logic.ts。除外: 生成したOpenAPI型、React描画(E2Eで検証)
frontend / branches:passed 9 / 9 (100.0%)
画面の業務ロジック frontend/src/logic.ts。除外: 生成したOpenAPI型、React描画(E2Eで検証)
frontend / lines:passed 40 / 40 (100.0%)
画面の業務ロジック frontend/src/logic.ts。除外: 生成したOpenAPI型、React描画(E2Eで検証)
実テスト一覧
passed · tests/tools/test_app_tool_cli.py::test_docs_main_delegates_generate_tools
実測:passed · 0.002791010000009919秒
passed · tests/tools/test_app_tool_cli.py::test_python_module_args_adds_check_for_docs_generator
実測:passed · 0.0004429740000091442秒
passed · tests/tools/test_app_tool_cli.py::test_python_module_args_adds_check_for_codegen_generator
実測:passed · 0.00024626300000818446秒
passed · tests/tools/test_app_tool_docs.py::test_rendered_tool_docs_include_all_registered_tools
実測:passed · 0.001611649999972542秒
passed · tests/tools/test_app_tool_docs.py::test_generate_tool_docs_check_mode_detects_stale_outputs
実測:passed · 0.00846872199997506秒
passed · tests/tools/test_check_api_contracts.py::test_check_contracts_accepts_matching_contract
実測:passed · 0.0018025310000098216秒
passed · tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_operation_id_mismatch
実測:passed · 0.0010414369999693918秒
passed · tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_slug_mismatch
実測:passed · 0.0010296699999798875秒
passed · tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_missing_contract
実測:passed · 0.0011498569999730535秒
passed · tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_invalid_literal_field
実測:passed · 0.0010169009999572154秒
passed · tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_unsupported_auth_mode
実測:passed · 0.0012255290000098285秒
passed · tests/tools/test_check_api_descriptions.py::test_has_japanese_text_and_literal_string
実測:passed · 0.00035783800001354393秒
passed · tests/tools/test_check_api_descriptions.py::test_is_router_decorator_rejects_non_route_shapes
実測:passed · 0.00035419300002104137秒
passed · tests/tools/test_check_api_descriptions.py::test_ast_helpers_accept_supported_shapes
実測:passed · 0.0005625510000299982秒
passed · tests/tools/test_check_api_descriptions.py::test_enum_member_comment_rejects_missing_comment
実測:passed · 0.00027161100001649174秒
passed · tests/tools/test_check_api_descriptions.py::test_check_router_file_accepts_japanese_summary_and_description
実測:passed · 0.0007794510000280752秒
passed · tests/tools/test_check_api_descriptions.py::test_check_router_file_reports_missing_and_non_japanese_values
実測:passed · 0.0006799540000201887秒
passed · tests/tools/test_check_api_descriptions.py::test_check_router_file_ignores_non_router_decorators
実測:passed · 0.0005511829999704787秒
passed · tests/tools/test_check_api_descriptions.py::test_check_schema_file_accepts_japanese_docstrings
実測:passed · 0.0008503650000193375秒
passed · tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_missing_and_non_japanese_docstrings
実測:passed · 0.0006589019999978518秒
passed · tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_placeholder_descriptions
実測:passed · 0.0006725029999756771秒
passed · tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_field_description_issues
実測:passed · 0.0006640500000116845秒
passed · tests/tools/test_check_api_descriptions.py::test_check_schema_file_accepts_enum_value_comments
実測:passed · 0.0005465269999831435秒
passed · tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_enum_value_comment_issues
実測:passed · 0.0005737160000194308秒
passed · tests/tools/test_check_api_descriptions.py::test_check_api_descriptions_collects_router_and_schema_files
実測:passed · 0.0015508490000115671秒
passed · tests/tools/test_check_api_descriptions.py::test_render_issues_and_arg_parser_defaults
実測:passed · 0.000559656999996605秒
passed · tests/tools/test_check_api_descriptions.py::test_main_exits_nonzero_when_issue_exists
実測:passed · 0.0014026300000296033秒
passed · tests/tools/test_check_api_descriptions.py::test_main_can_ignore_issue_exit_code
実測:passed · 0.0011203640000303494秒
passed · tests/tools/test_check_api_exception_summaries.py::test_check_api_exception_summaries_reports_missing_api_summary
実測:passed · 0.0011059330000193768秒
passed · tests/tools/test_check_api_exception_summaries.py::test_check_api_exception_summaries_accepts_summarized_errors
実測:passed · 0.0019003350000161845秒
passed · tests/tools/test_check_api_function_exception_policy.py::test_reports_wrong_exception_policy
実測:passed · 0.0028659110000148758秒
passed · tests/tools/test_check_api_function_exception_policy.py::test_accepts_business_errors_and_runtime_dependency_guards
実測:passed · 0.001338696000004802秒
passed · tests/tools/test_check_api_function_names.py::test_load_rule_names_requires_descriptions
実測:passed · 0.000724249000029431秒
passed · tests/tools/test_check_api_function_names.py::test_check_api_function_file_accepts_action_and_condition_names
実測:passed · 0.0015588919999913742秒
passed · tests/tools/test_check_api_function_names.py::test_check_api_function_file_reports_unknown_words_and_missing_docstring
実測:passed · 0.001211087999990923秒
passed · tests/tools/test_check_api_function_names.py::test_check_api_function_names_accepts_repository_definitions
実測:passed · 0.01131438300001264秒
passed · tests/tools/test_check_api_function_names.py::test_render_issues_and_main
実測:passed · 0.0018036919999531165秒
passed · tests/tools/test_check_api_function_names.py::test_build_arg_parser_defaults
実測:passed · 0.00041351999999506006秒
passed · tests/tools/test_check_api_function_resource_usage.py::test_reports_non_validation_function_without_resource_usage
実測:passed · 0.0009954999999877145秒
passed · tests/tools/test_check_api_function_resource_usage.py::test_allows_validation_and_explicit_resource_free_functions
実測:passed · 0.0006433689999880698秒
passed · tests/tools/test_check_api_function_resource_usage.py::test_accepts_queries_and_integration_resource_usage
実測:passed · 0.0008261989999596153秒
passed · tests/tools/test_check_api_function_tests.py::test_find_function_coverage_issues_detects_missing_test_reference
実測:passed · 0.0018118149999963862秒
passed · tests/tools/test_check_api_function_tests.py::test_find_function_coverage_issues_accepts_parametrized_case_names
実測:passed · 0.0018449329999725705秒
passed · tests/tools/test_check_api_managed_literals.py::test_check_api_managed_literals_reports_disallowed_literals
実測:passed · 0.0022581339999874217秒
passed · tests/tools/test_check_api_managed_literals.py::test_check_api_managed_literals_accepts_repository_usage
実測:passed · 0.08662088400001267秒
passed · tests/tools/test_check_api_managed_literals.py::test_render_issues_and_main
実測:passed · 0.001227352000000792秒
passed · tests/tools/test_check_api_managed_literals.py::test_build_arg_parser_defaults
実測:passed · 0.00048796999999467516秒
passed · tests/tools/test_check_api_mermaid_sequences.py::test_mermaid_blocks_extracts_body_and_start_line
実測:passed · 0.0002880450000475321秒
passed · tests/tools/test_check_api_mermaid_sequences.py::test_validate_file_accepts_generated_sequence_shape
実測:passed · 0.0014276069999823449秒
passed · tests/tools/test_check_api_mermaid_sequences.py::test_validate_file_rejects_message_colons_and_split_sql
実測:passed · 0.0004984459999946012秒
passed · tests/tools/test_check_api_mermaid_sequences.py::test_main_reports_issues
実測:passed · 0.0012205620000145245秒
passed · tests/tools/test_check_api_router_ignored_returns.py::test_reports_ignored_meaningful_return_and_read_side_effect
実測:passed · 0.001791846000003261秒
passed · tests/tools/test_check_api_router_ignored_returns.py::test_accepts_used_returns_and_named_side_effects
実測:passed · 0.0012326990000133264秒
passed · tests/tools/test_check_api_router_test_asserts.py::test_read_crud_csv_and_mutation_tables
実測:passed · 0.0006690870000056748秒
passed · tests/tools/test_check_api_router_test_asserts.py::test_check_api_router_test_asserts_reports_missing_sample_and_table
実測:passed · 0.0016416330000197377秒
passed · tests/tools/test_check_api_router_test_asserts.py::test_check_api_router_test_asserts_accepts_repository_layout
実測:passed · 0.0025903640000137784秒
passed · tests/tools/test_check_api_router_test_asserts.py::test_main_and_arg_parser
実測:passed · 0.0018910919999939324秒
passed · tests/tools/test_check_api_router_tests.py::test_expected_router_test_path_mirrors_api_root
実測:passed · 0.0006860330000222348秒
passed · tests/tools/test_check_api_router_tests.py::test_check_api_router_tests_reports_missing_test_router
実測:passed · 0.0009266680000337146秒
passed · tests/tools/test_check_api_router_tests.py::test_check_api_router_tests_accepts_matching_test_router
実測:passed · 0.0011051309999743353秒
passed · tests/tools/test_check_api_router_tests.py::test_check_api_router_tests_accepts_repository_layout
実測:passed · 0.0007219760000225506秒
passed · tests/tools/test_check_api_router_tests.py::test_main_and_arg_parser
実測:passed · 0.0013691310000467638秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_parse_unit_test_cases_extracts_expected_outcomes
実測:passed · 0.0007976369999482813秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_expected_function_name_uses_tc_prefix
実測:passed · 0.0001998959999696126秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_accepts_matching_cases
実測:passed · 0.0037670810000349775秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_reports_missing_and_mismatch
実測:passed · 0.0015837880000049154秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_rejects_helper_only_test
実測:passed · 0.0013376950000179022秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_rejects_log_expectation_variables
実測:passed · 0.001660802000003514秒
passed · tests/tools/test_check_api_router_unit_test_factors.py::test_arg_parser_defaults_and_main
実測:passed · 0.0027718719999825225秒
passed · tests/tools/test_check_api_sequence_success_responses.py::test_check_api_sequence_success_responses_reports_missing_2xx
実測:passed · 0.000865097000030346秒
passed · tests/tools/test_check_api_sequence_success_responses.py::test_check_api_sequence_success_responses_accepts_2xx
実測:passed · 0.0008279319999928703秒
passed · tests/tools/test_check_api_sequence_success_responses.py::test_check_api_sequence_success_responses_reports_early_2xx
実測:passed · 0.0007803009999634014秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_parse_sql_usage_collects_tables_aliases_and_mutation_columns
実測:passed · 0.0274230830000306秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_compare_usage_to_ddl_reports_both_directions
実測:passed · 0.003968949000011435秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_compare_usage_to_ddl_ignores_like_source_tables
実測:passed · 0.0018347990000506798秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_compare_usage_to_ddl_ignores_hub_users_table
実測:passed · 0.002374766000002637秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_parse_sql_usage_collects_single_table_unqualified_columns
実測:passed · 0.0009869969999840578秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_render_report_includes_locations_and_no_drift_message
実測:passed · 0.0024946330000261696秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_check_and_arg_parser_defaults
実測:passed · 0.002651302999993277秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_main_exits_nonzero_when_drift_exists
実測:passed · 0.0014937450000047647秒
passed · tests/tools/test_check_api_sql_ddl_usage.py::test_main_can_ignore_drift_exit_code
実測:passed · 0.0013217810000014651秒
passed · tests/tools/test_check_bool_router_conditions.py::test_check_bool_router_conditions_reports_bare_await
実測:passed · 0.0014567100000135724秒
passed · tests/tools/test_check_bool_router_conditions.py::test_check_bool_router_conditions_accepts_if_conditions
実測:passed · 0.001139601999966544秒
passed · tests/tools/test_check_constant_bool_returns.py::test_check_constant_bool_returns_reports_single_literal_value
実測:passed · 0.000741805000018303秒
passed · tests/tools/test_check_exception_router_handlers.py::test_check_exception_router_handlers_reports_unhandled_calls
実測:passed · 0.0015927320000059808秒
passed · tests/tools/test_check_exception_router_handlers.py::test_check_exception_router_handlers_accepts_try_blocks
実測:passed · 0.0011575689999858696秒
passed · tests/tools/test_check_operational_logging.py::test_find_direct_logger_violations_reports_stdlib_logger_calls
実測:passed · 0.001990978999970139秒
passed · tests/tools/test_check_operational_logging.py::test_check_operational_logging_accepts_wrapper_calls
実測:passed · 0.007603805000030661秒
passed · tests/tools/test_check_router_error_response_returns.py::test_check_router_error_response_returns_reports_undeclared_status
実測:passed · 0.0015623960000539228秒
passed · tests/tools/test_check_router_error_response_returns.py::test_check_router_error_response_returns_accepts_declared_status
実測:passed · 0.0012418829999774061秒
passed · tests/tools/test_check_router_error_response_returns.py::test_check_router_error_response_returns_reports_exception_status
実測:passed · 0.0034559220000005553秒
passed · tests/tools/test_generate_api_detail_design.py::test_api_detail_design_extracts_normal_flow_details
実測:passed · 0.025563688999966416秒
passed · tests/tools/test_generate_api_detail_design.py::test_api_detail_design_resolves_list_item_sources_to_db_columns
実測:passed · 0.0077790240000013秒
passed · tests/tools/test_generate_api_list.py::test_collect_api_rows_outputs_compact_api_rows
実測:passed · 0.00039870899996685694秒
passed · tests/tools/test_generate_api_list.py::test_render_api_list_markdown_outputs_table
実測:passed · 0.00025565799995774796秒
passed · tests/tools/test_generate_api_list.py::test_generate_from_openapi_writes_api_list
実測:passed · 0.0007297870000115836秒
passed · tests/tools/test_generate_api_list.py::test_arg_parser_defaults_and_main_output
実測:passed · 0.0013582450000058088秒
passed · tests/tools/test_generate_api_list.py::test_generate_loads_openapi_and_implementation_paths
実測:passed · 0.000413720999972611秒
passed · tests/tools/test_generate_api_message_catalog.py::test_build_api_catalogs_reads_catalog_and_wrapper_calls
実測:passed · 0.006164010000020426秒
passed · tests/tools/test_generate_api_message_catalog.py::test_generate_api_message_catalog_main_writes_and_checks_docs
実測:passed · 0.006870433000017329秒
passed · tests/tools/test_generate_api_message_catalog.py::test_build_api_catalogs_reads_warning_messages_from_router_logger_call
実測:passed · 0.005694936999987021秒
passed · tests/tools/test_generate_api_pytest_cases.py::test_unit_test_specs_extracts_case_ids
実測:passed · 0.0007571879999659359秒
passed · tests/tools/test_generate_api_pytest_cases.py::test_rendered_outputs_generate_collectable_pytest
実測:passed · 0.0007829259999994065秒
passed · tests/tools/test_generate_api_pytest_cases.py::test_generate_check_detects_changed_output
実測:passed · 0.0017118170000003374秒
passed · tests/tools/test_generate_api_sequences.py::test_sql_tables_extracts_ordered_unique_table_names
実測:passed · 0.0002513010000484428秒
passed · tests/tools/test_generate_api_sequences.py::test_function_target_accepts_action_and_predicate_names
実測:passed · 0.00022404099996720106秒
passed · tests/tools/test_generate_api_sequences.py::test_api_sequence_from_dir_reads_router_calls_and_sql
実測:passed · 0.004665177000049425秒
passed · tests/tools/test_generate_api_sequences.py::test_function_metadata_reads_called_integration_resources
実測:passed · 0.0008257289999846762秒
passed · tests/tools/test_generate_api_sequences.py::test_query_sql_filenames_maps_called_query_to_sql
実測:passed · 0.00045367000001306224秒
passed · tests/tools/test_generate_api_sequences.py::test_endpoint_route_metadata_reads_path_method_and_responses
実測:passed · 0.00040782199999966906秒
passed · tests/tools/test_generate_api_sequences.py::test_implicit_router_error_returns_detects_auth_and_validation
実測:passed · 0.0004566040000213434秒
passed · tests/tools/test_generate_api_sequences.py::test_endpoint_error_returns_reads_router_error_schema_returns
実測:passed · 0.00042641999999659674秒
passed · tests/tools/test_generate_api_sequences.py::test_endpoint_exception_error_returns_reads_api_function_error_summaries
実測:passed · 0.00018949899998688124秒
passed · tests/tools/test_generate_api_sequences.py::test_endpoint_sequence_items_reads_router_error_handler_as_500
実測:passed · 0.0004309759999614471秒
passed · tests/tools/test_generate_api_sequences.py::test_endpoint_route_metadata_handles_defaults_keyword_path_and_unknown_status
実測:passed · 0.0004806289999805813秒
passed · tests/tools/test_generate_api_sequences.py::test_transaction_step_from_await_reads_session_commit
実測:passed · 0.0002560279999670456秒
passed · tests/tools/test_generate_api_sequences.py::test_render_sequence_markdown_limits_resources_and_groups_tables
実測:passed · 0.0009587449999912678秒
passed · tests/tools/test_generate_api_sequences.py::test_query_sql_filenames_for_step_matches_query_function_suffix
実測:passed · 0.00021728100000473205秒
passed · tests/tools/test_generate_api_sequences.py::test_render_sequence_markdown_marks_transaction_scope_until_commit
実測:passed · 0.00042561899999782327秒
passed · tests/tools/test_generate_api_sequences.py::test_generate_sequences_and_check_mode
実測:passed · 0.009207903000003625秒
passed · tests/tools/test_generate_api_sequences.py::test_helpers_cover_api_dirs_sql_steps_and_arg_parser
実測:passed · 0.0010816569999860803秒
passed · tests/tools/test_generate_api_sequences.py::test_query_sql_summaries_reads_docstrings_by_sql_filename
実測:passed · 0.0005565810000121019秒
passed · tests/tools/test_generate_api_sequences.py::test_function_metadata_reads_docstrings_arguments_and_return_types
実測:passed · 0.0009727559999532787秒
passed · tests/tools/test_generate_api_sequences.py::test_function_metadata_requires_docstrings
実測:passed · 0.0005345790000319539秒
passed · tests/tools/test_generate_api_sequences.py::test_integration_resources_are_loaded_from_port_directories
実測:passed · 0.0010636199999680684秒
passed · tests/tools/test_generate_api_sequences.py::test_ast_helpers_handle_non_matches_and_fallbacks
実測:passed · 0.0004996779999828505秒
passed · tests/tools/test_generate_api_sequences.py::test_awaited_api_function_name_rejects_unrelated_awaits
実測:passed · 0.0004027649999898131秒
passed · tests/tools/test_generate_api_sequences.py::test_sql_sequence_steps_ignores_missing_or_unparseable_sql
実測:passed · 0.0005898310000134188秒
passed · tests/tools/test_generate_api_unit_test_factors.py::test_api_unit_test_factors_from_router_ast
実測:passed · 0.0027443109999580884秒
passed · tests/tools/test_generate_api_unit_test_factors.py::test_condition_description_falls_back_to_api_function_docstring
実測:passed · 0.0013308449999840377秒
passed · tests/tools/test_generate_api_unit_test_factors.py::test_render_unit_test_markdown_uses_three_sections
実測:passed · 0.0038739190000001145秒
passed · tests/tools/test_generate_api_unit_test_factors.py::test_render_implicit_router_errors_section_renders_none
実測:passed · 0.0002096990000381993秒
passed · tests/tools/test_generate_db_crud.py::test_operation_label_orders_crud_letters
実測:passed · 0.0002626170000326056秒
passed · tests/tools/test_generate_db_crud.py::test_api_name_from_sql_path_uses_api_folder_name
実測:passed · 0.0002975390000301559秒
passed · tests/tools/test_generate_db_crud.py::test_api_name_from_sql_path_rejects_non_api_sql_path
実測:passed · 0.00038509900002736686秒
passed · tests/tools/test_generate_db_crud.py::test_sql_operations_extracts_crud_from_sqlglot_ast
実測:passed · 0.001826206000032471秒
passed · tests/tools/test_generate_db_crud.py::test_sql_operations_reads_delete_using_tables
実測:passed · 0.0005929349999860278秒
passed · tests/tools/test_generate_db_crud.py::test_mutation_target_returns_none_without_target
実測:passed · 0.0002470440000479357秒
passed · tests/tools/test_generate_db_crud.py::test_expression_tables_returns_empty_for_non_expression
実測:passed · 0.02120594500001971秒
passed · tests/tools/test_generate_db_crud.py::test_sql_operations_ignores_empty_parsed_statement
実測:passed · 0.00029964300000528965秒
passed · tests/tools/test_generate_db_crud.py::test_collect_crud_ignores_tables_not_defined_in_ddl
実測:passed · 0.001966893999963304秒
passed · tests/tools/test_generate_db_crud.py::test_render_csv_outputs_api_rows_and_table_columns
実測:passed · 0.0004477109999925233秒
passed · tests/tools/test_generate_db_crud.py::test_csv_escape_quotes_special_values
実測:passed · 0.00020989999995890685秒
passed · tests/tools/test_generate_db_crud.py::test_generate_writes_db_crud_csv
実測:passed · 0.00267559999997502秒
passed · tests/tools/test_generate_db_crud.py::test_arg_parser_defaults_and_main_output
実測:passed · 0.0025191789999894354秒
passed · tests/tools/test_generate_db_er_diagram.py::test_parse_reference_target_normalizes_identifier_and_optional_columns
実測:passed · 0.0005645240000262675秒
passed · tests/tools/test_generate_db_er_diagram.py::test_parse_relationships_extracts_inline_table_and_alter_foreign_keys
実測:passed · 0.00405712899998889秒
passed · tests/tools/test_generate_db_er_diagram.py::test_relationship_cardinality_uses_nullability_and_uniqueness
実測:passed · 0.006751968000003217秒
passed · tests/tools/test_generate_db_er_diagram.py::test_child_columns_are_unique_supports_composite_table_constraints
実測:passed · 0.001323332999959348秒
passed · tests/tools/test_generate_db_er_diagram.py::test_render_mermaid_includes_tables_keys_and_relationships
実測:passed · 0.0037403119999908085秒
passed · tests/tools/test_generate_db_er_diagram.py::test_render_markdown_wraps_mermaid_with_source_ddl_path
実測:passed · 0.0034730369999920185秒
passed · tests/tools/test_generate_db_er_diagram.py::test_generate_writes_markdown_or_mermaid_by_output_suffix
実測:passed · 0.007425350999994862秒
passed · tests/tools/test_generate_db_er_diagram.py::test_arg_parser_defaults_format_inference_and_main_output
実測:passed · 0.004370601999994506秒
passed · tests/tools/test_generate_db_table_specs.py::test_parse_column_extracts_key_nullability_and_reference
実測:passed · 0.0007673820000491105秒
passed · tests/tools/test_generate_db_table_specs.py::test_sqlglot_helper_fallbacks
実測:passed · 0.00033762900000056106秒
passed · tests/tools/test_generate_db_table_specs.py::test_parse_column_marks_primary_key_as_unique_and_not_nullable
実測:passed · 0.0006052129999716271秒
passed · tests/tools/test_generate_db_table_specs.py::test_parse_create_table_rejects_non_schema_create
実測:passed · 0.0019076860000382112秒
passed · tests/tools/test_generate_db_table_specs.py::test_parse_tables_supports_comments_and_like_tables
実測:passed · 0.002803697999979704秒
passed · tests/tools/test_generate_db_table_specs.py::test_parse_tables_supports_commented_out_comment_on_metadata
実測:passed · 0.0010648520000131612秒
passed · tests/tools/test_generate_db_table_specs.py::test_parse_tables_raises_for_missing_like_source
実測:passed · 0.0007320210000330007秒
passed · tests/tools/test_generate_db_table_specs.py::test_render_table_markdown_includes_columns_constraints_and_escapes_pipe
実測:passed · 0.001971521000029952秒
passed · tests/tools/test_generate_db_table_specs.py::test_generate_writes_sorted_table_specs
実測:passed · 0.0020207730000265656秒
passed · tests/tools/test_generate_db_table_specs.py::test_arg_parser_defaults_and_main_output
実測:passed · 0.0017734280000354374秒
passed · tests/tools/test_generate_db_table_specs.py::test_small_helpers
実測:passed · 0.00021594899999399786秒
passed · tests/tools/test_generate_e2e_specs.py::test_e2e_flow_steps_cover_generated_api_list
実測:passed · 0.0003053210000416584秒
passed · tests/tools/test_generate_e2e_specs.py::test_component_variants_follow_target_coverage_policies
実測:passed · 0.00025090000002592205秒
passed · tests/tools/test_generate_e2e_specs.py::test_prerequisites_resolve_dependencies_recursively
実測:passed · 0.004976616999954331秒
passed · tests/tools/test_generate_e2e_specs.py::test_target_cases_skip_embedded_goals_and_carry_matrix_assertions
実測:passed · 0.0003524100000049657秒
passed · tests/tools/test_generate_e2e_specs.py::test_e2e_case_list_links_scenarios
実測:passed · 0.33749403400003075秒
passed · tests/tools/test_generate_e2e_specs.py::test_e2e_scenarios_render_steps_settings_and_failure_triggers
実測:passed · 2.8271046489999776秒
passed · tests/tools/test_generate_e2e_specs.py::test_check_e2e_specs_accepts_repository_tree
実測:passed · 0.859253759000012秒
passed · tests/tools/test_generate_e2e_specs.py::test_check_e2e_specs_reports_missing_generated_case
実測:passed · 0.5072489540000333秒
passed · tests/tools/test_generate_external_crud.py::test_api_name_from_functions_path_uses_api_folder_name
実測:passed · 0.00031570600003760774秒
passed · tests/tools/test_generate_external_crud.py::test_api_name_from_functions_path_rejects_non_api_functions_path
実測:passed · 0.0003869810000196594秒
passed · tests/tools/test_generate_external_crud.py::test_called_methods_collects_configured_variable_attribute_calls
実測:passed · 0.0004194690000076662秒
passed · tests/tools/test_generate_external_crud.py::test_file_operations_maps_service_methods_to_crud_resources
実測:passed · 0.0004948910000166507秒
passed · tests/tools/test_generate_external_crud.py::test_file_operations_ignores_unmapped_service_methods
実測:passed · 0.0004078920000551989秒
passed · tests/tools/test_generate_external_crud.py::test_collect_service_crud_reads_router_dependencies
実測:passed · 0.0017154730000470408秒
passed · tests/tools/test_generate_external_crud.py::test_router_dependency_names_ignores_missing_router
実測:passed · 0.00022293900002523515秒
passed · tests/tools/test_generate_external_crud.py::test_generate_writes_requested_external_crud_csvs
実測:passed · 0.0011523410000222611秒
passed · tests/tools/test_generate_external_crud.py::test_service_names_for_arg_accepts_all_or_single_service
実測:passed · 0.0003443990000278063秒
passed · tests/tools/test_generate_external_crud.py::test_arg_parser_defaults_and_main_output
実測:passed · 0.0022700509999822316秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_schema_type_and_constraints
実測:passed · 0.0029995180000241817秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_enum_comment_descriptions_reads_enum_member_comments
実測:passed · 0.0004928870000071583秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_parameter_and_request_body_rows
実測:passed · 0.0006697290000374778秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_auth_header_rows_use_runtime_meaning
実測:passed · 0.0002565780000054474秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_response_summary_and_render_markdown
実測:passed · 0.0019227180000029875秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_operation_components_uses_api_specific_error_resource_schema
実測:passed · 0.0003162670000165235秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_response_description_prefers_status_sample_error_reason
実測:passed · 0.0008672600000068087秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_empty_and_invalid_sections_render_none
実測:passed · 0.00028082400001494534秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_render_operation_markdown_handles_missing_description
実測:passed · 0.00023639900001626302秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_sample_renderers_format_curl_and_json
実測:passed · 0.00035356199998659577秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_operation_output_path_falls_back_to_default
実測:passed · 0.0003262820000031752秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_implementation_operation_paths_reads_router_operation_ids
実測:passed · 0.001469319000023006秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_operation_samples_are_loaded_from_samples_module
実測:passed · 0.0027479459999995015秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_module_sample_handles_missing_suffix
実測:passed · 0.00025554799998417366秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_router_operation_helpers_handle_non_matches
実測:passed · 0.000978784999972504秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_iter_operations_and_output_path
実測:passed · 0.0002913600000056249秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_generate_from_openapi_writes_files
実測:passed · 0.0011386009999796443秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_arg_parser_defaults_and_main_output
実測:passed · 0.0016340529999752107秒
passed · tests/tools/test_generate_openapi_if_specs.py::test_load_fastapi_openapi_returns_schema
実測:passed · 0.08445015899997088秒
passed · tests/tools/test_generate_queries.py::test_name_helpers
実測:passed · 0.00044941300001255513秒
passed · tests/tools/test_generate_queries.py::test_type_helpers
実測:passed · 0.00031669800000599935秒
passed · tests/tools/test_generate_queries.py::test_placeholder_names_preserves_first_seen_order
実測:passed · 0.0002659020000237433秒
passed · tests/tools/test_generate_queries.py::test_parse_query_spec_infers_select_params_and_rows
実測:passed · 0.004611416999978246秒
passed · tests/tools/test_generate_queries.py::test_parse_query_spec_infers_qualified_alias_and_expression_rows
実測:passed · 0.00380141199997297秒
passed · tests/tools/test_generate_queries.py::test_parse_query_spec_marks_null_checked_params_nullable
実測:passed · 0.004069437999987713秒
passed · tests/tools/test_generate_queries.py::test_parse_query_spec_marks_left_join_rows_nullable
実測:passed · 0.003629206999960388秒
passed · tests/tools/test_generate_queries.py::test_operation_from_statements_detects_statement_kind
実測:passed · 0.0010565189999738323秒
passed · tests/tools/test_generate_queries.py::test_sql_summary_reads_first_comment_or_falls_back
実測:passed · 0.00018305999998347033秒
passed · tests/tools/test_generate_queries.py::test_parse_query_spec_infers_insert_params_and_returning_rows
実測:passed · 0.004061364999984107秒
passed · tests/tools/test_generate_queries.py::test_parse_query_spec_infers_update_params_and_returning_rows
実測:passed · 0.004234741999994185秒
passed · tests/tools/test_generate_queries.py::test_returning_and_mutation_helpers_handle_missing_returning_or_target
実測:passed · 0.003001990999962345秒
passed · tests/tools/test_generate_queries.py::test_collect_param_columns_handles_non_standard_insert_and_update
実測:passed · 0.0035073380000198995秒
passed · tests/tools/test_generate_queries.py::test_render_queries_py_includes_required_imports_and_empty_params
実測:passed · 0.007392702999993617秒
passed · tests/tools/test_generate_queries.py::test_render_queries_py_uses_two_blank_lines_between_top_level_blocks
実測:passed · 0.003291308999962439秒
passed · tests/tools/test_generate_queries.py::test_render_queries_py_includes_empty_params_and_date_decimal_imports
実測:passed · 0.0032953150000025744秒
passed · tests/tools/test_generate_queries.py::test_render_query_function_uses_fetch_one_for_mutation_returning
実測:passed · 0.0035254150000127993秒
passed · tests/tools/test_generate_queries.py::test_render_queries_py_imports_multiple_query_helpers
実測:passed · 0.004566321000027074秒
passed · tests/tools/test_generate_queries.py::test_output_field_falls_back_for_unknown_column_and_plain_expression
実測:passed · 0.0031725530000130675秒
passed · tests/tools/test_generate_queries.py::test_infer_row_fields_returns_empty_when_no_select_or_returning
実測:passed · 0.002963604999990821秒
passed · tests/tools/test_generate_queries.py::test_required_imports_handles_minimal_specs
実測:passed · 0.00018700599997600875秒
passed · tests/tools/test_generate_queries.py::test_generate_queries_writes_each_api_queries_file
実測:passed · 0.004997217000038745秒
passed · tests/tools/test_generate_queries.py::test_render_compat_queries_py_re_exports_generated_queries
実測:passed · 0.0001762910000024931秒
passed · tests/tools/test_generate_queries.py::test_arg_parser_defaults_and_main_output
実測:passed · 0.0047346190000325805秒
passed · tests/tools/test_generate_queries.py::test_generate_queries_handles_api_without_sql
実測:passed · 0.0032196529999737322秒
passed · tests/tools/test_generate_queries.py::test_unknown_placeholder_type_is_rejected
実測:passed · 0.0034475890000180698秒
passed · tests/tools/test_generate_queries.py::test_cast_placeholder_type_is_inferred
実測:passed · 0.00382702999996809秒
passed · tests/tools/test_generate_queries.py::test_comparison_placeholder_can_be_on_left_side
実測:passed · 0.0032721000000037748秒
passed · tests/tools/test_generate_query_specs.py::test_sql_tables_and_conditions_preserve_sql_order
実測:passed · 0.0015363979999847288秒
passed · tests/tools/test_generate_query_specs.py::test_sql_tables_deduplicates_repeated_tables
実測:passed · 0.0005196669999918413秒
passed · tests/tools/test_generate_query_specs.py::test_column_ref_resolution_handles_aliases_and_ambiguity
実測:passed · 0.004118430000005446秒
passed · tests/tools/test_generate_query_specs.py::test_row_column_refs_handles_returning_and_empty_cases
実測:passed · 0.00335848800000349秒
passed · tests/tools/test_generate_query_specs.py::test_param_column_refs_cover_insert_update_and_comparison_paths
実測:passed · 0.004449077999993278秒
passed · tests/tools/test_generate_query_specs.py::test_param_column_refs_falls_back_to_unique_ddl_column
実測:passed · 0.0028725700000222787秒
passed · tests/tools/test_generate_query_specs.py::test_parenthesized_condition_items_handles_empty_and_single
実測:passed · 0.0005018609999751789秒
passed · tests/tools/test_generate_query_specs.py::test_expression_and_conditions_handle_unaliased_and_empty_paths
実測:passed · 0.0013357819999555431秒
passed · tests/tools/test_generate_query_specs.py::test_display_and_render_helpers_cover_empty_and_fallback_paths
実測:passed · 0.002979768999978205秒
passed · tests/tools/test_generate_query_specs.py::test_render_sql_spec_handles_operation_fallback_and_empty_sections
実測:passed · 0.00032127399998671535秒
passed · tests/tools/test_generate_query_specs.py::test_render_query_markdown_inserts_blank_line_between_multiple_specs
実測:passed · 0.000260865000029753秒
passed · tests/tools/test_generate_query_specs.py::test_changed_outputs_and_render_changed_cover_missing_and_stale_files
実測:passed · 0.0005740969999692425秒
passed · tests/tools/test_generate_query_specs.py::test_generate_query_specs_renders_sql_chapters
実測:passed · 0.004622873999949206秒
passed · tests/tools/test_generate_query_specs.py::test_generate_query_specs_renders_source_tables_and_expanded_aliases
実測:passed · 0.0052614869999842995秒
passed · tests/tools/test_generate_query_specs.py::test_generate_query_specs_splits_and_or_conditions
実測:passed · 0.005600117000028604秒
passed · tests/tools/test_generate_query_specs.py::test_render_query_markdown_marks_empty_sections
実測:passed · 0.004026043999999729秒
passed · tests/tools/test_generate_query_specs.py::test_main_writes_outputs_and_check_reports_changed
実測:passed · 0.011661704999994527秒
passed · tests/tools/test_generate_query_specs.py::test_arg_parser_defaults
実測:passed · 0.0003968059999692741秒
passed · tests/tools/test_generate_query_specs.py::test_render_query_markdown_handles_no_sql_specs
実測:passed · 0.00018694599998525518秒
passed · tests/tools/test_project_design.py::test_data_capability_is_deterministic
Given 同一のDDL When dataの設計を2回クリーン生成 Then byte集合が一致する。 [TECH-DESIGN-AC]
実測:passed · 2.4879650469999888秒
passed · tests/tools/test_project_design.py::test_drift_reports_manual_edit_and_stale_file
Given 生成物の手編集と旧帳票の残存 When drift検査 Then 変更と余剰を報告し既存fileを書き換えない。 [TECH-DESIGN-AC]
実測:passed · 0.0007872329999827343秒
passed · tests/tools/test_project_design.py::test_write_owned_root_replaces_only_owned_contents
Given 旧生成物がある所有root When 再生成 Then 旧fileを残さず新しい集合だけにする。 [TECH-DESIGN-AC]
実測:passed · 0.0010636200000249119秒
passed · tests/tools/test_project_design.py::test_repeat_sections_reads_profile_grammar
Given profileの繰返し節 When 帳票見出しを解析 Then 実装由来の見出しを列挙する。 [TECH-DESIGN-AC]
実測:passed · 0.0004788670000266393秒
passed · tests/tools/test_project_design.py::test_repeat_sections_rejects_unsupported_structure
Given profileにない見出し When 帳票を解析 Then 空の成功にせず未対応として拒否する。 [TECH-DESIGN-AC]
実測:passed · 0.00029789000001301247秒
passed · tests/tools/test_project_design.py::test_added_route_without_contract_is_rejected
Given 契約のないrouteの追加 When API設計を生成 Then 実登録集合との不一致として拒否する。 [TECH-DESIGN-AC]
実測:passed · 0.001727700999992976秒
passed · tests/tools/test_project_design.py::test_crud_rows_split_read_and_write_evidence
Given 同じ保存先への読取りと更新 When CRUDを集約 Then 1rowでread/writeの根拠を分ける。 [TECH-DESIGN-AC]
実測:passed · 0.0003453100000001541秒
passed · tests/tools/test_project_design.py::test_crud_model_matches_common_projection
Given 実装のSQLとrouter依存 When CRUD modelを生成 Then 全operationが根拠つきで射影できる。 [TECH-DESIGN-AC]
実測:passed · 0.12103307500001392秒
passed · tests/tools/test_project_design.py::test_sql_target_change_changes_crud_projection
Given 生成済みCRUD When SQLの更新先が変わる Then CRUD model・表・CSVが変化する。 [TECH-DESIGN-AC]
実測:passed · 0.2381295380000097秒
passed · tests/tools/test_project_design.py::test_crud_diagram_uses_openapi_summaries_and_storage_columns
Given 実APIと保存先 When CRUD図を生成 Then 和名の行・完全名の列・CRUDセルと空欄を出力する。 [TECH-CRUD-AC]
実測:passed · 0.1176664550000055秒
passed · tests/tools/test_project_design.py::test_crud_diagram_tracks_summary_changes
Given OpenAPI summaryの変更 When CRUD図を再生成 Then ハードコードせず変更した和名を反映する。 [TECH-CRUD-AC]
実測:passed · 0.1227788809999879秒
passed · tests/tools/test_project_design.py::test_crud_diagram_rejects_missing_summary[None]
Given summaryの欠落または空白 When CRUD図を生成 Then operationIdで代用せずエラーにする。 [TECH-CRUD-AC]
実測:passed · 0.00034450800001195603秒
passed · tests/tools/test_project_design.py::test_crud_diagram_rejects_missing_summary[]
Given summaryの欠落または空白 When CRUD図を生成 Then operationIdで代用せずエラーにする。 [TECH-CRUD-AC]
実測:passed · 0.00022804699995049305秒
passed · tests/tools/test_project_design.py::test_crud_diagram_rejects_missing_summary[ ]
Given summaryの欠落または空白 When CRUD図を生成 Then operationIdで代用せずエラーにする。 [TECH-CRUD-AC]
実測:passed · 0.0002153679999992164秒
passed · tests/tools/test_project_design.py::test_crud_diagram_orders_axes_and_cells_and_preserves_no_access
Given 逆順のモデルと同じ和名のAPI When 表を2回生成 Then byte一致しAPIごとの行とアクセスなしを保つ。 [TECH-CRUD-AC]
実測:passed · 0.00026912699996728406秒
passed · tests/tools/test_project_design.py::test_crud_capability_is_deterministic
Given 同じSQL・router・OpenAPI When CRUDを2回生成 Then 全生成物のbyte集合が一致する。 [TECH-CRUD-AC]
実測:passed · 2.6550440279999634秒
passed · tests/tools/test_project_design.py::test_crud_contract_rejects_rendering_drift[diagram]
Given CRUDの各帳票の手編集 When repository契約で照合 Then 図の形式変更後も不一致を拒否する。 [TECH-CRUD-AC]
実測:passed · 0.20135880499998393秒
passed · tests/tools/test_project_design.py::test_crud_contract_rejects_rendering_drift[csv]
Given CRUDの各帳票の手編集 When repository契約で照合 Then 図の形式変更後も不一致を拒否する。 [TECH-CRUD-AC]
実測:passed · 0.36612758499995834秒
passed · tests/tools/test_project_design.py::test_crud_contract_rejects_rendering_drift[table]
Given CRUDの各帳票の手編集 When repository契約で照合 Then 図の形式変更後も不一致を拒否する。 [TECH-CRUD-AC]
実測:passed · 0.37615273399995885秒
passed · tests/tools/test_project_design.py::test_crud_contract_rejects_rendering_drift[evidence]
Given CRUDの各帳票の手編集 When repository契約で照合 Then 図の形式変更後も不一致を拒否する。 [TECH-CRUD-AC]
実測:passed · 0.3670340819999751秒
passed · tests/tools/test_project_design.py::test_crud_contract_rejects_stale_summary_and_invalid_model
Given 和名のdriftまたは未解決アクセス When 図を契約検査 Then 検査対象のOpenAPIとモデルを照合して拒否する。 [TECH-CRUD-AC]
実測:passed · 0.24602647500000785秒
passed · tests/tools/test_project_design.py::test_database_model_marks_logical_references
Given DSQL向けの論理FK When DB探索modelを生成 Then アプリ保証の参照として区別する。 [TECH-DESIGN-AC]
実測:passed · 0.01592441799999733秒
passed · tests/tools/test_project_design.py::test_frontend_without_menu_is_unsupported
Given メインメニューのない画面 When 画面設計を生成 Then 未対応として拒否する。 [TECH-DESIGN-AC]
実測:passed · 0.001072773999965193秒
passed · tests/tools/test_project_design.py::test_trace_rejects_missing_and_unknown_tests
Given 受入条件に対応するテスト When テスト欠落・未知タグ Then 要件traceの欠落として拒否する。 [TECH-DESIGN-AC]
実測:passed · 0.152723696999999秒
passed · tests/tools/test_project_design.py::test_verify_checks_cover_requirement_evidence
Given 検査で確認する要件 When verify入口を解析 Then 参照する検査名がすべて実在する。 [TECH-DESIGN-AC]
実測:passed · 0.003588948999947661秒
passed · tests/tools/test_project_evidence.py::test_result_identity_and_unexecuted
Given collectorの2件 When 片方だけ成功 Then 他方をnot-runとして残す。 [TECH-QUALITY-AC]
実測:passed · 0.0023354269999913413秒
passed · tests/tools/test_project_evidence.py::test_nonpassing_states_preserved[failed]
Given 非成功状態 When 変換 Then passedへ変えない。 [TECH-QUALITY-AC]
実測:passed · 0.00019267499999386928秒
passed · tests/tools/test_project_evidence.py::test_nonpassing_states_preserved[skipped]
Given 非成功状態 When 変換 Then passedへ変えない。 [TECH-QUALITY-AC]
実測:passed · 0.00017799300002252494秒
passed · tests/tools/test_project_evidence.py::test_nonpassing_states_preserved[flaky]
Given 非成功状態 When 変換 Then passedへ変えない。 [TECH-QUALITY-AC]
実測:passed · 0.00018306999999140317秒
passed · tests/tools/test_project_evidence.py::test_result_outside_collector_is_rejected
Given collector外の結果 When 変換 Then 混入として拒否する。 [TECH-QUALITY-AC]
実測:passed · 0.0002894269999842436秒
passed · tests/tools/test_project_evidence.py::test_foreign_run_rejected
Given 別runのcollector原本 When ポータル証跡を構築 Then 混入として拒否する。 [TECH-QUALITY-AC]
実測:passed · 0.0007338940000067851秒
passed · tests/tools/test_project_evidence.py::test_backend_coverage_below_goal_fails
Given 目標未満の業務コードcoverage When 証跡へ変換 Then 計測済みではなく失敗として示す。 [TECH-QUALITY-AC]
実測:passed · 0.0005265870000243922秒
passed · tests/tools/test_project_evidence.py::test_publication_allowlist[api.log]
Given 公開サイトに生ログ・storage state・DB dump When 公開集合を検査 Then 公開を拒否する。 [TECH-PRIVACY-AC]
実測:passed · 0.0008282329999929061秒
passed · tests/tools/test_project_evidence.py::test_publication_allowlist[storage-state.txt]
Given 公開サイトに生ログ・storage state・DB dump When 公開集合を検査 Then 公開を拒否する。 [TECH-PRIVACY-AC]
実測:passed · 0.0007291759999930036秒
passed · tests/tools/test_project_evidence.py::test_publication_allowlist[dump.sql]
Given 公開サイトに生ログ・storage state・DB dump When 公開集合を検査 Then 公開を拒否する。 [TECH-PRIVACY-AC]
実測:passed · 0.0006481070000177169秒
passed · tests/tools/test_project_evidence.py::test_symlink_not_published
Given 公開サイト内のsymlink When 公開集合を検査 Then 外部fileを公開しない。 [TECH-PRIVACY-AC]
実測:passed · 0.0008130400000254667秒
passed · tests/tools/test_project_evidence.py::test_allowed_site_records_provenance
Given allowlist内だけの公開サイト When 公開集合を検査 Then hashを記録して公開可能にする。 [TECH-PRIVACY-AC]
実測:passed · 0.0008077730000195515秒
passed · tests/tools/test_project_evidence.py::test_design_search_covers_lazunex_documents
Given lazunex形式の設計Markdown When 検索索引を作る Then API帳票とE2E仕様を含める。 [TECH-DESIGN-AC]
実測:passed · 0.012112121000029674秒
passed · tests/tools/test_project_migrate.py::test_migrate_and_seed_repeat
Given 既存データ When migrationとseedを繰り返す Then 重複せず既存データを保持する。 [COM-05-AC] [COM-02-AC] [SLOT-AC16]
実測:passed · 0.052047125000001415秒
passed · tests/tools/test_rulecheck_cli.py::test_rulecheck_cli_generate_verify_and_check
実測:passed · 0.005410438000012618秒
passed · tests/tools/test_rulecheck_cli.py::test_metric_exclude_globs_skip_generated_python
実測:passed · 0.0014042030000496197秒
passed · tests/tools/test_rulecheck_cli.py::test_endpoint_business_argument_count_excludes_fastapi_depends
実測:passed · 0.001399907000006806秒
passed · tests/tools/test_rulecheck_cli.py::test_additional_metric_checkers_report_failures
実測:passed · 0.0019024979999926472秒
passed · tests/tools/test_tools_package.py::test_tools_package_imports_both_roots[paths0]
Given 2箇所のtools配置 When 順序を変えて探索 Then Quintとverifyの依存を読み込める。
実測:passed · 0.15679470800000672秒
passed · tests/tools/test_tools_package.py::test_tools_package_imports_both_roots[paths1]
Given 2箇所のtools配置 When 順序を変えて探索 Then Quintとverifyの依存を読み込める。
実測:passed · 0.15474169700001994秒
passed · tests/app/apis/reservations/cancel_reservation/test_functions.py::test_get_reservation_and_predicates
Given aliceの確定予約 When 取得と取消可否を判定 Then 本人と管理者だけ許可し版・状態・開始を判定する。 [SLOT-AC04] [SLOT-AC11] [SLOT-AC13]
実測:passed · 0.005033349999962411秒
passed · tests/app/apis/reservations/cancel_reservation/test_functions.py::test_cancel_updates_and_appends_event
Given 取消可能な予約 When 制御版・状態・履歴を更新 Then 取消済みの版2と取消履歴を返す。 [RULE-12-AC] [RULE-06-AC]
実測:passed · 0.0011793109999871376秒
passed · tests/app/apis/reservations/cancel_reservation/test_functions.py::test_rejection_builders
Given 権限なし・古い版・取消済み・開始済み When 拒否応答を組み立てる Then 403と409の理由コードを返す。 [SLOT-AC04] [SLOT-AC11] [SLOT-AC13]
実測:passed · 0.00537269100004778秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_privacy_and_cancel
Given Aの予約 When B・Aが詳細取得と取消 Then Bは403で情報非公開、Aは取消。 [SLOT-AC04] [SLOT-AC08] [SLOT-02-AC] [RULE-09-AC] [RULE-13-AC] [RULE-06-AC] [COM-04-AC]
実測:passed · 0.15504761199997574秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_cancel_boundaries
Given 確定予約 When 古い版と開始時刻ちょうどの取消 Then 409、履歴1件。 [SLOT-AC11] [SLOT-AC13] [RULE-13-AC]
実測:passed · 0.0631788289999804秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_admin_cancels_other_before_start
Given Aの開始前予約 When 管理者が取消 Then 取消と履歴2件、開始後は管理者も拒否。 [SLOT-AC04] [SLOT-07-AC] [RULE-09-AC]
実測:passed · 0.090796649999902秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_cancel_and_rebook_concurrent
Given 確定予約 When 取消と同じ枠の再予約を同時実行 Then 重なる確定予約は最大1件。 [RULE-06-AC]
実測:passed · 0.06771010900001784秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_missing_reservation_returns_404
Given 存在しない予約 When 取消 Then 404で区別する。 [COM-03-AC]
実測:passed · 0.014787951999892357秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_cancel_reservation_router_returns_sample_shaped_response_with_db
Given 開始前の確定予約 When 標本requestで取消 Then 標本と同じ形の応答を返し取消と履歴を保存する。 [SLOT-AC04] [RULE-12-AC]
実測:passed · 0.08005376100004469秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_cancel_reservation_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 予約取消 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.09791900499999429秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc001_cancel_reservation_router_matches_unit_test_gen
Given aliceの予約 When bobが取消 Then 403で運用ログを出す。 [SLOT-AC04] [COM-04-AC]
実測:passed · 0.04535156099996129秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc002_cancel_reservation_router_matches_unit_test_gen
Given 版1の予約 When 版2で取消 Then 409で運用ログを出す。 [SLOT-AC11]
実測:passed · 0.05150912099998095秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc003_cancel_reservation_router_matches_unit_test_gen
Given 取消済みの予約 When 最新版で再取消 Then 409で運用ログを出す。 [SLOT-AC13] [RULE-13-AC]
実測:passed · 0.06844290999993063秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc004_cancel_reservation_router_matches_unit_test_gen
Given 開始時刻を迎えた予約 When 取消 Then 409で運用ログを出す。 [SLOT-AC13]
実測:passed · 0.051488179999978456秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc005_cancel_reservation_router_matches_unit_test_gen
Given 開始前の確定予約 When 本人が取消 Then 200で取消済みを返す。 [SLOT-AC04]
実測:passed · 0.05091810900000837秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc006_cancel_reservation_router_matches_unit_test_gen
Given 予約取消の対象取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.006850052000004325秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc007_cancel_reservation_router_matches_unit_test_gen
Given 予約取消の対象取得で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.005718512000044029秒
passed · tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc008_cancel_reservation_router_matches_unit_test_gen
Given 予約取消の対象取得でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.0056399159999500625秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start0-end0-start_out_of_range]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.00067694900008064秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start1-end1-start_out_of_range]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0005722250000417262秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start2-end2-start_out_of_range]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0005407780000723506秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start3-end3-duration_out_of_range]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0005549989999735772秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start4-end4-duration_out_of_range]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0005536469999469773秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start5-end5-quarter_hour_required]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0007056620000867042秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start6-end6-same_japan_day_required]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0006474260000004506秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time[start7-end7-quarter_hour_required]
Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.000836755000023004秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_boundaries[1-15]
Given 15分・4時間・30日境界 When 時刻検証 Then 受け付ける。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0006238109999685548秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_boundaries[1-240]
Given 15分・4時間・30日境界 When 時刻検証 Then 受け付ける。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0005640819999825908秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_boundaries[30-15]
Given 15分・4時間・30日境界 When 時刻検証 Then 受け付ける。 [SLOT-AC06] [RULE-02-AC] [RULE-03-AC]
実測:passed · 0.0005555299999286945秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_normalized_input
Given 同じ瞬間のoffset差と前後空白 When 正規化 Then 同一要求。 [SLOT-AC09]
実測:passed · 0.0006549070000119173秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_expired_record_is_not_replayed
Given 期限切れの成功記録 When 再送判定 Then 元応答を返さず新規要求として扱う。 [SLOT-AC15] [RULE-10-AC]
実測:passed · 0.0005528259999891816秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_request_rejects_unknown_fields
Given 公開契約にない項目 When 予約作成の入力解析 Then 拒否する。 [COM-03-AC] [RULE-04-AC]
実測:passed · 0.00021947400000499329秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_get_idempotency_record_marks_expiry
Given 期限切れと未登録の要求キー When 成功記録を取得 Then 期限切れを区別し未登録は空の参照を返す。 [SLOT-AC15]
実測:passed · 0.0015207449999934397秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_update_resource_control_version_locks_or_404
Given 存在する資源と存在しない資源 When 内部制御版を進める Then 資源参照か404を返す。 [SLOT-AC10]
実測:passed · 0.0007702369999833536秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_has_overlapping_reservation_uses_half_open_interval
Given 重なる確定予約の件数 When 重複を判定 Then 開始と終了を半開区間の条件として渡す。 [RULE-01-AC]
実測:passed · 0.0006854920000023412秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_save_reservation_owner_event_and_record
Given 検証済み要求 When 利用者・予約・履歴・成功記録を保存 Then 同じ予約と要求hashで記録する。 [RULE-12-AC]
実測:passed · 0.0009756309999602308秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_rejection_builders_return_conflicts
Given 再送誤用・無効資源・重複 When 拒否応答を組み立てる Then それぞれ409と理由コードを返す。 [SLOT-AC02] [SLOT-AC05] [SLOT-AC09]
実測:passed · 0.0021012720000044283秒
passed · tests/app/apis/reservations/create_reservation/test_functions.py::test_router_error_response_maps_exceptions
Given Routerで捕捉した業務例外 When error responseへ変換 Then 例外のstatusと理由を返す。 [COM-03-AC]
実測:passed · 0.0011148849999926824秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_create_adjacent_overlap
Given 空き枠 When 作成・重複・隣接 Then 201・409・201。 [SLOT-AC01] [SLOT-AC02] [RULE-01-AC]
実測:passed · 0.07631693400003314秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_replay_before_validation
Given 成功後の取消と時刻進行 When 同一キー再送 Then 元の作成応答で履歴は増えない。 [SLOT-AC07] [SLOT-AC09] [SLOT-AC15] [RULE-10-AC]
実測:passed · 0.08616696499996124秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_replay_after_start
Given 作成から24時間以内に予約開始 When 再送 Then 時刻違反にせず元応答。 [SLOT-AC15] [RULE-11-AC]
実測:passed · 0.03329041599999982秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_twenty_concurrent
Given 空き枠と20利用者 When 同時送信 Then 1成功19競合で重複なし。 [SLOT-AC03]
実測:passed · 0.34254281599999103秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_same_key_concurrent
Given 同一キー同一入力 When 20同時再送 Then 同じIDで予約と作成履歴各1件。 [SLOT-AC07]
実測:passed · 0.314386485秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_rollback_at_event
Given 履歴保存の障害 When 作成 Then 予約とキーをrollbackし再送は1件だけ成功。 [SLOT-AC12] [RULE-12-AC] [COM-02-AC]
実測:passed · 0.06076597599997058秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_invalid_token_leaves_database
Given 期限切れ・改ざんroleのtoken When 予約作成と資源登録 Then 401/403でDBは変化しない。 [SLOT-AC14]
実測:passed · 0.037755716999981814秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_create_status_codes
Given 不正入力・対象なし・キーなし When 予約作成 Then 422・404・422を区別し入力値を反射しない。 [COM-03-AC]
実測:passed · 0.025927716000069267秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_rule_violation_is_422
Given 15分刻みでない時刻 When 予約作成 Then 422で予約を作らない。 [SLOT-AC06] [RULE-02-AC]
実測:passed · 0.023898620999943887秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_create_reservation_router_returns_sample_shaped_response_with_db
Given 標本request When 予約作成 Then 標本と同じ形の応答を返し予約・履歴・成功記録・利用者を保存する。 [SLOT-AC01] [RULE-12-AC]
実測:passed · 0.08766864100005023秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_create_reservation_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 予約作成 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.09674428899995746秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc001_create_reservation_router_matches_unit_test_gen
Given 成功済みの要求キー When 異なる入力で再送 Then 409で運用ログを出す。 [SLOT-AC09] [RULE-10-AC]
実測:passed · 0.04658437000000504秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc002_create_reservation_router_matches_unit_test_gen
Given 成功済みの要求キー When 同じ入力で再送 Then 201で元の応答を返し予約を増やさない。 [SLOT-AC07] [RULE-10-AC]
実測:passed · 0.056007862000001296秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc003_create_reservation_router_matches_unit_test_gen
Given 無効化した資源 When 予約作成 Then 409で運用ログを出す。 [SLOT-AC05]
実測:passed · 0.05137251900009687秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc004_create_reservation_router_matches_unit_test_gen
Given 同じ時間帯の確定予約 When 予約作成 Then 409で運用ログを出す。 [SLOT-AC02]
実測:passed · 0.061103244000037193秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc005_create_reservation_router_matches_unit_test_gen
Given 空き枠 When 予約作成 Then 201で確定予約を返す。 [SLOT-AC01]
実測:passed · 0.04446852699993542秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc006_create_reservation_router_matches_unit_test_gen
Given 予約作成の再送照合で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.006462240000018937秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc007_create_reservation_router_matches_unit_test_gen
Given 予約作成の再送照合で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.00651252399995883秒
passed · tests/app/apis/reservations/create_reservation/test_router.py::test_tc008_create_reservation_router_matches_unit_test_gen
Given 予約作成の再送照合でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.00824298899999576秒
passed · tests/app/apis/reservations/get_reservation/test_functions.py::test_get_reservation_with_events
Given 予約と作成・取消履歴 When 詳細を取得 Then 本人と管理者だけが履歴つき詳細を参照できる。 [SLOT-07-AC] [RULE-09-AC]
実測:passed · 0.0007321909999973286秒
passed · tests/app/apis/reservations/get_reservation/test_functions.py::test_rejection_and_router_error_builders
Given 他人の予約とRouter例外 When 応答を組み立てる Then 403と例外のstatusを返す。 [COM-04-AC]
実測:passed · 0.0014060560000643818秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_owner_and_admin_view_history
Given Aの予約 When 本人・管理者・他人が詳細取得 Then 本人と管理者は履歴を閲覧し他人は403。 [SLOT-07-AC] [RULE-09-AC] [COM-04-AC]
実測:passed · 0.08067052100000183秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_missing_reservation_returns_404
Given 存在しない予約 When 詳細取得 Then 404で区別する。 [COM-03-AC]
実測:passed · 0.020659859000033975秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_get_reservation_router_returns_sample_shaped_response_with_db
Given aliceの予約 When 本人が詳細取得 Then 標本と同じ形で予約と作成履歴を返す。 [SLOT-07-AC]
実測:passed · 0.06830609700000423秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_get_reservation_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 予約詳細取得 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.11128339300000789秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_tc001_get_reservation_router_matches_unit_test_gen
Given aliceの予約 When bobが詳細取得 Then 403で運用ログを出す。 [SLOT-07-AC] [COM-04-AC]
実測:passed · 0.06201842600000873秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_tc002_get_reservation_router_matches_unit_test_gen
Given aliceの予約 When 管理者が詳細取得 Then 200で目的を含む詳細を返す。 [SLOT-07-AC] [RULE-09-AC]
実測:passed · 0.04552883300004851秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_tc003_get_reservation_router_matches_unit_test_gen
Given 予約詳細の取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.00526137800000015秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_tc004_get_reservation_router_matches_unit_test_gen
Given 予約詳細の取得で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.004888836999953128秒
passed · tests/app/apis/reservations/get_reservation/test_router.py::test_tc005_get_reservation_router_matches_unit_test_gen
Given 予約詳細の取得でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.004813355999999658秒
passed · tests/app/apis/reservations/list_reservations/test_functions.py::test_own_reservations_are_filtered_and_paged
Given 3件の予約と上限2件 When 本人の予約を日付で取得 Then 日本時間の日付範囲で問合せ継続tokenを付ける。 [SLOT-AC08] [RULE-14-AC]
実測:passed · 0.000901891000012256秒
passed · tests/app/apis/reservations/list_reservations/test_functions.py::test_router_error_response
Given 不正な継続token When Router例外を変換 Then 422と理由コードを返す。 [COM-03-AC]
実測:passed · 0.0010400849999996353秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_list_filters_only_own
Given 自分と他人の2日分の予約と取消 When 日付・状態で絞込み Then 自分の対象だけ固定順で返す。 [SLOT-AC08] [RULE-07-AC]
実測:passed · 0.16530471200007923秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_reservation_paging_order
Given 同じ日の3件の予約 When 継続tokenでページ単位に取得 Then 開始日時とIDの固定順で欠落・重複がない。 [RULE-14-AC]
実測:passed · 0.09214933600003405秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_list_reservations_router_returns_sample_shaped_response_with_db
Given 利用者固有の予約1件 When 標本queryで一覧取得 Then 標本と同じ形で本人の予約だけを返す。 [SLOT-AC08]
実測:passed · 0.06069848699996783秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_list_reservations_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 予約一覧取得 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.19095763200004967秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_tc001_list_reservations_router_matches_unit_test_gen
Given 予約のない利用者 When 一覧取得 Then 200で空の一覧を返す。 [SLOT-AC08]
実測:passed · 0.01609409900004266秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_tc002_list_reservations_router_matches_unit_test_gen
Given 予約一覧の取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.0055718649999789704秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_tc003_list_reservations_router_matches_unit_test_gen
Given 予約一覧の取得で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.005220316999952956秒
passed · tests/app/apis/reservations/list_reservations/test_router.py::test_tc004_list_reservations_router_matches_unit_test_gen
Given 予約一覧の取得でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.005165195000017775秒
passed · tests/app/apis/resources/create_resource/test_functions.py::test_resource_input[]
Given 空白か長すぎる資源名 When 入力解析 Then 拒否。 [COM-03-AC] [RULE-14-AC]
実測:passed · 0.00024035499995989085秒
passed · tests/app/apis/resources/create_resource/test_functions.py::test_resource_input[ ]
Given 空白か長すぎる資源名 When 入力解析 Then 拒否。 [COM-03-AC] [RULE-14-AC]
実測:passed · 0.00021003999995627964秒
passed · tests/app/apis/resources/create_resource/test_functions.py::test_resource_input[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
Given 空白か長すぎる資源名 When 入力解析 Then 拒否。 [COM-03-AC] [RULE-14-AC]
実測:passed · 0.0002118119999749979秒
passed · tests/app/apis/resources/create_resource/test_functions.py::test_description_limit
Given 1,001文字の説明 When 入力解析 Then 拒否し1,000文字は受け付ける。 [RULE-14-AC]
実測:passed · 0.00022417100001348444秒
passed · tests/app/apis/resources/create_resource/test_functions.py::test_only_admin_manages_resources
Given 一般利用者と管理者 When 資源管理権限を判定 Then 管理者だけ許可する。 [SLOT-01-AC] [COM-04-AC]
実測:passed · 0.000604041999963556秒
passed · tests/app/apis/resources/create_resource/test_functions.py::test_save_resource_and_builders
Given 登録要求 When 資源を保存し応答を組み立てる Then 有効な初期版を返し保存失敗と権限不足を区別する。 [SLOT-01-AC]
実測:passed · 0.0015969769999628625秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_user_cannot_create_resource
Given 一般利用者 When 管理API Then 403。 [SLOT-01-AC] [COM-04-AC]
実測:passed · 0.00572873700002674秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_admin_creates_active_resource
Given 管理者 When 前後空白つきの資源名で登録 Then 201で空白を除き有効な初期版を返す。 [SLOT-01-AC] [RULE-14-AC]
実測:passed · 0.014746959999911269秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_create_resource_router_returns_sample_shaped_response_with_db
Given 管理者 When 標本requestで資源登録 Then 標本と同じ形の応答を返し資源を保存する。 [SLOT-01-AC]
実測:passed · 0.02611088599996947秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_create_resource_sample_request_emits_router_error_log_to_stdio
Given 標本requestと保存中の業務例外 When 資源登録 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.09499834200005353秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_tc001_create_resource_router_matches_unit_test_gen
Given 一般利用者 When 資源登録 Then 403で運用ログを出す。 [SLOT-01-AC] [COM-04-AC]
実測:passed · 0.006084863000069163秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_tc002_create_resource_router_matches_unit_test_gen
Given 管理者 When 資源登録 Then 201で有効な資源を返す。 [SLOT-01-AC]
実測:passed · 0.014583499000082156秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_tc003_create_resource_router_matches_unit_test_gen
Given 資源の保存で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.00547635399993851秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_tc004_create_resource_router_matches_unit_test_gen
Given 資源の保存で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.005950955000002978秒
passed · tests/app/apis/resources/create_resource/test_router.py::test_tc005_create_resource_router_matches_unit_test_gen
Given 資源の保存でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.005244762999950581秒
passed · tests/app/apis/resources/get_resource_schedule/test_functions.py::test_schedule_hides_other_details
Given aliceとbobの予約 When 予約表を組み立てる Then 本人と管理者だけに詳細を返し日本時間の日付で問い合わせる。 [SLOT-02-AC] [RULE-09-AC]
実測:passed · 0.0008135410000704724秒
passed · tests/app/apis/resources/get_resource_schedule/test_functions.py::test_router_error_response
Given 存在しない資源 When Router例外を変換 Then 404と理由コードを返す。 [COM-03-AC]
実測:passed · 0.0010333250000940097秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_schedule_hides_other_details
Given Aの予約 When A・B・管理者が予約表を取得 Then Bには時間帯と予約済みだけを返す。 [SLOT-02-AC] [RULE-09-AC]
実測:passed · 0.061823967999998786秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_missing_resource_returns_404
Given 存在しない資源 When 予約表取得 Then 404で区別する。 [COM-03-AC]
実測:passed · 0.014245118999951956秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_get_resource_schedule_router_returns_sample_shaped_response_with_db
Given aliceとbobの予約 When aliceが標本queryで予約表取得 Then 標本と同じ形で自分の詳細だけを返す。 [SLOT-02-AC] [RULE-09-AC]
実測:passed · 0.08626437699990674秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_get_resource_schedule_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 予約表取得 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.09389432199998282秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_tc001_get_resource_schedule_router_matches_unit_test_gen
Given 予約のない資源 When 予約表取得 Then 200で空の予約表を返す。 [SLOT-02-AC]
実測:passed · 0.028404202000047007秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_tc002_get_resource_schedule_router_matches_unit_test_gen
Given 予約表の資源取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.0054192410000268865秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_tc003_get_resource_schedule_router_matches_unit_test_gen
Given 予約表の資源取得で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.005194428999971024秒
passed · tests/app/apis/resources/get_resource_schedule/test_router.py::test_tc004_get_resource_schedule_router_matches_unit_test_gen
Given 予約表の資源取得でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.005187619000025734秒
passed · tests/app/apis/resources/list_resources/test_functions.py::test_resources_are_paged_by_name_and_id
Given 同名を含む3件の資源と上限2件 When 一覧を取得 Then 名前とIDの継続tokenで次ページを問い合わせる。 [SLOT-01-AC] [RULE-14-AC]
実測:passed · 0.0017652660000067044秒
passed · tests/app/apis/resources/list_resources/test_functions.py::test_router_error_response
Given 不正な継続token When Router例外を変換 Then 422と理由コードを返す。 [COM-03-AC]
実測:passed · 0.0010796129998880133秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_resource_paging_order
Given 同名の資源 When ページ単位で取得 Then 名前とIDの固定順で欠落・重複がない。 [SLOT-01-AC] [RULE-14-AC]
実測:passed · 0.31499011599998994秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_list_resources_router_returns_sample_shaped_response_with_db
Given 登録済みの資源 When 標本queryでページを順に取得 Then 対象資源を標本と同じ形で返す。 [SLOT-01-AC]
実測:passed · 0.1921675690000484秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_list_resources_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 資源一覧取得 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.09530148900000768秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_tc001_list_resources_router_matches_unit_test_gen
Given 登録済みの資源 When 一覧取得 Then 200で資源を返す。 [SLOT-01-AC]
実測:passed · 0.029196962000014537秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_tc002_list_resources_router_matches_unit_test_gen
Given 資源一覧の取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.0055913639999971565秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_tc003_list_resources_router_matches_unit_test_gen
Given 資源一覧の取得で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.006926324999994904秒
passed · tests/app/apis/resources/list_resources/test_router.py::test_tc004_list_resources_router_matches_unit_test_gen
Given 資源一覧の取得でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.00681809599996086秒
passed · tests/app/apis/resources/update_resource/test_functions.py::test_permission_lock_version_and_future
Given 将来予約のある資源 When 権限・制御版・公開版・将来予約を判定 Then 無効化時だけ将来予約を問い合わせる。 [SLOT-AC05] [SLOT-AC11] [RULE-08-AC]
実測:passed · 0.0007437980000304378秒
passed · tests/app/apis/resources/update_resource/test_functions.py::test_update_resource_and_builders
Given 編集要求 When 資源を更新し応答を組み立てる Then 公開版を進め拒否応答を区別する。 [SLOT-01-AC] [SLOT-AC11]
実測:passed · 0.003125072999978329秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_versions_and_inactive
Given 古い資源版と無効資源 When 更新と作成 Then 409で先行更新維持。 [SLOT-AC05] [SLOT-AC11]
実測:passed · 0.04733001099998546秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_future_prevents_disable
Given 将来の確定予約 When 無効化 Then 409。 [SLOT-AC05] [RULE-08-AC]
実測:passed · 0.03338871999994808秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_create_vs_disable
Given 有効資源 When 予約作成と無効化を競合 Then 両方成功しない。 [SLOT-AC10] [RULE-08-AC]
実測:passed · 0.04217252799992366秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_disable_after_start_keeps_record
Given 開始済みの確定予約 When 資源を無効化 Then 無効化でき既存記録を保持し新規予約は拒否する。 [RULE-07-AC]
実測:passed · 0.07542858099998284秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_missing_resource_returns_404
Given 存在しない資源 When 編集 Then 404で区別する。 [COM-03-AC]
実測:passed · 0.014107457000022805秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_update_resource_router_returns_sample_shaped_response_with_db
Given 版1の資源 When 標本requestで編集 Then 標本と同じ形で版2の資源を返し保存する。 [SLOT-01-AC] [SLOT-AC11]
実測:passed · 0.03969226499998513秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_update_resource_sample_request_emits_router_error_log_to_stdio
Given 標本requestと処理中の業務例外 When 資源編集 Then Router例外の運用ログをcatalogどおり出す。 [COM-07-AC]
実測:passed · 0.09420203599995602秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc001_update_resource_router_matches_unit_test_gen
Given 一般利用者 When 資源編集 Then 403で運用ログを出す。 [SLOT-01-AC] [COM-04-AC]
実測:passed · 0.020198398000047746秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc002_update_resource_router_matches_unit_test_gen
Given 版1の資源 When 版2を指定して編集 Then 409で運用ログを出す。 [SLOT-AC11]
実測:passed · 0.03814896899996256秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc003_update_resource_router_matches_unit_test_gen
Given 将来予約のある資源 When 無効化 Then 409で運用ログを出す。 [SLOT-AC05] [RULE-08-AC]
実測:passed · 0.05528339199997845秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc004_update_resource_router_matches_unit_test_gen
Given 将来予約のない資源 When 無効化 Then 200で無効な資源を返す。 [SLOT-01-AC]
実測:passed · 0.03973424799994518秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc005_update_resource_router_matches_unit_test_gen
Given 資源編集の制御版更新で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。
実測:passed · 0.006740120000017669秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc006_update_resource_router_matches_unit_test_gen
Given 資源編集の制御版更新で外部API例外 When API呼出し Then Routerで502へ変換し運用ログを出す。
実測:passed · 0.00681079400010276秒
passed · tests/app/apis/resources/update_resource/test_router.py::test_tc007_update_resource_router_matches_unit_test_gen
Given 資源編集の制御版更新でHTTP例外 When API呼出し Then Routerで400へ変換し運用ログを出す。
実測:passed · 0.0056484689999933835秒
passed · tests/app/apis/test_deps.py::test_bad_claims[override0]
Given 不正claim When 業務API呼出し Then 401でDB未接続。 [SLOT-AC14]
実測:passed · 0.003982658999916566秒
passed · tests/app/apis/test_deps.py::test_bad_claims[override1]
Given 不正claim When 業務API呼出し Then 401でDB未接続。 [SLOT-AC14]
実測:passed · 0.0036948649999430927秒
passed · tests/app/apis/test_deps.py::test_bad_claims[override2]
Given 不正claim When 業務API呼出し Then 401でDB未接続。 [SLOT-AC14]
実測:passed · 0.003658260999941376秒
passed · tests/app/apis/test_deps.py::test_bad_claims[override3]
Given 不正claim When 業務API呼出し Then 401でDB未接続。 [SLOT-AC14]
実測:passed · 0.0036467030000721934秒
passed · tests/app/apis/test_deps.py::test_bad_claims[override4]
Given 不正claim When 業務API呼出し Then 401でDB未接続。 [SLOT-AC14]
実測:passed · 0.00542318600003秒
passed · tests/app/apis/test_deps.py::test_bad_claims[override5]
Given 不正claim When 業務API呼出し Then 401でDB未接続。 [SLOT-AC14]
実測:passed · 0.0037589190000062445秒
passed · tests/app/apis/test_deps.py::test_bad_signature
Given 別の秘密鍵による改ざん When 検証 Then 401。 [SLOT-AC14]
実測:passed · 0.15036343399992802秒
passed · tests/app/apis/test_deps.py::test_anonymous_and_health
Given 未認証 When 業務APIとhealth Then 業務401・healthは秘密なし。 [COM-04-AC] [COM-03-AC]
実測:passed · 0.003937222999979895秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0003185799999982919秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.00024199699998916913秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.00026479099994958233秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.0003208940000831717秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.0003073940000604125秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.0003199120000090261秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC005]
実測:passed · 0.00027808100003312575秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC006]
実測:passed · 0.0003122509999684553秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC007]
実測:passed · 0.00023796200002834667秒
passed · tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented[TC008]
実測:passed · 0.00023173199997472693秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.00026627299996562215秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.00035849900007178803秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.00024910799993449473秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.0002501000000165732秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.0002702589999898919秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.0002544760000091628秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC005]
実測:passed · 0.00025081000001137秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC006]
実測:passed · 0.00026360899994415377秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC007]
実測:passed · 0.00024637299998175877秒
passed · tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented[TC008]
実測:passed · 0.0002800540000862384秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0002729829999452704秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.00024552200000016455秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.0002246420000346916秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.00023655999996208266秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.00022274899993135477秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.000223599999912949秒
passed · tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented[TC005]
実測:passed · 0.00024460100007672736秒
passed · tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0002514909999717929秒
passed · tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.00023486600002797786秒
passed · tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.00024282900005800911秒
passed · tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.00022072600006595167秒
passed · tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.00022626399993441737秒
passed · tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.000246875000016189秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0002814059999991514秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.0002277360000562112秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.00023146199998791417秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.000222127999904842秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.000223590000018703秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.00020595399996636843秒
passed · tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented[TC005]
実測:passed · 0.00023984399990695238秒
passed · tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0002490169999873615秒
passed · tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.0002268550000508185秒
passed · tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.0002454620000662544秒
passed · tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.00021671000001788343秒
passed · tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.00021896299995205482秒
passed · tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.00021706000006815884秒
passed · tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0002490580000085174秒
passed · tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.00025340399997730856秒
passed · tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.00021699999990687502秒
passed · tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.00021826199997576623秒
passed · tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.0002191639999864492秒
passed · tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.00023386600003050262秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[R001]
実測:passed · 0.0002606240000204707秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[R002]
実測:passed · 0.0002303899999560599秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC001]
実測:passed · 0.00022624400003223855秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC002]
実測:passed · 0.00024248800002624193秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC003]
実測:passed · 0.0002467240000214588秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC004]
実測:passed · 0.00024727499999244174秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC005]
実測:passed · 0.00023078100002749125秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC006]
実測:passed · 0.00022825700000339566秒
passed · tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented[TC007]
実測:passed · 0.00022785600003771833秒
passed · tests/integrations/test_identity_provider.py::test_cognito_access_and_id
Given Cognito claim When accessとIDを検証 Then accessだけ受理。 [SLOT-AC14]
実測:passed · 0.0010577120000334617秒
passed · tests/integrations/test_identity_provider.py::test_jwks_client_is_bounded
Given 設定済みJWKS URL When 鍵取得clientを作る Then 短いtimeoutとcache寿命を持つ。 [SLOT-AC14]
実測:passed · 0.0015229680000174994秒
passed · tests/integrations/test_identity_provider.py::test_fake_verifier_rejects_unknown_token[asyncio]
Given 登録済みtokenだけを持つfake When 未登録tokenを検証 Then 拒否する。 [SLOT-AC14]
実測:passed · 0.000975801000095089秒
passed · tests/test_api_error_responses.py::test_api_error_responses_are_selected_per_operation
Given 公開OpenAPI When 操作ごとのresponseを列挙 Then 業務上発生する状態だけを共通error schemaで宣言する。 [COM-03-AC]
実測:passed · 0.08511987899998985秒
passed · tests/test_api_error_responses.py::test_public_contract_has_no_clock_or_direct_edit
Given 公開OpenAPI When 入力と操作を列挙 Then 現在時刻の上書き入力と予約日時の直接編集がない。 [RULE-04-AC] [RULE-05-AC]
実測:passed · 0.08207627600006617秒
passed · tests/test_db_session.py::test_transaction_retries_conflicts[asyncio]
Given commit時の直列化競合と一意性競合 When 処理順を実行 Then 新snapshotで再実行して成功する。 [SLOT-AC03] [SLOT-AC07]
実測:passed · 0.0007614950000061071秒
passed · tests/test_db_session.py::test_transaction_limits[asyncio]
Given 解消しない競合と成否不明の切断 When 処理順を実行 Then 上限後503、再送安全でない処理は再試行しない。 [SLOT-AC12]
実測:passed · 0.0015027489999965837秒
passed · tests/test_db_session.py::test_business_errors_are_not_retried[asyncio]
Given 業務上の重複応答 When 処理順を実行 Then 再試行せずそのまま409を返す。 [SLOT-AC02]
実測:passed · 0.000540178000051128秒
passed · tests/test_db_session.py::test_repeatable_read[asyncio]
Given ローカル接続 When 分離レベル取得 Then repeatable read。 [COM-02-AC] [TECH-DB-AC]
実測:passed · 0.013278091999950448秒
passed · tests/test_db_session.py::test_dsql_connection_uses_official_connector
Given DSQL設定 When engineを作る Then 公式connectorへIAM用の接続先・利用者とTLS検証を渡す。 [TECH-DB-AC]
実測:passed · 0.001229565000016919秒
passed · tests/test_lambda_handler.py::test_gateway_event
Given HTTP APIイベント When Mangum変換 Then health200・未認証業務401。 [TECH-LAMBDA-AC]
実測:passed · 0.005442474000005859秒
passed · tests/test_lambda_handler.py::test_distribution_zip
Given 配布ZIP When 隔離pathからimport Then SQLと依存を含むhandlerを読める。 [TECH-LAMBDA-AC]
実測:passed · 3.7945658660000845秒
passed · tests/test_operational_logging.py::test_request_log_redacts
Given 目的とtokenを含む作成要求 When API呼出し Then 要求ID・operation・status・所要時間だけを記録する。 [COM-07-AC]
実測:passed · 0.019330498000044827秒
passed · tests/infra/test_stack.py::test_serverless_and_authorization
Given 配布ZIP When synth Then 公開bucketと常設サーバーがなく認証と削除保護がある。 [TECH-INFRA-AC]
実測:passed · 2.2933382780000784秒
passed · tests/infra/test_stack.py::test_routes_are_protected
Given HTTP API When routeを列挙 Then healthだけ認証なしで、他はJWTとaccess scopeが必須。 [TECH-INFRA-AC]
実測:passed · 0.16004256300004727秒
passed · tests/infra/test_stack.py::test_origin_consistency
Given 環境設定 When synth Then CORS・Cognito callback/logout・API許可元が同じ配信元を指す。 [TECH-INFRA-AC]
実測:passed · 0.11496043099998587秒
passed · tests/infra/test_stack.py::test_least_privilege_and_private_bucket
Given 合成IAMとbucket policy When 権限を列挙 Then DSQLは対象clusterのDbConnectだけでS3はCloudFrontだけ読める。 [TECH-INFRA-AC]
実測:passed · 0.1113650920000282秒
passed · tests/infra/test_stack.py::test_environment_settings[dev-30]
Given 環境context When synth Then ログ保持・throttle・環境名が設定どおりで削除保護は共通。 [TECH-INFRA-AC]
実測:passed · 0.1115948119999075秒
passed · tests/infra/test_stack.py::test_environment_settings[prod-365]
Given 環境context When synth Then ログ保持・throttle・環境名が設定どおりで削除保護は共通。 [TECH-INFRA-AC]
実測:passed · 0.10777348100009476秒
passed · tests/infra/test_stack.py::test_unknown_environment_rejected[staging]
Given 未定義や不正な環境名 When 設定を読む Then 推測で合成せず拒否する。 [TECH-INFRA-AC]
実測:passed · 0.00047650299995893874秒
passed · tests/infra/test_stack.py::test_unknown_environment_rejected[../dev]
Given 未定義や不正な環境名 When 設定を読む Then 推測で合成せず拒否する。 [TECH-INFRA-AC]
実測:passed · 0.0002040819999820087秒
passed · tests/infra/test_stack.py::test_unknown_environment_rejected[Dev]
Given 未定義や不正な環境名 When 設定を読む Then 推測で合成せず拒否する。 [TECH-INFRA-AC]
実測:passed · 0.00017497900000762456秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] JSTの10時をUTCの1時として送る
実測:passed · 0.00188520299999999秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 日本時間の日付境界を表示する
実測:passed · 0.015824951秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 不正な入力を拒否する
実測:passed · 0.0011071239999999988秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答0で次の操作を案内する
実測:passed · 0.00029210199999999987秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答401で次の操作を案内する
実測:passed · 0.00008445499999999129秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答403で次の操作を案内する
実測:passed · 0.000109470999999985秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答404で次の操作を案内する
実測:passed · 0.00008111999999999853秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答409で次の操作を案内する
実測:passed · 0.0000751510000000053秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答422で次の操作を案内する
実測:passed · 0.00010712799999998879秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 応答503で次の操作を案内する
実測:passed · 0.00008017900000004374秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] slot_takenの理由を示す
実測:passed · 0.0008130699999999819秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] stale_versionの理由を示す
実測:passed · 0.00009927700000002914秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] future_reservations_existの理由を示す
実測:passed · 0.0000610709999999699秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] already_startedの理由を示す
実測:passed · 0.00008853100000004587秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] already_cancelledの理由を示す
実測:passed · 0.0000554819999999836秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] resource_inactiveの理由を示す
実測:passed · 0.0000474100000000135秒
passed · vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] idempotency_input_mismatchの理由を示す
実測:passed · 0.00008035899999998719秒
passed · vitest::Cognitoのログアウト先 [COM-01-AC] logout URLがない設定では推測で遷移しない
実測:passed · 0.0003036679999999592秒
passed · vitest::Cognitoのログアウト先 [COM-01-AC] client_idと戻り先を付けてHosted UIへ送る
実測:passed · 0.00022108600000001388秒
passed · playwright::desktop::ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
実測:passed · 3.811秒
passed · playwright::desktop::一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
実測:passed · 1.427秒
passed · playwright::mobile::ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
実測:passed · 1.965秒
passed · playwright::mobile::一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
実測:passed · 1.085秒
passed · portal::desktop::CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
実測:passed · 0.685秒
passed · portal::desktop::階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
実測:passed · 3.575秒
passed · portal::mobile::CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
実測:passed · 0.61秒
passed · portal::mobile::階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
実測:passed · 3.088秒
性能
measured:ローカルのCompose環境での参考値。AWSのSLO達成を意味しない。
- データ量
- 資源100・利用者 200・予約 100000件
- 負荷
- 20並列 · seed 20260925 · performance-only
- 資源制約
- {"api_cpu":1,"db_cpu":1,"api_memory_gib":2,"db_memory_gib":2}
- CPU・メモリ実測
- not-run: cgroupを跨ぐCPU・memory実測は未接続
- 整合性違反
- 0件
測定 1
| API | 件数 | throughput | p50 | p95 | p99 | 成功 | 想定4xx | 想定外 | p95(目標比) |
|---|---|---|---|---|---|---|---|---|---|
| schedule | 8548 | 28.5/s | 244.29ms | 409.1ms | 474.83ms | 8548 | 0 | 0 | 409.1/500ms |
| mine | 8557 | 28.5/s | 226.48ms | 410.6ms | 479.93ms | 8557 | 0 | 0 | 410.6/500ms |
| create | 2172 | 7.2/s | 399.26ms | 606.49ms | 692.72ms | 2172 | 0 | 0 | 606.49/800ms |
| cancel | 2172 | 7.2/s | 307.64ms | 533.86ms | 606.93ms | 2172 | 0 | 0 | 533.86/800ms |
測定 2
| API | 件数 | throughput | p50 | p95 | p99 | 成功 | 想定4xx | 想定外 | p95(目標比) |
|---|---|---|---|---|---|---|---|---|---|
| schedule | 8552 | 28.5/s | 249.44ms | 403.72ms | 464.83ms | 8552 | 0 | 0 | 403.72/500ms |
| mine | 8568 | 28.6/s | 223.76ms | 403.8ms | 468.81ms | 8568 | 0 | 0 | 403.8/500ms |
| create | 2178 | 7.3/s | 401.47ms | 593.36ms | 680.84ms | 2178 | 0 | 0 | 593.36/800ms |
| cancel | 2178 | 7.3/s | 307.24ms | 525.33ms | 599.19ms | 2178 | 0 | 0 | 525.33/800ms |
測定 3
| API | 件数 | throughput | p50 | p95 | p99 | 成功 | 想定4xx | 想定外 | p95(目標比) |
|---|---|---|---|---|---|---|---|---|---|
| schedule | 8454 | 28.2/s | 261.05ms | 401.03ms | 459.73ms | 8454 | 0 | 0 | 401.03/500ms |
| mine | 8457 | 28.2/s | 225.04ms | 401.54ms | 460.29ms | 8457 | 0 | 0 | 401.54/500ms |
| create | 2150 | 7.2/s | 413.83ms | 582.07ms | 665.89ms | 2150 | 0 | 0 | 582.07/800ms |
| cancel | 2150 | 7.2/s | 310.5ms | 509.5ms | 572.34ms | 2150 | 0 | 0 | 509.5/800ms |
AWS実環境
not-run:AWS account・role未指定。synthと実AWS検証を区別する。