SlotKeeper 設計と品質

create_resource unit test factors

  • Operation: createResource
  • Endpoint: POST /resources

0. Router層の暗黙処理

Case ID 処理 発生条件 期待観点
R001 FastAPI Depends(get_caller_identity) Authorization ヘッダのBearer tokenが未指定、または署名・issuer・client・用途・期限を検証できない場合。 HTTP 401 error response: authentication_required / invalid_token
R002 FastAPI/Pydantic request validation Path/Query/Header/Body が型または制約に一致しない場合。 HTTP 422 error response: invalid_input

1. 要因ごとの要素

F01 条件分岐

  • 対象: 条件分岐: 呼び出し元が資源を管理できる管理者でない場合。
  • AST: not await api_functions.has_resource_management_permission(caller)
要素ID 要素 期待観点
F01-true 成立 HTTP 403 error response: forbidden
log message_id: createResource.caller_cannot_manage_resources
log summary: 呼び出し元が管理者ではないため、資源登録を拒否した。
F01-false 不成立 条件不成立側または後続処理を継続する。

F02 例外処理

  • 対象: 例外処理: ROUTER_HANDLED_EXCEPTIONS
  • AST: ROUTER_HANDLED_EXCEPTIONS
要素ID 要素 期待観点
F02-normal 発生しない try bodyを継続し、このexcept handlerへ遷移しない。
F02-raised-apifunctionerror ApiFunctionError HTTP 500 error response: forced router error
F02-raised-externalapierror ExternalApiError HTTP 502 error response: external service request failed
F02-raised-httpexception HTTPException HTTP 400 error response: forced http exception

2. 直積したテストケース一覧

Case ID F01 F02
TC001 成立 -
TC002 不成立 発生しない
TC003 不成立 ApiFunctionError
TC004 不成立 ExternalApiError
TC005 不成立 HTTPException

3. テスト詳細

TC001

要因 要素 期待観点
F01 条件分岐: 呼び出し元が資源を管理できる管理者でない場合。 成立 HTTP 403 error response: forbidden
log message_id: createResource.caller_cannot_manage_resources
log summary: 呼び出し元が管理者ではないため、資源登録を拒否した。

TC002

要因 要素 期待観点
F01 条件分岐: 呼び出し元が資源を管理できる管理者でない場合。 不成立 条件不成立側または後続処理を継続する。
F02 例外処理: ROUTER_HANDLED_EXCEPTIONS 発生しない try bodyを継続し、このexcept handlerへ遷移しない。
API正常応答 正常 HTTP 201 success response

TC003

要因 要素 期待観点
F01 条件分岐: 呼び出し元が資源を管理できる管理者でない場合。 不成立 条件不成立側または後続処理を継続する。
F02 例外処理: ROUTER_HANDLED_EXCEPTIONS ApiFunctionError HTTP 500 error response: forced router error

TC004

要因 要素 期待観点
F01 条件分岐: 呼び出し元が資源を管理できる管理者でない場合。 不成立 条件不成立側または後続処理を継続する。
F02 例外処理: ROUTER_HANDLED_EXCEPTIONS ExternalApiError HTTP 502 error response: external service request failed

TC005

要因 要素 期待観点
F01 条件分岐: 呼び出し元が資源を管理できる管理者でない場合。 不成立 条件不成立側または後続処理を継続する。
F02 例外処理: ROUTER_HANDLED_EXCEPTIONS HTTPException HTTP 400 error response: forced http exception