"No","テストID","対象クラス","対象メソッド","テスト観点","テストケース名","前提条件","入力値","期待結果","優先度","備考"
"1","UT-COM-001","common.models.BaseInvenTreeSetting","save","正常系","設定値が正常に保存されること","データベースが利用可能","key=""TEST_KEY"", value=""test_value""","設定値がデータベースに保存される","高","設定保存の基本機能"
"2","UT-COM-002","common.models.BaseInvenTreeSetting","save","正常系","キーが大文字に変換されること","データベースが利用可能","key=""test_key""","キーが""TEST_KEY""に変換されて保存される","中","キーの正規化処理"
"3","UT-COM-003","common.models.BaseInvenTreeSetting","save","正常系","before_saveアクションが呼び出されること","設定にbefore_save関数が定義されている","設定保存","before_save関数が実行される","中","フック関数の実行確認"
"4","UT-COM-004","common.models.BaseInvenTreeSetting","save","正常系","after_saveアクションが呼び出されること","設定にafter_save関数が定義されている","設定保存","after_save関数が実行される","中","フック関数の実行確認"
"5","UT-COM-005","common.models.BaseInvenTreeSetting","save","正常系","キャッシュに保存されること","cache=True（デフォルト）","設定保存","設定がキャッシュに保存される","中","キャッシュ機能"
"6","UT-COM-006","common.models.BaseInvenTreeSetting","build_default_values","正常系","未設定のキーにデフォルト値が設定されること","一部の設定が未登録","なし","不足している設定がデフォルト値で作成される","高","デフォルト値の初期化"
"7","UT-COM-007","common.models.BaseInvenTreeSetting","get_setting_object","正常系","キャッシュから設定が取得できること","設定がキャッシュに存在する","key=""TEST_KEY""","キャッシュから設定オブジェクトが返却される","高","キャッシュ取得の高速化"
"8","UT-COM-008","common.models.BaseInvenTreeSetting","get_setting_object","正常系","データベースから設定が取得できること","設定がDBに存在しキャッシュにない","key=""TEST_KEY""","DBから設定オブジェクトが返却される","高","DB取得機能"
"9","UT-COM-009","common.models.BaseInvenTreeSetting","get_setting_object","正常系","存在しない設定が作成されること","設定が存在しない, create=True","key=""NEW_KEY""","新しい設定がデフォルト値で作成される","高","自動作成機能"
"10","UT-COM-010","common.models.BaseInvenTreeSetting","get_setting_object","異常系","存在しない設定でcreate=Falseの場合Noneが返却されること","設定が存在しない","key=""NONEXISTENT"", create=False","Noneが返却される","中","存在しない設定の処理"
"11","UT-COM-011","common.models.BaseInvenTreeSetting","get_setting","正常系","設定値が正しく取得できること","設定が存在する","key=""TEST_KEY""","設定値が返却される","高","値取得の基本機能"
"12","UT-COM-012","common.models.BaseInvenTreeSetting","get_setting","正常系","ブール値が正しく変換されること","設定がbool型","key=""BOOL_KEY"", value=""True""","Trueが返却される","高","型変換機能"
"13","UT-COM-013","common.models.BaseInvenTreeSetting","get_setting","正常系","整数値が正しく変換されること","設定がint型","key=""INT_KEY"", value=""42""","42が返却される","高","型変換機能"
"14","UT-COM-014","common.models.BaseInvenTreeSetting","get_setting","異常系","存在しない設定でバックアップ値が返却されること","設定が存在しない","key=""NONEXISTENT"", backup_value=""default""","defaultが返却される","中","バックアップ値の処理"
"15","UT-COM-015","common.models.BaseInvenTreeSetting","set_setting","正常系","設定値が正しく設定されること","データベースが利用可能","key=""TEST_KEY"", value=""new_value""","設定値が更新される","高","値設定の基本機能"
"16","UT-COM-016","common.models.BaseInvenTreeSetting","set_setting","正常系","ブール値がTrue/Falseに正規化されること","設定がbool型","value=""yes""","Trueとして保存される","中","ブール値の正規化"
"17","UT-COM-017","common.models.BaseInvenTreeSetting","set_setting","異常系","非スタッフユーザーで設定変更が無視されること","change_userが非スタッフ","change_user=non_staff_user","設定が変更されない","高","権限チェック"
"18","UT-COM-018","common.models.BaseInvenTreeSetting","set_setting","異常系","ValidationErrorが発生した場合に例外がスローされること","バリデーションエラーが発生","不正な値","ValidationErrorがスローされる","中","エラーハンドリング"
"19","UT-COM-019","common.models.BaseInvenTreeSetting","clean","正常系","バリデータが正しく実行されること","validatorが定義されている","設定保存","バリデータが実行される","高","バリデーション機能"
"20","UT-COM-020","common.models.BaseInvenTreeSetting","clean","異常系","無効な選択肢でValidationErrorがスローされること","choicesが定義されている","無効な選択肢","ValidationErrorがスローされる","中","選択肢バリデーション"
"21","UT-COM-021","common.models.BaseInvenTreeSetting","run_validator","正常系","boolバリデータが正しく動作すること","validator=bool","value=""True""","値がブール値に変換される","中","boolバリデータ"
"22","UT-COM-022","common.models.BaseInvenTreeSetting","run_validator","正常系","intバリデータが正しく動作すること","validator=int","value=""123""","値が整数に変換される","中","intバリデータ"
"23","UT-COM-023","common.models.BaseInvenTreeSetting","run_validator","正常系","floatバリデータが正しく動作すること","validator=float","value=""3.14""","値が浮動小数点数に変換される","中","floatバリデータ"
"24","UT-COM-024","common.models.BaseInvenTreeSetting","run_validator","異常系","無効なブール値でValidationErrorがスローされること","validator=bool","value=""invalid""","ValidationErrorがスローされる","中","無効値のエラー処理"
"25","UT-COM-025","common.models.BaseInvenTreeSetting","run_validator","異常系","無効な整数値でValidationErrorがスローされること","validator=int","value=""abc""","ValidationErrorがスローされる","中","無効値のエラー処理"
"26","UT-COM-026","common.models.BaseInvenTreeSetting","validate_unique","正常系","一意なキーで保存できること","キーが一意","key=""UNIQUE_KEY""","正常に保存される","高","ユニーク制約"
"27","UT-COM-027","common.models.BaseInvenTreeSetting","validate_unique","異常系","重複キーでValidationErrorがスローされること","同じキーが既に存在","key=""DUPLICATE_KEY""","ValidationErrorがスローされる","高","ユニーク制約違反"
"28","UT-COM-028","common.models.BaseInvenTreeSetting","is_bool","正常系","ブール設定でTrueが返却されること","validator=bool","設定参照","Trueが返却される","中","型判定機能"
"29","UT-COM-029","common.models.BaseInvenTreeSetting","is_int","正常系","整数設定でTrueが返却されること","validator=int","設定参照","Trueが返却される","中","型判定機能"
"30","UT-COM-030","common.models.BaseInvenTreeSetting","is_float","正常系","浮動小数点設定でTrueが返却されること","validator=float","設定参照","Trueが返却される","中","型判定機能"
"31","UT-COM-031","common.models.BaseInvenTreeSetting","as_bool","正常系","文字列がブール値に変換されること","設定値=""True""","なし","Trueが返却される","中","型変換機能"
"32","UT-COM-032","common.models.BaseInvenTreeSetting","as_int","正常系","文字列が整数に変換されること","設定値=""42""","なし","42が返却される","中","型変換機能"
"33","UT-COM-033","common.models.BaseInvenTreeSetting","as_int","異常系","無効な値でデフォルト値が返却されること","設定値=""invalid""","raise_error=False","デフォルト値が返却される","中","エラー時のフォールバック"
"34","UT-COM-034","common.models.BaseInvenTreeSetting","as_float","正常系","文字列が浮動小数点数に変換されること","設定値=""3.14""","なし","3.14が返却される","中","型変換機能"
"35","UT-COM-035","common.models.BaseInvenTreeSetting","as_float","異常系","無効な値でデフォルト値が返却されること","設定値=""invalid""","raise_error=False","デフォルト値が返却される","中","エラー時のフォールバック"
"36","UT-COM-036","common.models.BaseInvenTreeSetting","model_class","正常系","モデルクラスが正しく返却されること","model=app.modelが有効","設定参照","モデルクラスが返却される","中","モデル参照機能"
"37","UT-COM-037","common.models.BaseInvenTreeSetting","model_class","異常系","無効なモデル名でNoneが返却されること","model=invalid.model","設定参照","Noneが返却される","中","無効モデルの処理"
"38","UT-COM-038","common.models.InvenTreeSetting","save","正常系","環境変数オーバーライドが適用されること","環境変数でオーバーライドが設定","設定保存","オーバーライド値が使用される","高","環境変数オーバーライド"
"39","UT-COM-039","common.models.InvenTreeSetting","save","正常系","再起動必要フラグが設定されること","requires_restart=True","設定変更","SERVER_RESTART_REQUIREDがTrueになる","高","再起動通知機能"
"40","UT-COM-040","common.models.InvenTreeSetting","requires_restart","正常系","再起動が必要な設定でTrueが返却されること","設定にrequires_restart=True","設定参照","Trueが返却される","中","再起動必要判定"
"41","UT-COM-041","common.models.InvenTreeUserSetting","get_setting_object","正常系","ユーザー固有の設定が取得できること","ユーザー設定が存在","key=""USER_KEY"", user=user","ユーザー固有の設定が返却される","高","ユーザー設定機能"
"42","UT-COM-042","common.models.InvenTreeUserSetting","get_setting_object","正常系","異なるユーザーで独立した設定が取得できること","複数ユーザーで同一キー","user=user1, user=user2","それぞれ独立した設定が返却される","高","ユーザー分離"
"43","UT-COM-043","common.models.ProjectCode","__str__","正常系","コードが文字列として返却されること","ProjectCodeが存在","なし","コード文字列が返却される","低","文字列表現"
"44","UT-COM-044","common.models.ProjectCode","get_api_url","正常系","APIエンドポイントURLが返却されること","なし","なし","api-project-code-listのURLが返却される","低","API URL取得"
"45","UT-COM-045","common.models.PriceBreak","convert_to","正常系","通貨変換が正しく行われること","為替レートが存在","currency_code=""USD""","変換後の金額が返却される","高","通貨変換機能"
"46","UT-COM-046","common.models.PriceBreak","convert_to","異常系","為替レートがない場合に元の金額が返却されること","為替レートが存在しない","currency_code=""XXX""","元の金額が返却される","中","為替レート不在時の処理"
"47","UT-COM-047","common.models.WebhookEndpoint","init","正常系","検証方法が設定されること","なし","request","verify属性が設定される","中","初期化処理"
"48","UT-COM-048","common.models.WebhookEndpoint","process_webhook","正常系","トークンが存在する場合にTOKEN検証が設定されること","token属性が設定されている","なし","verify=VerificationMethod.TOKEN","中","トークン検証設定"
"49","UT-COM-049","common.models.WebhookEndpoint","process_webhook","正常系","シークレットが存在する場合にHMAC検証が設定されること","secret属性が設定されている","なし","verify=VerificationMethod.HMAC","中","HMAC検証設定"
"50","UT-COM-050","common.models.WebhookEndpoint","validate_token","正常系","正しいトークンで検証が成功すること","token検証が有効","正しいトークン","Trueが返却される","高","トークン検証"
"51","UT-COM-051","common.models.WebhookEndpoint","validate_token","異常系","不正なトークンでPermissionDeniedがスローされること","token検証が有効","不正なトークン","PermissionDeniedがスローされる","高","トークン検証失敗"
"52","UT-COM-052","common.models.WebhookEndpoint","validate_token","正常系","正しいHMACで検証が成功すること","HMAC検証が有効","正しいHMAC署名","Trueが返却される","高","HMAC検証"
"53","UT-COM-053","common.models.WebhookEndpoint","validate_token","異常系","不正なHMACでPermissionDeniedがスローされること","HMAC検証が有効","不正なHMAC署名","PermissionDeniedがスローされる","高","HMAC検証失敗"
"54","UT-COM-054","common.models.WebhookEndpoint","save_data","正常系","WebhookMessageが作成されること","WebhookEndpointが存在","payload, headers, request","WebhookMessageが作成される","中","データ保存機能"
"55","UT-COM-055","common.models.WebhookEndpoint","process_payload","正常系","ペイロードが処理されること","WebhookMessageが存在","message, payload, headers","Trueが返却される","中","ペイロード処理"
"56","UT-COM-056","common.models.NotificationEntry","check_recent","正常系","最近の通知が存在する場合Trueが返却されること","通知が24時間以内に送信済み","key, uid, delta=1day","Trueが返却される","高","重複通知防止"
"57","UT-COM-057","common.models.NotificationEntry","check_recent","正常系","最近の通知が存在しない場合Falseが返却されること","通知が送信されていない","key, uid, delta=1day","Falseが返却される","高","重複通知防止"
"58","UT-COM-058","common.models.NotificationEntry","notify","正常系","通知エントリが作成されること","なし","key, uid","NotificationEntryが作成される","高","通知記録機能"
"59","UT-COM-059","common.models.NotificationEntry","notify","正常系","既存エントリが更新されること","同じkey, uidのエントリが存在","key, uid","updatedが更新される","中","通知記録更新"
"60","UT-COM-060","common.models.NotificationMessage","age","正常系","メッセージの経過秒数が返却されること","NotificationMessageが存在","なし","秒数が返却される","低","経過時間計算"
"61","UT-COM-061","common.models.NotificationMessage","age_human","正常系","人間可読な経過時間が返却されること","NotificationMessageが存在","なし","""X minutes ago""等が返却される","低","経過時間の人間可読表示"
"62","UT-COM-062","common.models.NotesImage","save","正常系","画像ファイルがnotes/に保存されること","画像ファイルがアップロード","image=file","notes/配下に保存される","中","画像保存機能"
"63","UT-COM-063","common.models.CustomUnit","fmt_string","正常系","単位定義文字列が正しく生成されること","name, definition, symbolが設定","なし","name = definition = symbolが返却される","中","フォーマット文字列生成"
"64","UT-COM-064","common.models.CustomUnit","validate_unique","正常系","一意なシンボルで保存できること","シンボルが一意","symbol=""kg""","正常に保存される","高","ユニーク制約"
"65","UT-COM-065","common.models.CustomUnit","validate_unique","異常系","重複シンボルでValidationErrorがスローされること","同じシンボルが既に存在","symbol=""kg""","ValidationErrorがスローされる","高","ユニーク制約違反"
"66","UT-COM-066","common.models.CustomUnit","clean","正常系","有効な単位定義で保存できること","name, definitionが有効","name=""dog_year"", definition=""52 * day""","正常に保存される","高","単位定義バリデーション"
"67","UT-COM-067","common.models.CustomUnit","clean","異常系","無効なname識別子でValidationErrorがスローされること","nameが無効な識別子","name=""123invalid""","ValidationErrorがスローされる","高","識別子バリデーション"
"68","UT-COM-068","common.models.CustomUnit","clean","異常系","無効なdefinitionでValidationErrorがスローされること","definitionが無効","definition=""invalid_unit""","ValidationErrorがスローされる","高","定義バリデーション"
"69","UT-COM-069","common.models.Attachment","save","正常系","ファイル添付が保存されること","ファイルがアップロード","attachment=file","ファイルが保存される","高","添付ファイル保存"
"70","UT-COM-070","common.models.Attachment","save","正常系","外部リンクが保存されること","リンクが指定","link=""https://example.com""","リンクが保存される","高","外部リンク保存"
"71","UT-COM-071","common.models.Attachment","save","異常系","ファイルもリンクもない場合ValidationErrorがスローされること","どちらも未指定","attachment=None, link=None","ValidationErrorがスローされる","高","必須フィールドチェック"
"72","UT-COM-072","common.models.Attachment","save","正常系","SVGファイルがサニタイズされること","SVGファイルがアップロード","attachment=svg_file","SVGがサニタイズされて保存される","高","SVGセキュリティ"
"73","UT-COM-073","common.models.Attachment","save","正常系","ファイルサイズが記録されること","ファイルがアップロード","attachment=file","file_sizeが設定される","中","ファイルサイズ記録"
"74","UT-COM-074","common.models.Attachment","clean_svg","正常系","SVGが正しくサニタイズされること","SVGコンテンツ","悪意のあるSVG","サニタイズされたSVGが返却される","高","SVGサニタイズ"
"75","UT-COM-075","common.models.Attachment","basename","正常系","ファイルのベース名が返却されること","attachmentが設定されている","なし","ファイル名が返却される","低","ファイル名取得"
"76","UT-COM-076","common.models.Attachment","fully_qualified_url","正常系","外部リンクの場合リンクがそのまま返却されること","link属性が設定されている","なし","リンクURLが返却される","中","完全修飾URL取得"
"77","UT-COM-077","common.models.Attachment","fully_qualified_url","正常系","添付ファイルの場合メディアURLが返却されること","attachment属性が設定されている","なし","メディアURLが返却される","中","完全修飾URL取得"
"78","UT-COM-078","common.models.Attachment","check_permission","正常系","ユーザーに権限がある場合Trueが返却されること","ユーザーがchange権限を持つ","permission=""change"", user=user","Trueが返却される","高","権限チェック"
"79","UT-COM-079","common.models.Attachment","check_permission","異常系","無効なモデルタイプでValidationErrorがスローされること","model_typeが無効","model_type=""invalid""","ValidationErrorがスローされる","高","モデルタイプバリデーション"
"80","UT-COM-080","common.models.InvenTreeCustomUserStateModel","__str__","正常系","文字列表現が正しく返却されること","全フィールドが設定されている","なし","model (reference_status): name | key (logical_key)形式","低","文字列表現"
"81","UT-COM-081","common.models.InvenTreeCustomUserStateModel","clean","正常系","有効なカスタム状態で保存できること","全フィールドが有効","有効な値","正常に保存される","高","カスタム状態バリデーション"
"82","UT-COM-082","common.models.InvenTreeCustomUserStateModel","clean","異常系","modelがNullでValidationErrorがスローされること","modelがNone","model=None","ValidationErrorがスローされる","高","必須フィールドチェック"
"83","UT-COM-083","common.models.InvenTreeCustomUserStateModel","clean","異常系","keyがlogical_keyと同じでValidationErrorがスローされること","keyとlogical_keyが同一","key=10, logical_key=10","ValidationErrorがスローされる","高","キー重複チェック"
"84","UT-COM-084","common.models.InvenTreeCustomUserStateModel","clean","異常系","keyが参照ステータスの値と重複でValidationErrorがスローされること","keyが参照ステータスに存在","key=既存の値","ValidationErrorがスローされる","高","キー重複チェック"
"85","UT-COM-085","common.models.InvenTreeCustomUserStateModel","clean","異常系","logical_keyが参照ステータスにないでValidationErrorがスローされること","logical_keyが存在しない","logical_key=無効な値","ValidationErrorがスローされる","高","論理キーバリデーション"
"86","UT-COM-086","common.models.InvenTreeCustomUserStateModel","clean","異常系","nameが参照ステータスと重複でValidationErrorがスローされること","nameが既存の名前と同じ","name=既存の名前","ValidationErrorがスローされる","高","名前重複チェック"
"87","UT-COM-087","common.models.InvenTreeCustomUserStateModel","get_status_class","正常系","ステータスクラスが返却されること","reference_statusが有効","なし","StatusCodeサブクラスが返却される","中","ステータスクラス取得"
"88","UT-COM-088","common.models.InvenTreeCustomUserStateModel","get_status_class","異常系","無効なreference_statusでNoneが返却されること","reference_statusが無効","reference_status=""Invalid""","Noneが返却される","中","無効ステータス処理"
"89","UT-COM-089","common.models.SelectionList","__str__","正常系","アクティブなリストで名前が返却されること","active=True","なし","名前が返却される","低","文字列表現"
"90","UT-COM-090","common.models.SelectionList","__str__","正常系","非アクティブなリストで(Inactive)が付加されること","active=False","なし","name (Inactive)が返却される","低","文字列表現"
"91","UT-COM-091","common.models.SelectionList","get_choices","正常系","アクティブなエントリの値リストが返却されること","複数のエントリが存在","なし","アクティブなエントリのvalue配列が返却される","中","選択肢取得"
"92","UT-COM-092","common.models.SelectionListEntry","__str__","正常系","アクティブなエントリでラベルが返却されること","active=True","なし","ラベルが返却される","低","文字列表現"
"93","UT-COM-093","common.models.SelectionListEntry","__str__","正常系","非アクティブなエントリで(Inactive)が付加されること","active=False","なし","label (Inactive)が返却される","低","文字列表現"
"94","UT-COM-094","common.models.ParameterTemplate","__str__","正常系","単位なしでname のみ返却されること","units未設定","なし","nameが返却される","低","文字列表現"
"95","UT-COM-095","common.models.ParameterTemplate","__str__","正常系","単位ありでname (units)が返却されること","units設定済み","なし","name (units)が返却される","低","文字列表現"
"96","UT-COM-096","common.models.ParameterTemplate","clean","正常系","有効なテンプレートで保存できること","全フィールドが有効","有効な値","正常に保存される","高","テンプレートバリデーション"
"97","UT-COM-097","common.models.ParameterTemplate","clean","異常系","チェックボックスに単位が設定されている場合ValidationErrorがスローされること","checkbox=True, units設定","units=""kg""","ValidationErrorがスローされる","中","チェックボックスバリデーション"
"98","UT-COM-098","common.models.ParameterTemplate","clean","異常系","チェックボックスに選択肢が設定されている場合ValidationErrorがスローされること","checkbox=True, choices設定","choices=""A,B,C""","ValidationErrorがスローされる","中","チェックボックスバリデーション"
"99","UT-COM-099","common.models.ParameterTemplate","clean","異常系","重複した選択肢でValidationErrorがスローされること","重複した選択肢","choices=""A,A,B""","ValidationErrorがスローされる","中","選択肢バリデーション"
"100","UT-COM-100","common.models.ParameterTemplate","validate_unique","異常系","重複した名前（大文字小文字区別なし）でValidationErrorがスローされること","同じ名前が存在","name=""test""（既存はTEST）","ValidationErrorがスローされる","高","名前ユニーク制約"
"101","UT-COM-101","common.models.ParameterTemplate","get_choices","正常系","選択リストから選択肢が返却されること","selectionlistが設定済み","なし","選択リストの値が返却される","中","選択肢取得"
"102","UT-COM-102","common.models.ParameterTemplate","get_choices","正常系","choicesから選択肢が返却されること","choices設定済み","choices=""A,B,C""","[A, B, C]が返却される","中","選択肢取得"
"103","UT-COM-103","common.models.ParameterTemplate","get_choices","境界値","空のchoicesで空配列が返却されること","choices未設定","choices=""""","[]が返却される","中","空の選択肢処理"
"104","UT-COM-104","common.models.Parameter","save","正常系","数値が計算されること","units設定済み","data=""10 kg""","data_numericが設定される","高","数値計算"
"105","UT-COM-105","common.models.Parameter","save","正常系","チェックボックスがTrue/Falseに変換されること","template.checkbox=True","data=""yes""","data=True, data_numeric=1","中","ブール値変換"
"106","UT-COM-106","common.models.Parameter","clean","正常系","有効な選択肢で保存できること","template.choicesが設定済み","dataが有効な選択肢","正常に保存される","高","選択肢バリデーション"
"107","UT-COM-107","common.models.Parameter","clean","異常系","無効な選択肢でValidationErrorがスローされること","template.choicesが設定済み","無効な選択肢","ValidationErrorがスローされる","高","選択肢バリデーション"
"108","UT-COM-108","common.models.Parameter","clean","異常系","単位が不一致でValidationErrorがスローされること","PARAMETER_ENFORCE_UNITS=True, template.units設定済み","不正な単位のdata","ValidationErrorがスローされる","高","単位バリデーション"
"109","UT-COM-109","common.models.Parameter","calculate_numeric_value","正常系","物理単位付きデータが数値変換されること","template.units設定済み","data=""10 km""","data_numericが10000（SI基本単位）","高","単位変換計算"
"110","UT-COM-110","common.models.Parameter","calculate_numeric_value","正常系","単位なしデータがfloat変換されること","template.units未設定","data=""3.14""","data_numeric=3.14","中","数値変換"
"111","UT-COM-111","common.models.Parameter","calculate_numeric_value","異常系","数値変換不可でNoneが設定されること","template.units未設定","data=""not_a_number""","data_numeric=None","中","変換失敗時の処理"
"112","UT-COM-112","common.models.Parameter","calculate_numeric_value","境界値","NaNでNoneが設定されること","計算結果がNaN","特殊な計算","data_numeric=None","中","特殊値の処理"
"113","UT-COM-113","common.models.Parameter","calculate_numeric_value","境界値","InfでNoneが設定されること","計算結果がInf","特殊な計算","data_numeric=None","中","特殊値の処理"
"114","UT-COM-114","common.models.Parameter","check_permission","正常系","ユーザーに権限がある場合Trueが返却されること","ユーザーがchange権限を持つ","permission=""change"", user=user","Trueが返却される","高","権限チェック"
"115","UT-COM-115","common.models.Parameter","check_permission","異常系","無効なモデルタイプでValidationErrorがスローされること","model_typeが無効","model_type=無効","ValidationErrorがスローされる","高","モデルタイプバリデーション"
"116","UT-COM-116","common.models.Parameter","units","正常系","テンプレートの単位が返却されること","template.units設定済み","なし","テンプレートの単位が返却される","低","プロパティ取得"
"117","UT-COM-117","common.models.Parameter","name","正常系","テンプレートの名前が返却されること","template.name設定済み","なし","テンプレートの名前が返却される","低","プロパティ取得"
"118","UT-COM-118","common.models.DataOutput","mark_complete","正常系","出力が完了としてマークされること","DataOutputが存在","progress=100, output=file","complete=True, progress=100, output設定","中","完了マーク"
"119","UT-COM-119","common.models.DataOutput","mark_failure","正常系","エラーメッセージが記録されること","DataOutputが存在","error=""Error message""","complete=False, errors={error: ...}","中","失敗マーク"
"120","UT-COM-120","common.models.DataOutput","mark_failure","正常系","エラー辞書が記録されること","DataOutputが存在","error_dict={...}","complete=False, errors=error_dict","中","失敗マーク"
"121","UT-COM-121","common.models.EmailMessage","save","正常系","スレッドが自動作成されること","thread未設定","保存","threadが作成されリンクされる","高","スレッド自動作成"
"122","UT-COM-122","common.models.EmailMessage","delete","正常系","保護無効時に削除できること","INVENTREE_PROTECT_EMAIL_LOG=False","削除","正常に削除される","中","削除機能"
"123","UT-COM-123","common.models.EmailMessage","delete","異常系","保護有効時にValidationErrorがスローされること","INVENTREE_PROTECT_EMAIL_LOG=True","削除","ValidationErrorがスローされる","高","削除保護"
"124","UT-COM-124","common.validators.validate_attachment_model_type","","正常系","有効なモデルタイプで検証成功","添付をサポートするモデル","value=""part""","例外なし","中","添付モデルバリデーション"
"125","UT-COM-125","common.validators.validate_attachment_model_type","","異常系","無効なモデルタイプでValidationErrorがスローされること","存在しないモデル","value=""invalid""","ValidationErrorがスローされる","中","添付モデルバリデーション"
"126","UT-COM-126","common.validators.validate_notes_model_type","","正常系","有効なモデルタイプで検証成功","ノートをサポートするモデル","value=""part""","例外なし","中","ノートモデルバリデーション"
"127","UT-COM-127","common.validators.validate_notes_model_type","","正常系","空値で検証成功","空文字列","value=""""","例外なし","中","空値許容"
"128","UT-COM-128","common.validators.validate_notes_model_type","","異常系","無効なモデルタイプでValidationErrorがスローされること","存在しないモデル","value=""invalid""","ValidationErrorがスローされる","中","ノートモデルバリデーション"
"129","UT-COM-129","common.validators.validate_decimal_places_min","","正常系","最小値が最大値以下で検証成功","最小値 <= 最大値","value=2（最大値=4）","例外なし","中","小数点桁数バリデーション"
"130","UT-COM-130","common.validators.validate_decimal_places_min","","異常系","最小値が最大値より大きいでValidationErrorがスローされること","最小値 > 最大値","value=5（最大値=4）","ValidationErrorがスローされる","中","小数点桁数バリデーション"
"131","UT-COM-131","common.validators.validate_decimal_places_max","","正常系","最大値が最小値以上で検証成功","最大値 >= 最小値","value=4（最小値=2）","例外なし","中","小数点桁数バリデーション"
"132","UT-COM-132","common.validators.validate_decimal_places_max","","異常系","最大値が最小値より小さいでValidationErrorがスローされること","最大値 < 最小値","value=1（最小値=2）","ValidationErrorがスローされる","中","小数点桁数バリデーション"
"133","UT-COM-133","common.validators.validate_email_domains","","正常系","有効なドメインリストで検証成功","有効なドメイン形式","@example.com,@test.org","例外なし","中","メールドメインバリデーション"
"134","UT-COM-134","common.validators.validate_email_domains","","異常系","空のドメインでValidationErrorがスローされること","空ドメインを含む","@example.com,,@test.org","ValidationErrorがスローされる","中","メールドメインバリデーション"
"135","UT-COM-135","common.validators.validate_email_domains","","異常系","無効なドメイン形式でValidationErrorがスローされること","@で始まらない","example.com","ValidationErrorがスローされる","中","メールドメインバリデーション"
"136","UT-COM-136","common.validators.validate_icon","","正常系","有効なアイコンで検証成功","有効なアイコン形式","ti:home:outline","例外なし","中","アイコンバリデーション"
"137","UT-COM-137","common.validators.validate_icon","","正常系","空文字で検証成功（空は許容）","空文字列","value=""""","例外なし","低","空値許容"
"138","UT-COM-138","common.validators.validate_icon","","正常系","Noneで検証成功（Noneは許容）","None","value=None","例外なし","低","Null許容"
"139","UT-COM-139","common.validators.validate_uppercase","","正常系","大文字で検証成功","大文字文字列","value=""ABC""","例外なし","中","大文字バリデーション"
"140","UT-COM-140","common.validators.validate_uppercase","","異常系","小文字を含むでValidationErrorがスローされること","小文字を含む","value=""abc""","ValidationErrorがスローされる","中","大文字バリデーション"
"141","UT-COM-141","common.validators.validate_variable_string","","正常系","有効な識別子で検証成功","有効な変数名","value=""valid_name""","例外なし","中","識別子バリデーション"
"142","UT-COM-142","common.validators.validate_variable_string","","異常系","数字始まりでValidationErrorがスローされること","数字で始まる","value=""1invalid""","ValidationErrorがスローされる","中","識別子バリデーション"
"143","UT-COM-143","common.validators.validate_variable_string","","異常系","特殊文字を含むでValidationErrorがスローされること","特殊文字を含む","value=""inv@lid""","ValidationErrorがスローされる","中","識別子バリデーション"
"144","UT-COM-144","common.currency.currency_code_default","","正常系","デフォルト通貨コードが返却されること","INVENTREE_DEFAULT_CURRENCY設定済み","create=True","設定された通貨コードが返却される","高","デフォルト通貨取得"
"145","UT-COM-145","common.currency.currency_code_default","","正常系","未設定時にUSDが返却されること","INVENTREE_DEFAULT_CURRENCY未設定","create=True","USDが返却される","中","デフォルト通貨フォールバック"
"146","UT-COM-146","common.currency.currency_codes","","正常系","設定された通貨コードリストが返却されること","CURRENCY_CODES設定済み","なし","設定された通貨コードリストが返却される","高","通貨コードリスト取得"
"147","UT-COM-147","common.currency.currency_codes","","正常系","未設定時にデフォルトリストが返却されること","CURRENCY_CODES未設定","なし","デフォルト通貨コードリストが返却される","中","通貨コードフォールバック"
"148","UT-COM-148","common.currency.currency_codes","","正常系","無効なコードが除外されること","無効なコードを含む","CURRENCY_CODES=""USD,INVALID,EUR""","[USD, EUR]が返却される","中","無効コード除外"
"149","UT-COM-149","common.currency.currency_codes","","正常系","重複コードが除外されること","重複コードを含む","CURRENCY_CODES=""USD,USD,EUR""","[USD, EUR]が返却される","中","重複コード除外"
"150","UT-COM-150","common.currency.validate_currency_codes","","正常系","有効な通貨コードで検証成功","有効なコードのみ","USD,EUR,JPY","[USD, EUR, JPY]が返却される","高","通貨コードバリデーション"
"151","UT-COM-151","common.currency.validate_currency_codes","","異常系","無効な通貨コードでValidationErrorがスローされること","無効なコードを含む","USD,INVALID","ValidationErrorがスローされる","高","通貨コードバリデーション"
"152","UT-COM-152","common.currency.validate_currency_codes","","異常系","重複コードでValidationErrorがスローされること","重複コードを含む","USD,USD","ValidationErrorがスローされる","中","重複コードバリデーション"
"153","UT-COM-153","common.currency.validate_currency_codes","","異常系","空のコードリストでValidationErrorがスローされること","コードリストが空","なし","ValidationErrorがスローされる","中","空リストバリデーション"
"154","UT-COM-154","common.currency.get_price","","正常系","価格帯に基づく価格が計算されること","価格帯が設定済み","quantity=10, currency=""USD""","正しい価格が返却される","高","価格計算"
"155","UT-COM-155","common.currency.get_price","","正常系","最小価格帯が使用されること","数量が最小価格帯未満","quantity=1","最小価格帯の価格が返却される","中","最小価格帯適用"
"156","UT-COM-156","common.currency.get_price","","正常系","最適な価格帯が選択されること","複数の価格帯が存在","quantity=100","最適な価格帯の価格が返却される","高","価格帯選択"
"157","UT-COM-157","common.currency.get_price","","境界値","価格帯がない場合Noneが返却されること","価格帯が存在しない","なし","Noneが返却される","中","価格帯不在時の処理"
"158","UT-COM-158","common.notifications.trigger_notification","","正常系","通知が送信されること","ターゲットユーザーが存在","obj, category, targets","通知が送信される","高","通知送信"
"159","UT-COM-159","common.notifications.trigger_notification","","正常系","最近送信済みの場合スキップされること","同じ通知が24時間以内に送信済み","check_recent=True","通知がスキップされる","高","重複通知防止"
"160","UT-COM-160","common.notifications.trigger_notification","","正常系","非アクティブユーザーが除外されること","非アクティブユーザーをターゲットに含む","targets=[inactive_user]","非アクティブユーザーには通知されない","高","非アクティブユーザー除外"
"161","UT-COM-161","common.notifications.trigger_notification","","正常系","Groupインスタンスがユーザーに展開されること","Groupをターゲットに指定","targets=[group]","グループ内の全ユーザーに通知される","中","グループ展開"
"162","UT-COM-162","common.notifications.trigger_notification","","正常系","Ownerインスタンスがユーザーに展開されること","Ownerをターゲットに指定","targets=[owner]","Ownerの関連ユーザーに通知される","中","Owner展開"
"163","UT-COM-163","common.icons.get_icon_packs","","正常系","アイコンパックが返却されること","アイコンファイルが存在","なし","アイコンパック辞書が返却される","中","アイコンパック取得"
"164","UT-COM-164","common.icons.reload_icon_packs","","正常系","アイコンパックが再読み込みされること","アイコンパックがキャッシュ済み","なし","キャッシュがクリアされ再読み込みされる","低","アイコンパック再読み込み"
"165","UT-COM-165","common.icons.validate_icon","","正常系","有効なアイコンで検証成功","有効なアイコン形式","pack:name:variant","(IconPack, Icon, variant)が返却される","中","アイコンバリデーション"
"166","UT-COM-166","common.icons.validate_icon","","異常系","無効なフォーマットでValidationErrorがスローされること","コロン区切りでない","invalid_format","ValidationErrorがスローされる","中","フォーマットバリデーション"
"167","UT-COM-167","common.icons.validate_icon","","異常系","無効なパックでValidationErrorがスローされること","存在しないパック","invalid_pack:name:variant","ValidationErrorがスローされる","中","パックバリデーション"
"168","UT-COM-168","common.icons.validate_icon","","異常系","無効なアイコン名でValidationErrorがスローされること","存在しないアイコン名","ti:invalid_name:outline","ValidationErrorがスローされる","中","アイコン名バリデーション"
"169","UT-COM-169","common.icons.validate_icon","","異常系","無効なバリアントでValidationErrorがスローされること","存在しないバリアント","ti:home:invalid_variant","ValidationErrorがスローされる","中","バリアントバリデーション"
"170","UT-COM-170","common.settings.get_global_setting","","正常系","設定値が取得できること","設定が存在","key=""TEST_KEY""","設定値が返却される","高","設定取得"
"171","UT-COM-171","common.settings.get_global_setting","","正常系","環境変数からオーバーライド値が取得できること","環境変数が設定済み","environment_key=""ENV_KEY""","環境変数の値が返却される","高","環境変数オーバーライド"
"172","UT-COM-172","common.settings.set_global_setting","","正常系","設定値が設定されること","データベースが利用可能","key=""TEST_KEY"", value=""value""","設定値が更新される","高","設定更新"
"173","UT-COM-173","common.settings.set_global_warning","","正常系","グローバル警告が設定されること","データベースが利用可能","key=""WARNING_CODE""","警告が設定される","中","警告設定"
"174","UT-COM-174","common.settings.set_global_warning","","異常系","キー未指定でValueErrorがスローされること","キーがNone","key=None","ValueErrorがスローされる","中","キーバリデーション"
"175","UT-COM-175","common.settings.stock_expiry_enabled","","正常系","在庫期限機能の有効/無効が返却されること","STOCK_ENABLE_EXPIRY設定済み","なし","True/Falseが返却される","中","機能フラグ取得"
"176","UT-COM-176","common.tasks.cleanup_old_data_outputs","","正常系","5日以上前の出力が削除されること","古いDataOutputが存在","なし","古いDataOutputが削除される","中","古いデータ削除"
"177","UT-COM-177","common.tasks.delete_old_notifications","","正常系","90日以上前の通知エントリが削除されること","古いNotificationEntryが存在","なし","古いNotificationEntryが削除される","中","古い通知削除"
"178","UT-COM-178","common.tasks.update_news_feed","","正常系","ニュースフィードが更新されること","INVENTREE_NEWS_URLが設定済み","なし","新しいニュースエントリが作成される","低","ニュースフィード更新"
"179","UT-COM-179","common.tasks.update_news_feed","","正常系","既存のニュースエントリがスキップされること","同じfeed_idが存在","なし","重複エントリが作成されない","低","重複エントリ防止"
"180","UT-COM-180","common.tasks.delete_old_notes_images","","正常系","リンクされていない古い画像が削除されること","90日以上前の未リンク画像が存在","なし","未リンク画像が削除される","中","未リンク画像削除"
"181","UT-COM-181","common.tasks.delete_old_notes_images","","正常系","存在しないファイルへの参照が削除されること","ファイルが存在しない参照が存在","なし","参照が削除される","中","孤児参照削除"
"182","UT-COM-182","common.tasks.rebuild_parameters","","正常系","テンプレート変更時にパラメータが再計算されること","ParameterTemplateが更新済み","template_id","関連パラメータのdata_numericが更新される","高","パラメータ再計算"
"183","UT-COM-183","common.serializers.SettingsValueField","to_representation","正常系","保護された設定で***が返却されること","protected=True","なし","***が返却される","高","保護値のマスキング"
"184","UT-COM-184","common.serializers.SettingsValueField","to_representation","正常系","ブール値がネイティブ型で返却されること","is_bool=True, value=""True""","なし","Trueが返却される","中","型変換"
"185","UT-COM-185","common.serializers.SettingsValueField","to_representation","正常系","整数値がネイティブ型で返却されること","is_int=True, value=""42""","なし","42が返却される","中","型変換"
"186","UT-COM-186","common.serializers.SettingsValueField","to_internal_value","正常系","Noneが空文字に変換されること","value=None","なし","空文字が返却される","中","Null処理"
"187","UT-COM-187","common.serializers.SettingsSerializer","is_valid","正常系","確認が必要な設定で確認なしでエラーがスローされること","confirm=True, manual_confirm未提供","なし","ValidationErrorがスローされる","高","確認必須バリデーション"
"188","UT-COM-188","common.serializers.AttachmentSerializer","save","正常系","有効なモデルタイプで保存できること","model_typeが有効","model_type=""part""","正常に保存される","高","添付保存"
"189","UT-COM-189","common.serializers.AttachmentSerializer","save","異常系","権限不足でPermissionDeniedがスローされること","change権限がない","user without permission","PermissionDeniedがスローされる","高","権限チェック"
"190","UT-COM-190","common.serializers.SelectionListSerializer","is_valid","正常系","選択肢が個別にバリデーションされること","choices配列が提供","choices=[{...}]","各選択肢がバリデーションされる","中","選択肢バリデーション"
"191","UT-COM-191","common.serializers.SelectionListSerializer","create","正常系","選択リストと選択肢が作成されること","有効なデータ","name, choices","SelectionListとEntryが作成される","中","作成処理"
"192","UT-COM-192","common.serializers.SelectionListSerializer","update","正常系","選択リストと選択肢が更新されること","既存のSelectionList","更新データ","SelectionListとEntryが更新される","中","更新処理"
"193","UT-COM-193","common.serializers.SelectionListSerializer","validate","異常系","ロックされたリストでValidationErrorがスローされること","locked=True","更新データ","ValidationErrorがスローされる","高","ロック状態チェック"
"194","UT-COM-194","common.serializers.ParameterSerializer","save","正常系","パラメータが保存されること","有効なデータ","template, model_type, data","Parameterが保存される","高","パラメータ保存"
"195","UT-COM-195","common.serializers.ParameterSerializer","save","異常系","無効なモデルタイプでPermissionDeniedがスローされること","無効なmodel_type","model_type=無効","PermissionDeniedがスローされる","高","モデルタイプバリデーション"
"196","UT-COM-196","common.serializers.ParameterSerializer","save","異常系","権限不足でPermissionDeniedがスローされること","change権限がない","user without permission","PermissionDeniedがスローされる","高","権限チェック"
