SlotKeeper 設計と品質

テスト設計

テストID 説明 受入条件
tests/app/apis/reservations/cancel_reservation/test_functions.py::test_get_reservation_and_predicates Given aliceの確定予約 When 取得と取消可否を判定 Then 本人と管理者だけ許可し版・状態・開始を判定する。 SLOT-AC04, SLOT-AC11, SLOT-AC13
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
tests/app/apis/reservations/cancel_reservation/test_functions.py::test_rejection_builders Given 権限なし・古い版・取消済み・開始済み When 拒否応答を組み立てる Then 403と409の理由コードを返す。 SLOT-AC04, SLOT-AC11, SLOT-AC13
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
tests/app/apis/reservations/cancel_reservation/test_router.py::test_cancel_boundaries Given 確定予約 When 古い版と開始時刻ちょうどの取消 Then 409、履歴1件。 SLOT-AC11, SLOT-AC13, RULE-13-AC
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
tests/app/apis/reservations/cancel_reservation/test_router.py::test_cancel_and_rebook_concurrent Given 確定予約 When 取消と同じ枠の再予約を同時実行 Then 重なる確定予約は最大1件。 RULE-06-AC
tests/app/apis/reservations/cancel_reservation/test_router.py::test_missing_reservation_returns_404 Given 存在しない予約 When 取消 Then 404で区別する。 COM-03-AC
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
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
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
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
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
tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc004_cancel_reservation_router_matches_unit_test_gen Given 開始時刻を迎えた予約 When 取消 Then 409で運用ログを出す。 SLOT-AC13
tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc005_cancel_reservation_router_matches_unit_test_gen Given 開始前の確定予約 When 本人が取消 Then 200で取消済みを返す。 SLOT-AC04
tests/app/apis/reservations/cancel_reservation/test_router.py::test_tc006_cancel_reservation_router_matches_unit_test_gen Given 予約取消の対象取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
tests/app/apis/reservations/create_reservation/test_functions.py::test_reject_invalid_time Given 範囲外または刻み不正 When 時刻検証 Then 入力不正。 SLOT-AC06, RULE-02-AC, RULE-03-AC
tests/app/apis/reservations/create_reservation/test_functions.py::test_boundaries Given 15分・4時間・30日境界 When 時刻検証 Then 受け付ける。 SLOT-AC06, RULE-02-AC, RULE-03-AC
tests/app/apis/reservations/create_reservation/test_functions.py::test_normalized_input Given 同じ瞬間のoffset差と前後空白 When 正規化 Then 同一要求。 SLOT-AC09
tests/app/apis/reservations/create_reservation/test_functions.py::test_expired_record_is_not_replayed Given 期限切れの成功記録 When 再送判定 Then 元応答を返さず新規要求として扱う。 SLOT-AC15, RULE-10-AC
tests/app/apis/reservations/create_reservation/test_functions.py::test_request_rejects_unknown_fields Given 公開契約にない項目 When 予約作成の入力解析 Then 拒否する。 COM-03-AC, RULE-04-AC
tests/app/apis/reservations/create_reservation/test_functions.py::test_get_idempotency_record_marks_expiry Given 期限切れと未登録の要求キー When 成功記録を取得 Then 期限切れを区別し未登録は空の参照を返す。 SLOT-AC15
tests/app/apis/reservations/create_reservation/test_functions.py::test_update_resource_control_version_locks_or_404 Given 存在する資源と存在しない資源 When 内部制御版を進める Then 資源参照か404を返す。 SLOT-AC10
tests/app/apis/reservations/create_reservation/test_functions.py::test_has_overlapping_reservation_uses_half_open_interval Given 重なる確定予約の件数 When 重複を判定 Then 開始と終了を半開区間の条件として渡す。 RULE-01-AC
tests/app/apis/reservations/create_reservation/test_functions.py::test_save_reservation_owner_event_and_record Given 検証済み要求 When 利用者・予約・履歴・成功記録を保存 Then 同じ予約と要求hashで記録する。 RULE-12-AC
tests/app/apis/reservations/create_reservation/test_functions.py::test_rejection_builders_return_conflicts Given 再送誤用・無効資源・重複 When 拒否応答を組み立てる Then それぞれ409と理由コードを返す。 SLOT-AC02, SLOT-AC05, SLOT-AC09
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
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
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
tests/app/apis/reservations/create_reservation/test_router.py::test_replay_after_start Given 作成から24時間以内に予約開始 When 再送 Then 時刻違反にせず元応答。 SLOT-AC15, RULE-11-AC
tests/app/apis/reservations/create_reservation/test_router.py::test_twenty_concurrent Given 空き枠と20利用者 When 同時送信 Then 1成功19競合で重複なし。 SLOT-AC03
tests/app/apis/reservations/create_reservation/test_router.py::test_same_key_concurrent Given 同一キー同一入力 When 20同時再送 Then 同じIDで予約と作成履歴各1件。 SLOT-AC07
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
tests/app/apis/reservations/create_reservation/test_router.py::test_invalid_token_leaves_database Given 期限切れ・改ざんroleのtoken When 予約作成と資源登録 Then 401/403でDBは変化しない。 SLOT-AC14
tests/app/apis/reservations/create_reservation/test_router.py::test_create_status_codes Given 不正入力・対象なし・キーなし When 予約作成 Then 422・404・422を区別し入力値を反射しない。 COM-03-AC
tests/app/apis/reservations/create_reservation/test_router.py::test_rule_violation_is_422 Given 15分刻みでない時刻 When 予約作成 Then 422で予約を作らない。 SLOT-AC06, RULE-02-AC
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
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
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
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
tests/app/apis/reservations/create_reservation/test_router.py::test_tc003_create_reservation_router_matches_unit_test_gen Given 無効化した資源 When 予約作成 Then 409で運用ログを出す。 SLOT-AC05
tests/app/apis/reservations/create_reservation/test_router.py::test_tc004_create_reservation_router_matches_unit_test_gen Given 同じ時間帯の確定予約 When 予約作成 Then 409で運用ログを出す。 SLOT-AC02
tests/app/apis/reservations/create_reservation/test_router.py::test_tc005_create_reservation_router_matches_unit_test_gen Given 空き枠 When 予約作成 Then 201で確定予約を返す。 SLOT-AC01
tests/app/apis/reservations/create_reservation/test_router.py::test_tc006_create_reservation_router_matches_unit_test_gen Given 予約作成の再送照合で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
tests/app/apis/reservations/get_reservation/test_functions.py::test_get_reservation_with_events Given 予約と作成・取消履歴 When 詳細を取得 Then 本人と管理者だけが履歴つき詳細を参照できる。 SLOT-07-AC, RULE-09-AC
tests/app/apis/reservations/get_reservation/test_functions.py::test_rejection_and_router_error_builders Given 他人の予約とRouter例外 When 応答を組み立てる Then 403と例外のstatusを返す。 COM-04-AC
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
tests/app/apis/reservations/get_reservation/test_router.py::test_missing_reservation_returns_404 Given 存在しない予約 When 詳細取得 Then 404で区別する。 COM-03-AC
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
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
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
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
tests/app/apis/reservations/get_reservation/test_router.py::test_tc003_get_reservation_router_matches_unit_test_gen Given 予約詳細の取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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
tests/app/apis/reservations/list_reservations/test_functions.py::test_router_error_response Given 不正な継続token When Router例外を変換 Then 422と理由コードを返す。 COM-03-AC
tests/app/apis/reservations/list_reservations/test_router.py::test_list_filters_only_own Given 自分と他人の2日分の予約と取消 When 日付・状態で絞込み Then 自分の対象だけ固定順で返す。 SLOT-AC08, RULE-07-AC
tests/app/apis/reservations/list_reservations/test_router.py::test_reservation_paging_order Given 同じ日の3件の予約 When 継続tokenでページ単位に取得 Then 開始日時とIDの固定順で欠落・重複がない。 RULE-14-AC
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
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
tests/app/apis/reservations/list_reservations/test_router.py::test_tc001_list_reservations_router_matches_unit_test_gen Given 予約のない利用者 When 一覧取得 Then 200で空の一覧を返す。 SLOT-AC08
tests/app/apis/reservations/list_reservations/test_router.py::test_tc002_list_reservations_router_matches_unit_test_gen Given 予約一覧の取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
tests/app/apis/resources/create_resource/test_functions.py::test_resource_input Given 空白か長すぎる資源名 When 入力解析 Then 拒否。 COM-03-AC, RULE-14-AC
tests/app/apis/resources/create_resource/test_functions.py::test_description_limit Given 1,001文字の説明 When 入力解析 Then 拒否し1,000文字は受け付ける。 RULE-14-AC
tests/app/apis/resources/create_resource/test_functions.py::test_only_admin_manages_resources Given 一般利用者と管理者 When 資源管理権限を判定 Then 管理者だけ許可する。 SLOT-01-AC, COM-04-AC
tests/app/apis/resources/create_resource/test_functions.py::test_save_resource_and_builders Given 登録要求 When 資源を保存し応答を組み立てる Then 有効な初期版を返し保存失敗と権限不足を区別する。 SLOT-01-AC
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
tests/app/apis/resources/create_resource/test_router.py::test_admin_creates_active_resource Given 管理者 When 前後空白つきの資源名で登録 Then 201で空白を除き有効な初期版を返す。 SLOT-01-AC, RULE-14-AC
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
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
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
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
tests/app/apis/resources/create_resource/test_router.py::test_tc003_create_resource_router_matches_unit_test_gen Given 資源の保存で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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
tests/app/apis/resources/get_resource_schedule/test_functions.py::test_router_error_response Given 存在しない資源 When Router例外を変換 Then 404と理由コードを返す。 COM-03-AC
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
tests/app/apis/resources/get_resource_schedule/test_router.py::test_missing_resource_returns_404 Given 存在しない資源 When 予約表取得 Then 404で区別する。 COM-03-AC
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
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
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
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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
tests/app/apis/resources/list_resources/test_functions.py::test_router_error_response Given 不正な継続token When Router例外を変換 Then 422と理由コードを返す。 COM-03-AC
tests/app/apis/resources/list_resources/test_router.py::test_resource_paging_order Given 同名の資源 When ページ単位で取得 Then 名前とIDの固定順で欠落・重複がない。 SLOT-01-AC, RULE-14-AC
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
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
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
tests/app/apis/resources/list_resources/test_router.py::test_tc002_list_resources_router_matches_unit_test_gen Given 資源一覧の取得で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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
tests/app/apis/resources/update_resource/test_functions.py::test_update_resource_and_builders Given 編集要求 When 資源を更新し応答を組み立てる Then 公開版を進め拒否応答を区別する。 SLOT-01-AC, SLOT-AC11
tests/app/apis/resources/update_resource/test_router.py::test_versions_and_inactive Given 古い資源版と無効資源 When 更新と作成 Then 409で先行更新維持。 SLOT-AC05, SLOT-AC11
tests/app/apis/resources/update_resource/test_router.py::test_future_prevents_disable Given 将来の確定予約 When 無効化 Then 409。 SLOT-AC05, RULE-08-AC
tests/app/apis/resources/update_resource/test_router.py::test_create_vs_disable Given 有効資源 When 予約作成と無効化を競合 Then 両方成功しない。 SLOT-AC10, RULE-08-AC
tests/app/apis/resources/update_resource/test_router.py::test_disable_after_start_keeps_record Given 開始済みの確定予約 When 資源を無効化 Then 無効化でき既存記録を保持し新規予約は拒否する。 RULE-07-AC
tests/app/apis/resources/update_resource/test_router.py::test_missing_resource_returns_404 Given 存在しない資源 When 編集 Then 404で区別する。 COM-03-AC
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
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
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
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
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
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
tests/app/apis/resources/update_resource/test_router.py::test_tc005_update_resource_router_matches_unit_test_gen Given 資源編集の制御版更新で業務例外 When API呼出し Then Routerで500へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
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へ変換し運用ログを出す。 —
tests/app/apis/test_deps.py::test_bad_claims Given 不正claim When 業務API呼出し Then 401でDB未接続。 SLOT-AC14
tests/app/apis/test_deps.py::test_bad_signature Given 別の秘密鍵による改ざん When 検証 Then 401。 SLOT-AC14
tests/app/apis/test_deps.py::test_anonymous_and_health Given 未認証 When 業務APIとhealth Then 業務401・healthは秘密なし。 COM-04-AC, COM-03-AC
tests/generated/test_reservations_cancel_reservation.py::test_generated_unit_case_is_documented — —
tests/generated/test_reservations_create_reservation.py::test_generated_unit_case_is_documented — —
tests/generated/test_reservations_get_reservation.py::test_generated_unit_case_is_documented — —
tests/generated/test_reservations_list_reservations.py::test_generated_unit_case_is_documented — —
tests/generated/test_resources_create_resource.py::test_generated_unit_case_is_documented — —
tests/generated/test_resources_get_resource_schedule.py::test_generated_unit_case_is_documented — —
tests/generated/test_resources_list_resources.py::test_generated_unit_case_is_documented — —
tests/generated/test_resources_update_resource.py::test_generated_unit_case_is_documented — —
tests/infra/test_stack.py::test_serverless_and_authorization Given 配布ZIP When synth Then 公開bucketと常設サーバーがなく認証と削除保護がある。 TECH-INFRA-AC
tests/infra/test_stack.py::test_routes_are_protected Given HTTP API When routeを列挙 Then healthだけ認証なしで、他はJWTとaccess scopeが必須。 TECH-INFRA-AC
tests/infra/test_stack.py::test_origin_consistency Given 環境設定 When synth Then CORS・Cognito callback/logout・API許可元が同じ配信元を指す。 TECH-INFRA-AC
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
tests/infra/test_stack.py::test_environment_settings Given 環境context When synth Then ログ保持・throttle・環境名が設定どおりで削除保護は共通。 TECH-INFRA-AC
tests/infra/test_stack.py::test_unknown_environment_rejected Given 未定義や不正な環境名 When 設定を読む Then 推測で合成せず拒否する。 TECH-INFRA-AC
tests/integrations/test_identity_provider.py::test_cognito_access_and_id Given Cognito claim When accessとIDを検証 Then accessだけ受理。 SLOT-AC14
tests/integrations/test_identity_provider.py::test_jwks_client_is_bounded Given 設定済みJWKS URL When 鍵取得clientを作る Then 短いtimeoutとcache寿命を持つ。 SLOT-AC14
tests/integrations/test_identity_provider.py::test_fake_verifier_rejects_unknown_token Given 登録済みtokenだけを持つfake When 未登録tokenを検証 Then 拒否する。 SLOT-AC14
tests/test_api_error_responses.py::test_api_error_responses_are_selected_per_operation Given 公開OpenAPI When 操作ごとのresponseを列挙 Then 業務上発生する状態だけを共通error schemaで宣言する。 COM-03-AC
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
tests/test_db_session.py::test_transaction_retries_conflicts Given commit時の直列化競合と一意性競合 When 処理順を実行 Then 新snapshotで再実行して成功する。 SLOT-AC03, SLOT-AC07
tests/test_db_session.py::test_transaction_limits Given 解消しない競合と成否不明の切断 When 処理順を実行 Then 上限後503、再送安全でない処理は再試行しない。 SLOT-AC12
tests/test_db_session.py::test_business_errors_are_not_retried Given 業務上の重複応答 When 処理順を実行 Then 再試行せずそのまま409を返す。 SLOT-AC02
tests/test_db_session.py::test_dsql_connection_uses_official_connector Given DSQL設定 When engineを作る Then 公式connectorへIAM用の接続先・利用者とTLS検証を渡す。 TECH-DB-AC
tests/test_db_session.py::test_repeatable_read Given ローカル接続 When 分離レベル取得 Then repeatable read。 COM-02-AC, TECH-DB-AC
tests/test_lambda_handler.py::test_gateway_event Given HTTP APIイベント When Mangum変換 Then health200・未認証業務401。 TECH-LAMBDA-AC
tests/test_lambda_handler.py::test_distribution_zip Given 配布ZIP When 隔離pathからimport Then SQLと依存を含むhandlerを読める。 TECH-LAMBDA-AC
tests/test_operational_logging.py::test_request_log_redacts Given 目的とtokenを含む作成要求 When API呼出し Then 要求ID・operation・status・所要時間だけを記録する。 COM-07-AC
tests/tools/test_app_tool_cli.py::test_docs_main_delegates_generate_tools — —
tests/tools/test_app_tool_cli.py::test_python_module_args_adds_check_for_docs_generator — —
tests/tools/test_app_tool_cli.py::test_python_module_args_adds_check_for_codegen_generator — —
tests/tools/test_app_tool_docs.py::test_rendered_tool_docs_include_all_registered_tools — —
tests/tools/test_app_tool_docs.py::test_generate_tool_docs_check_mode_detects_stale_outputs — —
tests/tools/test_check_api_contracts.py::test_check_contracts_accepts_matching_contract — —
tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_operation_id_mismatch — —
tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_slug_mismatch — —
tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_missing_contract — —
tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_invalid_literal_field — —
tests/tools/test_check_api_contracts.py::test_check_contracts_rejects_unsupported_auth_mode — —
tests/tools/test_check_api_descriptions.py::test_has_japanese_text_and_literal_string — —
tests/tools/test_check_api_descriptions.py::test_is_router_decorator_rejects_non_route_shapes — —
tests/tools/test_check_api_descriptions.py::test_ast_helpers_accept_supported_shapes — —
tests/tools/test_check_api_descriptions.py::test_enum_member_comment_rejects_missing_comment — —
tests/tools/test_check_api_descriptions.py::test_check_router_file_accepts_japanese_summary_and_description — —
tests/tools/test_check_api_descriptions.py::test_check_router_file_reports_missing_and_non_japanese_values — —
tests/tools/test_check_api_descriptions.py::test_check_router_file_ignores_non_router_decorators — —
tests/tools/test_check_api_descriptions.py::test_check_schema_file_accepts_japanese_docstrings — —
tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_missing_and_non_japanese_docstrings — —
tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_placeholder_descriptions — —
tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_field_description_issues — —
tests/tools/test_check_api_descriptions.py::test_check_schema_file_accepts_enum_value_comments — —
tests/tools/test_check_api_descriptions.py::test_check_schema_file_reports_enum_value_comment_issues — —
tests/tools/test_check_api_descriptions.py::test_check_api_descriptions_collects_router_and_schema_files — —
tests/tools/test_check_api_descriptions.py::test_render_issues_and_arg_parser_defaults — —
tests/tools/test_check_api_descriptions.py::test_main_exits_nonzero_when_issue_exists — —
tests/tools/test_check_api_descriptions.py::test_main_can_ignore_issue_exit_code — —
tests/tools/test_check_api_exception_summaries.py::test_check_api_exception_summaries_reports_missing_api_summary — —
tests/tools/test_check_api_exception_summaries.py::test_check_api_exception_summaries_accepts_summarized_errors — —
tests/tools/test_check_api_function_exception_policy.py::test_reports_wrong_exception_policy — —
tests/tools/test_check_api_function_exception_policy.py::test_accepts_business_errors_and_runtime_dependency_guards — —
tests/tools/test_check_api_function_names.py::test_load_rule_names_requires_descriptions — —
tests/tools/test_check_api_function_names.py::test_check_api_function_file_accepts_action_and_condition_names — —
tests/tools/test_check_api_function_names.py::test_check_api_function_file_reports_unknown_words_and_missing_docstring — —
tests/tools/test_check_api_function_names.py::test_check_api_function_names_accepts_repository_definitions — —
tests/tools/test_check_api_function_names.py::test_render_issues_and_main — —
tests/tools/test_check_api_function_names.py::test_build_arg_parser_defaults — —
tests/tools/test_check_api_function_resource_usage.py::test_reports_non_validation_function_without_resource_usage — —
tests/tools/test_check_api_function_resource_usage.py::test_allows_validation_and_explicit_resource_free_functions — —
tests/tools/test_check_api_function_resource_usage.py::test_accepts_queries_and_integration_resource_usage — —
tests/tools/test_check_api_function_tests.py::test_find_function_coverage_issues_detects_missing_test_reference — —
tests/tools/test_check_api_function_tests.py::test_find_function_coverage_issues_accepts_parametrized_case_names — —
tests/tools/test_check_api_managed_literals.py::test_check_api_managed_literals_reports_disallowed_literals — —
tests/tools/test_check_api_managed_literals.py::test_check_api_managed_literals_accepts_repository_usage — —
tests/tools/test_check_api_managed_literals.py::test_render_issues_and_main — —
tests/tools/test_check_api_managed_literals.py::test_build_arg_parser_defaults — —
tests/tools/test_check_api_mermaid_sequences.py::test_mermaid_blocks_extracts_body_and_start_line — —
tests/tools/test_check_api_mermaid_sequences.py::test_validate_file_accepts_generated_sequence_shape — —
tests/tools/test_check_api_mermaid_sequences.py::test_validate_file_rejects_message_colons_and_split_sql — —
tests/tools/test_check_api_mermaid_sequences.py::test_main_reports_issues — —
tests/tools/test_check_api_router_ignored_returns.py::test_reports_ignored_meaningful_return_and_read_side_effect — —
tests/tools/test_check_api_router_ignored_returns.py::test_accepts_used_returns_and_named_side_effects — —
tests/tools/test_check_api_router_test_asserts.py::test_read_crud_csv_and_mutation_tables — —
tests/tools/test_check_api_router_test_asserts.py::test_check_api_router_test_asserts_reports_missing_sample_and_table — —
tests/tools/test_check_api_router_test_asserts.py::test_check_api_router_test_asserts_accepts_repository_layout — —
tests/tools/test_check_api_router_test_asserts.py::test_main_and_arg_parser — —
tests/tools/test_check_api_router_tests.py::test_expected_router_test_path_mirrors_api_root — —
tests/tools/test_check_api_router_tests.py::test_check_api_router_tests_reports_missing_test_router — —
tests/tools/test_check_api_router_tests.py::test_check_api_router_tests_accepts_matching_test_router — —
tests/tools/test_check_api_router_tests.py::test_check_api_router_tests_accepts_repository_layout — —
tests/tools/test_check_api_router_tests.py::test_main_and_arg_parser — —
tests/tools/test_check_api_router_unit_test_factors.py::test_parse_unit_test_cases_extracts_expected_outcomes — —
tests/tools/test_check_api_router_unit_test_factors.py::test_expected_function_name_uses_tc_prefix — —
tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_accepts_matching_cases — —
tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_reports_missing_and_mismatch — —
tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_rejects_helper_only_test — —
tests/tools/test_check_api_router_unit_test_factors.py::test_check_api_router_unit_test_factors_rejects_log_expectation_variables — —
tests/tools/test_check_api_router_unit_test_factors.py::test_arg_parser_defaults_and_main — —
tests/tools/test_check_api_sequence_success_responses.py::test_check_api_sequence_success_responses_reports_missing_2xx — —
tests/tools/test_check_api_sequence_success_responses.py::test_check_api_sequence_success_responses_accepts_2xx — —
tests/tools/test_check_api_sequence_success_responses.py::test_check_api_sequence_success_responses_reports_early_2xx — —
tests/tools/test_check_api_sql_ddl_usage.py::test_parse_sql_usage_collects_tables_aliases_and_mutation_columns — —
tests/tools/test_check_api_sql_ddl_usage.py::test_compare_usage_to_ddl_reports_both_directions — —
tests/tools/test_check_api_sql_ddl_usage.py::test_compare_usage_to_ddl_ignores_like_source_tables — —
tests/tools/test_check_api_sql_ddl_usage.py::test_compare_usage_to_ddl_ignores_hub_users_table — —
tests/tools/test_check_api_sql_ddl_usage.py::test_parse_sql_usage_collects_single_table_unqualified_columns — —
tests/tools/test_check_api_sql_ddl_usage.py::test_render_report_includes_locations_and_no_drift_message — —
tests/tools/test_check_api_sql_ddl_usage.py::test_check_and_arg_parser_defaults — —
tests/tools/test_check_api_sql_ddl_usage.py::test_main_exits_nonzero_when_drift_exists — —
tests/tools/test_check_api_sql_ddl_usage.py::test_main_can_ignore_drift_exit_code — —
tests/tools/test_check_bool_router_conditions.py::test_check_bool_router_conditions_reports_bare_await — —
tests/tools/test_check_bool_router_conditions.py::test_check_bool_router_conditions_accepts_if_conditions — —
tests/tools/test_check_constant_bool_returns.py::test_check_constant_bool_returns_reports_single_literal_value — —
tests/tools/test_check_exception_router_handlers.py::test_check_exception_router_handlers_reports_unhandled_calls — —
tests/tools/test_check_exception_router_handlers.py::test_check_exception_router_handlers_accepts_try_blocks — —
tests/tools/test_check_operational_logging.py::test_find_direct_logger_violations_reports_stdlib_logger_calls — —
tests/tools/test_check_operational_logging.py::test_check_operational_logging_accepts_wrapper_calls — —
tests/tools/test_check_router_error_response_returns.py::test_check_router_error_response_returns_reports_undeclared_status — —
tests/tools/test_check_router_error_response_returns.py::test_check_router_error_response_returns_accepts_declared_status — —
tests/tools/test_check_router_error_response_returns.py::test_check_router_error_response_returns_reports_exception_status — —
tests/tools/test_generate_api_detail_design.py::test_api_detail_design_extracts_normal_flow_details — —
tests/tools/test_generate_api_detail_design.py::test_api_detail_design_resolves_list_item_sources_to_db_columns — —
tests/tools/test_generate_api_list.py::test_collect_api_rows_outputs_compact_api_rows — —
tests/tools/test_generate_api_list.py::test_render_api_list_markdown_outputs_table — —
tests/tools/test_generate_api_list.py::test_generate_from_openapi_writes_api_list — —
tests/tools/test_generate_api_list.py::test_arg_parser_defaults_and_main_output — —
tests/tools/test_generate_api_list.py::test_generate_loads_openapi_and_implementation_paths — —
tests/tools/test_generate_api_message_catalog.py::test_build_api_catalogs_reads_catalog_and_wrapper_calls — —
tests/tools/test_generate_api_message_catalog.py::test_generate_api_message_catalog_main_writes_and_checks_docs — —
tests/tools/test_generate_api_message_catalog.py::test_build_api_catalogs_reads_warning_messages_from_router_logger_call — —
tests/tools/test_generate_api_pytest_cases.py::test_unit_test_specs_extracts_case_ids — —
tests/tools/test_generate_api_pytest_cases.py::test_rendered_outputs_generate_collectable_pytest — —
tests/tools/test_generate_api_pytest_cases.py::test_generate_check_detects_changed_output — —
tests/tools/test_generate_api_sequences.py::test_sql_tables_extracts_ordered_unique_table_names — —
tests/tools/test_generate_api_sequences.py::test_function_target_accepts_action_and_predicate_names — —
tests/tools/test_generate_api_sequences.py::test_api_sequence_from_dir_reads_router_calls_and_sql — —
tests/tools/test_generate_api_sequences.py::test_function_metadata_reads_called_integration_resources — —
tests/tools/test_generate_api_sequences.py::test_query_sql_filenames_maps_called_query_to_sql — —
tests/tools/test_generate_api_sequences.py::test_endpoint_route_metadata_reads_path_method_and_responses — —
tests/tools/test_generate_api_sequences.py::test_implicit_router_error_returns_detects_auth_and_validation — —
tests/tools/test_generate_api_sequences.py::test_endpoint_error_returns_reads_router_error_schema_returns — —
tests/tools/test_generate_api_sequences.py::test_endpoint_exception_error_returns_reads_api_function_error_summaries — —
tests/tools/test_generate_api_sequences.py::test_endpoint_sequence_items_reads_router_error_handler_as_500 — —
tests/tools/test_generate_api_sequences.py::test_endpoint_route_metadata_handles_defaults_keyword_path_and_unknown_status — —
tests/tools/test_generate_api_sequences.py::test_transaction_step_from_await_reads_session_commit — —
tests/tools/test_generate_api_sequences.py::test_render_sequence_markdown_limits_resources_and_groups_tables — —
tests/tools/test_generate_api_sequences.py::test_query_sql_filenames_for_step_matches_query_function_suffix — —
tests/tools/test_generate_api_sequences.py::test_render_sequence_markdown_marks_transaction_scope_until_commit — —
tests/tools/test_generate_api_sequences.py::test_generate_sequences_and_check_mode — —
tests/tools/test_generate_api_sequences.py::test_helpers_cover_api_dirs_sql_steps_and_arg_parser — —
tests/tools/test_generate_api_sequences.py::test_query_sql_summaries_reads_docstrings_by_sql_filename — —
tests/tools/test_generate_api_sequences.py::test_function_metadata_reads_docstrings_arguments_and_return_types — —
tests/tools/test_generate_api_sequences.py::test_function_metadata_requires_docstrings — —
tests/tools/test_generate_api_sequences.py::test_integration_resources_are_loaded_from_port_directories — —
tests/tools/test_generate_api_sequences.py::test_ast_helpers_handle_non_matches_and_fallbacks — —
tests/tools/test_generate_api_sequences.py::test_awaited_api_function_name_rejects_unrelated_awaits — —
tests/tools/test_generate_api_sequences.py::test_sql_sequence_steps_ignores_missing_or_unparseable_sql — —
tests/tools/test_generate_api_unit_test_factors.py::test_api_unit_test_factors_from_router_ast — —
tests/tools/test_generate_api_unit_test_factors.py::test_condition_description_falls_back_to_api_function_docstring — —
tests/tools/test_generate_api_unit_test_factors.py::test_render_unit_test_markdown_uses_three_sections — —
tests/tools/test_generate_api_unit_test_factors.py::test_render_implicit_router_errors_section_renders_none — —
tests/tools/test_generate_db_crud.py::test_operation_label_orders_crud_letters — —
tests/tools/test_generate_db_crud.py::test_api_name_from_sql_path_uses_api_folder_name — —
tests/tools/test_generate_db_crud.py::test_api_name_from_sql_path_rejects_non_api_sql_path — —
tests/tools/test_generate_db_crud.py::test_sql_operations_extracts_crud_from_sqlglot_ast — —
tests/tools/test_generate_db_crud.py::test_sql_operations_reads_delete_using_tables — —
tests/tools/test_generate_db_crud.py::test_mutation_target_returns_none_without_target — —
tests/tools/test_generate_db_crud.py::test_expression_tables_returns_empty_for_non_expression — —
tests/tools/test_generate_db_crud.py::test_sql_operations_ignores_empty_parsed_statement — —
tests/tools/test_generate_db_crud.py::test_collect_crud_ignores_tables_not_defined_in_ddl — —
tests/tools/test_generate_db_crud.py::test_render_csv_outputs_api_rows_and_table_columns — —
tests/tools/test_generate_db_crud.py::test_csv_escape_quotes_special_values — —
tests/tools/test_generate_db_crud.py::test_generate_writes_db_crud_csv — —
tests/tools/test_generate_db_crud.py::test_arg_parser_defaults_and_main_output — —
tests/tools/test_generate_db_er_diagram.py::test_parse_reference_target_normalizes_identifier_and_optional_columns — —
tests/tools/test_generate_db_er_diagram.py::test_parse_relationships_extracts_inline_table_and_alter_foreign_keys — —
tests/tools/test_generate_db_er_diagram.py::test_relationship_cardinality_uses_nullability_and_uniqueness — —
tests/tools/test_generate_db_er_diagram.py::test_child_columns_are_unique_supports_composite_table_constraints — —
tests/tools/test_generate_db_er_diagram.py::test_render_mermaid_includes_tables_keys_and_relationships — —
tests/tools/test_generate_db_er_diagram.py::test_render_markdown_wraps_mermaid_with_source_ddl_path — —
tests/tools/test_generate_db_er_diagram.py::test_generate_writes_markdown_or_mermaid_by_output_suffix — —
tests/tools/test_generate_db_er_diagram.py::test_arg_parser_defaults_format_inference_and_main_output — —
tests/tools/test_generate_db_table_specs.py::test_parse_column_extracts_key_nullability_and_reference — —
tests/tools/test_generate_db_table_specs.py::test_sqlglot_helper_fallbacks — —
tests/tools/test_generate_db_table_specs.py::test_parse_column_marks_primary_key_as_unique_and_not_nullable — —
tests/tools/test_generate_db_table_specs.py::test_parse_create_table_rejects_non_schema_create — —
tests/tools/test_generate_db_table_specs.py::test_parse_tables_supports_comments_and_like_tables — —
tests/tools/test_generate_db_table_specs.py::test_parse_tables_supports_commented_out_comment_on_metadata — —
tests/tools/test_generate_db_table_specs.py::test_parse_tables_raises_for_missing_like_source — —
tests/tools/test_generate_db_table_specs.py::test_render_table_markdown_includes_columns_constraints_and_escapes_pipe — —
tests/tools/test_generate_db_table_specs.py::test_generate_writes_sorted_table_specs — —
tests/tools/test_generate_db_table_specs.py::test_arg_parser_defaults_and_main_output — —
tests/tools/test_generate_db_table_specs.py::test_small_helpers — —
tests/tools/test_generate_e2e_specs.py::test_e2e_flow_steps_cover_generated_api_list — —
tests/tools/test_generate_e2e_specs.py::test_component_variants_follow_target_coverage_policies — —
tests/tools/test_generate_e2e_specs.py::test_prerequisites_resolve_dependencies_recursively — —
tests/tools/test_generate_e2e_specs.py::test_target_cases_skip_embedded_goals_and_carry_matrix_assertions — —
tests/tools/test_generate_e2e_specs.py::test_e2e_case_list_links_scenarios — —
tests/tools/test_generate_e2e_specs.py::test_e2e_scenarios_render_steps_settings_and_failure_triggers — —
tests/tools/test_generate_e2e_specs.py::test_check_e2e_specs_accepts_repository_tree — —
tests/tools/test_generate_e2e_specs.py::test_check_e2e_specs_reports_missing_generated_case — —
tests/tools/test_generate_external_crud.py::test_api_name_from_functions_path_uses_api_folder_name — —
tests/tools/test_generate_external_crud.py::test_api_name_from_functions_path_rejects_non_api_functions_path — —
tests/tools/test_generate_external_crud.py::test_called_methods_collects_configured_variable_attribute_calls — —
tests/tools/test_generate_external_crud.py::test_file_operations_maps_service_methods_to_crud_resources — —
tests/tools/test_generate_external_crud.py::test_file_operations_ignores_unmapped_service_methods — —
tests/tools/test_generate_external_crud.py::test_collect_service_crud_reads_router_dependencies — —
tests/tools/test_generate_external_crud.py::test_router_dependency_names_ignores_missing_router — —
tests/tools/test_generate_external_crud.py::test_generate_writes_requested_external_crud_csvs — —
tests/tools/test_generate_external_crud.py::test_service_names_for_arg_accepts_all_or_single_service — —
tests/tools/test_generate_external_crud.py::test_arg_parser_defaults_and_main_output — —
tests/tools/test_generate_openapi_if_specs.py::test_schema_type_and_constraints — —
tests/tools/test_generate_openapi_if_specs.py::test_enum_comment_descriptions_reads_enum_member_comments — —
tests/tools/test_generate_openapi_if_specs.py::test_parameter_and_request_body_rows — —
tests/tools/test_generate_openapi_if_specs.py::test_auth_header_rows_use_runtime_meaning — —
tests/tools/test_generate_openapi_if_specs.py::test_response_summary_and_render_markdown — —
tests/tools/test_generate_openapi_if_specs.py::test_operation_components_uses_api_specific_error_resource_schema — —
tests/tools/test_generate_openapi_if_specs.py::test_response_description_prefers_status_sample_error_reason — —
tests/tools/test_generate_openapi_if_specs.py::test_empty_and_invalid_sections_render_none — —
tests/tools/test_generate_openapi_if_specs.py::test_render_operation_markdown_handles_missing_description — —
tests/tools/test_generate_openapi_if_specs.py::test_sample_renderers_format_curl_and_json — —
tests/tools/test_generate_openapi_if_specs.py::test_operation_output_path_falls_back_to_default — —
tests/tools/test_generate_openapi_if_specs.py::test_implementation_operation_paths_reads_router_operation_ids — —
tests/tools/test_generate_openapi_if_specs.py::test_operation_samples_are_loaded_from_samples_module — —
tests/tools/test_generate_openapi_if_specs.py::test_module_sample_handles_missing_suffix — —
tests/tools/test_generate_openapi_if_specs.py::test_router_operation_helpers_handle_non_matches — —
tests/tools/test_generate_openapi_if_specs.py::test_iter_operations_and_output_path — —
tests/tools/test_generate_openapi_if_specs.py::test_generate_from_openapi_writes_files — —
tests/tools/test_generate_openapi_if_specs.py::test_arg_parser_defaults_and_main_output — —
tests/tools/test_generate_openapi_if_specs.py::test_load_fastapi_openapi_returns_schema — —
tests/tools/test_generate_queries.py::test_name_helpers — —
tests/tools/test_generate_queries.py::test_type_helpers — —
tests/tools/test_generate_queries.py::test_placeholder_names_preserves_first_seen_order — —
tests/tools/test_generate_queries.py::test_parse_query_spec_infers_select_params_and_rows — —
tests/tools/test_generate_queries.py::test_parse_query_spec_infers_qualified_alias_and_expression_rows — —
tests/tools/test_generate_queries.py::test_parse_query_spec_marks_null_checked_params_nullable — —
tests/tools/test_generate_queries.py::test_parse_query_spec_marks_left_join_rows_nullable — —
tests/tools/test_generate_queries.py::test_operation_from_statements_detects_statement_kind — —
tests/tools/test_generate_queries.py::test_sql_summary_reads_first_comment_or_falls_back — —
tests/tools/test_generate_queries.py::test_parse_query_spec_infers_insert_params_and_returning_rows — —
tests/tools/test_generate_queries.py::test_parse_query_spec_infers_update_params_and_returning_rows — —
tests/tools/test_generate_queries.py::test_returning_and_mutation_helpers_handle_missing_returning_or_target — —
tests/tools/test_generate_queries.py::test_collect_param_columns_handles_non_standard_insert_and_update — —
tests/tools/test_generate_queries.py::test_render_queries_py_includes_required_imports_and_empty_params — —
tests/tools/test_generate_queries.py::test_render_queries_py_uses_two_blank_lines_between_top_level_blocks — —
tests/tools/test_generate_queries.py::test_render_queries_py_includes_empty_params_and_date_decimal_imports — —
tests/tools/test_generate_queries.py::test_render_query_function_uses_fetch_one_for_mutation_returning — —
tests/tools/test_generate_queries.py::test_render_queries_py_imports_multiple_query_helpers — —
tests/tools/test_generate_queries.py::test_output_field_falls_back_for_unknown_column_and_plain_expression — —
tests/tools/test_generate_queries.py::test_infer_row_fields_returns_empty_when_no_select_or_returning — —
tests/tools/test_generate_queries.py::test_required_imports_handles_minimal_specs — —
tests/tools/test_generate_queries.py::test_generate_queries_writes_each_api_queries_file — —
tests/tools/test_generate_queries.py::test_render_compat_queries_py_re_exports_generated_queries — —
tests/tools/test_generate_queries.py::test_arg_parser_defaults_and_main_output — —
tests/tools/test_generate_queries.py::test_generate_queries_handles_api_without_sql — —
tests/tools/test_generate_queries.py::test_unknown_placeholder_type_is_rejected — —
tests/tools/test_generate_queries.py::test_cast_placeholder_type_is_inferred — —
tests/tools/test_generate_queries.py::test_comparison_placeholder_can_be_on_left_side — —
tests/tools/test_generate_query_specs.py::test_sql_tables_and_conditions_preserve_sql_order — —
tests/tools/test_generate_query_specs.py::test_sql_tables_deduplicates_repeated_tables — —
tests/tools/test_generate_query_specs.py::test_column_ref_resolution_handles_aliases_and_ambiguity — —
tests/tools/test_generate_query_specs.py::test_row_column_refs_handles_returning_and_empty_cases — —
tests/tools/test_generate_query_specs.py::test_param_column_refs_cover_insert_update_and_comparison_paths — —
tests/tools/test_generate_query_specs.py::test_param_column_refs_falls_back_to_unique_ddl_column — —
tests/tools/test_generate_query_specs.py::test_parenthesized_condition_items_handles_empty_and_single — —
tests/tools/test_generate_query_specs.py::test_expression_and_conditions_handle_unaliased_and_empty_paths — —
tests/tools/test_generate_query_specs.py::test_display_and_render_helpers_cover_empty_and_fallback_paths — —
tests/tools/test_generate_query_specs.py::test_render_sql_spec_handles_operation_fallback_and_empty_sections — —
tests/tools/test_generate_query_specs.py::test_render_query_markdown_inserts_blank_line_between_multiple_specs — —
tests/tools/test_generate_query_specs.py::test_changed_outputs_and_render_changed_cover_missing_and_stale_files — —
tests/tools/test_generate_query_specs.py::test_generate_query_specs_renders_sql_chapters — —
tests/tools/test_generate_query_specs.py::test_generate_query_specs_renders_source_tables_and_expanded_aliases — —
tests/tools/test_generate_query_specs.py::test_generate_query_specs_splits_and_or_conditions — —
tests/tools/test_generate_query_specs.py::test_render_query_markdown_marks_empty_sections — —
tests/tools/test_generate_query_specs.py::test_main_writes_outputs_and_check_reports_changed — —
tests/tools/test_generate_query_specs.py::test_arg_parser_defaults — —
tests/tools/test_generate_query_specs.py::test_render_query_markdown_handles_no_sql_specs — —
tests/tools/test_project_design.py::test_data_capability_is_deterministic Given 同一のDDL When dataの設計を2回クリーン生成 Then byte集合が一致する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_drift_reports_manual_edit_and_stale_file Given 生成物の手編集と旧帳票の残存 When drift検査 Then 変更と余剰を報告し既存fileを書き換えない。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_write_owned_root_replaces_only_owned_contents Given 旧生成物がある所有root When 再生成 Then 旧fileを残さず新しい集合だけにする。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_repeat_sections_reads_profile_grammar Given profileの繰返し節 When 帳票見出しを解析 Then 実装由来の見出しを列挙する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_repeat_sections_rejects_unsupported_structure Given profileにない見出し When 帳票を解析 Then 空の成功にせず未対応として拒否する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_added_route_without_contract_is_rejected Given 契約のないrouteの追加 When API設計を生成 Then 実登録集合との不一致として拒否する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_crud_rows_split_read_and_write_evidence Given 同じ保存先への読取りと更新 When CRUDを集約 Then 1rowでread/writeの根拠を分ける。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_crud_model_matches_common_projection Given 実装のSQLとrouter依存 When CRUD modelを生成 Then 全operationが根拠つきで射影できる。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_sql_target_change_changes_crud_projection Given 生成済みCRUD When SQLの更新先が変わる Then CRUD model・表・CSVが変化する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_crud_diagram_uses_openapi_summaries_and_storage_columns Given 実APIと保存先 When CRUD図を生成 Then 和名の行・完全名の列・CRUDセルと空欄を出力する。 TECH-CRUD-AC
tests/tools/test_project_design.py::test_crud_diagram_tracks_summary_changes Given OpenAPI summaryの変更 When CRUD図を再生成 Then ハードコードせず変更した和名を反映する。 TECH-CRUD-AC
tests/tools/test_project_design.py::test_crud_diagram_rejects_missing_summary Given summaryの欠落または空白 When CRUD図を生成 Then operationIdで代用せずエラーにする。 TECH-CRUD-AC
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
tests/tools/test_project_design.py::test_crud_capability_is_deterministic Given 同じSQL・router・OpenAPI When CRUDを2回生成 Then 全生成物のbyte集合が一致する。 TECH-CRUD-AC
tests/tools/test_project_design.py::test_crud_contract_rejects_rendering_drift Given CRUDの各帳票の手編集 When repository契約で照合 Then 図の形式変更後も不一致を拒否する。 TECH-CRUD-AC
tests/tools/test_project_design.py::test_crud_contract_rejects_stale_summary_and_invalid_model Given 和名のdriftまたは未解決アクセス When 図を契約検査 Then 検査対象のOpenAPIとモデルを照合して拒否する。 TECH-CRUD-AC
tests/tools/test_project_design.py::test_database_model_marks_logical_references Given DSQL向けの論理FK When DB探索modelを生成 Then アプリ保証の参照として区別する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_frontend_without_menu_is_unsupported Given メインメニューのない画面 When 画面設計を生成 Then 未対応として拒否する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_trace_rejects_missing_and_unknown_tests Given 受入条件に対応するテスト When テスト欠落・未知タグ Then 要件traceの欠落として拒否する。 TECH-DESIGN-AC
tests/tools/test_project_design.py::test_verify_checks_cover_requirement_evidence Given 検査で確認する要件 When verify入口を解析 Then 参照する検査名がすべて実在する。 TECH-DESIGN-AC
tests/tools/test_project_evidence.py::test_result_identity_and_unexecuted Given collectorの2件 When 片方だけ成功 Then 他方をnot-runとして残す。 TECH-QUALITY-AC
tests/tools/test_project_evidence.py::test_nonpassing_states_preserved Given 非成功状態 When 変換 Then passedへ変えない。 TECH-QUALITY-AC
tests/tools/test_project_evidence.py::test_result_outside_collector_is_rejected Given collector外の結果 When 変換 Then 混入として拒否する。 TECH-QUALITY-AC
tests/tools/test_project_evidence.py::test_foreign_run_rejected Given 別runのcollector原本 When ポータル証跡を構築 Then 混入として拒否する。 TECH-QUALITY-AC
tests/tools/test_project_evidence.py::test_backend_coverage_below_goal_fails Given 目標未満の業務コードcoverage When 証跡へ変換 Then 計測済みではなく失敗として示す。 TECH-QUALITY-AC
tests/tools/test_project_evidence.py::test_publication_allowlist Given 公開サイトに生ログ・storage state・DB dump When 公開集合を検査 Then 公開を拒否する。 TECH-PRIVACY-AC
tests/tools/test_project_evidence.py::test_symlink_not_published Given 公開サイト内のsymlink When 公開集合を検査 Then 外部fileを公開しない。 TECH-PRIVACY-AC
tests/tools/test_project_evidence.py::test_allowed_site_records_provenance Given allowlist内だけの公開サイト When 公開集合を検査 Then hashを記録して公開可能にする。 TECH-PRIVACY-AC
tests/tools/test_project_evidence.py::test_design_search_covers_lazunex_documents Given lazunex形式の設計Markdown When 検索索引を作る Then API帳票とE2E仕様を含める。 TECH-DESIGN-AC
tests/tools/test_project_migrate.py::test_migrate_and_seed_repeat Given 既存データ When migrationとseedを繰り返す Then 重複せず既存データを保持する。 COM-05-AC, COM-02-AC, SLOT-AC16
tests/tools/test_rulecheck_cli.py::test_rulecheck_cli_generate_verify_and_check — —
tests/tools/test_rulecheck_cli.py::test_metric_exclude_globs_skip_generated_python — —
tests/tools/test_rulecheck_cli.py::test_endpoint_business_argument_count_excludes_fastapi_depends — —
tests/tools/test_rulecheck_cli.py::test_additional_metric_checkers_report_failures — —
tests/tools/test_tools_package.py::test_tools_package_imports_both_roots Given 2箇所のtools配置 When 順序を変えて探索 Then Quintとverifyの依存を読み込める。 —
vitest::日本時間の入力と次の操作案内 [COM-08-AC] [RULE-04-AC] 日本時間の入力と次の操作案内 COM-08-AC, RULE-04-AC
vitest::Cognitoのログアウト先 [COM-01-AC] Cognitoのログアウト先 COM-01-AC
playwright::ログインから予約・履歴・取消・ログアウトまで [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
playwright::一般利用者に資源管理を表示しない [COM-01-AC] [COM-04-AC] 一般利用者に資源管理を表示しない COM-01-AC, COM-04-AC
playwright::CRUD図でAPI和名と保存先のマトリクスを読む [TECH-PORTAL-AC] CRUD図でAPI和名と保存先のマトリクスを読む TECH-PORTAL-AC
playwright::階層検索から設計図とDB探索へ移動する [TECH-PORTAL-AC] 階層検索から設計図とDB探索へ移動する TECH-PORTAL-AC