SlotKeeper 設計と品質

QUALITY / EVIDENCE

設計をたどる。品質を確かめる。

対象revision:a0a8215b641e3c33d8e80d53e52fe0e136d7b062

run:36379917632-1 · full · 2026-09-28T05:30:24.561667+00:00

539 passed
0 failed
0 skipped
0 not-run
0 flaky
0 missing

構成適合・設計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秒

Given:ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
When:ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
Then:ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
passed · playwright::desktop::一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]

実測:passed · 1.427秒

Given:一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
When:一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
Then:一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
passed · playwright::mobile::ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]

実測:passed · 1.965秒

Given:ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
When:ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
Then:ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
ログインから予約・履歴・取消・ログアウトまで [COM-01-AC] [SLOT-AC01] [SLOT-02-AC] [SLOT-07-AC] [SLOT-AC04]
passed · playwright::mobile::一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]

実測:passed · 1.085秒

Given:一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
When:一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
Then:一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC]
passed · portal::desktop::CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]

実測:passed · 0.685秒

Given:CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
When:CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
Then:CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
passed · portal::desktop::階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]

実測:passed · 3.575秒

Given:階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
When:階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
Then:階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
passed · portal::mobile::CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]

実測:passed · 0.61秒

Given:CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
When:CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
Then:CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC]
passed · portal::mobile::階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]

実測:passed · 3.088秒

Given:階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
When:階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
Then:階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]
階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC]

性能

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検証を区別する。