---
generated_at: 2026-01-29 20:15:00
metrics:
  claims_total: 168
  claims_with_evidence: 168
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：InvenTree単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコード内のメソッド・関数定義が存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：主要なクラス・メソッドがテストケースでカバーされているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：168 / 168、根拠なし：0
- 優先レビュー（高）
  1. **テストケース全般**：すべてのテストケースがソースコードに基づいて生成されている
  2. **セキュリティ関連テスト（C-78, C-79, C-163, C-164）**：HTMLタグ除去・Markdownサニタイズの検証
  3. **バーコード関連テスト（C-53〜C-58）**：バーコード割り当て・検索の検証

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/models.py`
- E-02: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/helpers.py`
- E-03: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/helpers_model.py`
- E-04: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/helpers_mixin.py`
- E-05: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/tasks.py`
- E-06: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/serializers.py`
- E-07: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/validators.py`
- E-08: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/fields.py`
- E-09: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/permissions.py`
- E-10: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/backends.py`
- E-11: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/conversion.py`
- E-12: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/InvenTree/format.py`

## 3) Claims と根拠の対応（レビューの主戦場）

### モデル関連（models.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01〜C-06 | DiffMixin のメソッド（get_db_instance, get_field_deltas, has_field_changed） | E-01 (L39-87) | ○ |
| C-07〜C-11 | PluginValidationMixin のメソッド（run_plugin_validation, full_clean, save, delete） | E-01 (L89-152) | ○ |
| C-12〜C-18 | MetadataMixin のメソッド（validate_metadata, get_metadata, set_metadata） | E-01 (L155-238) | ○ |
| C-19〜C-28 | ReferenceIndexingMixin のメソッド（get_reference_pattern, get_next_reference, generate_reference, validate_reference_pattern, validate_reference_field, rebuild_reference_field） | E-01 (L240-452) | ○ |
| C-29〜C-34 | InvenTreeParameterMixin のメソッド（parameters, copy_parameters_from, get_parameter, parameters_map） | E-01 (L510-648) | ○ |
| C-35〜C-37 | InvenTreeAttachmentMixin のメソッド（attachments, create_attachment, delete） | E-01 (L650-690) | ○ |
| C-38〜C-46 | InvenTreeTree のメソッド（save, delete, getNextTreeID, partial_rebuild） | E-01 (L692-996) | ○ |
| C-47〜C-50 | PathStringMixin のメソッド（construct_pathstring, validate_unique, path） | E-01 (L998-1190) | ○ |
| C-51 | InvenTreeNotesMixin の delete メソッド | E-01 (L1192-1234) | ○ |
| C-52〜C-58 | InvenTreeBarcodeMixin のメソッド（barcode_model_type, format_barcode, lookup_barcode, assign_barcode, unassign_barcode） | E-01 (L1237-1373) | ○ |
| C-59〜C-61 | InvenTreeImageMixin のメソッド（get_image_url, get_thumbnail_url） | E-01 (L1470-1520) | ○ |

### ヘルパー関数（helpers.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62〜C-65 | extract_int 関数 | E-02 (L43-128) | ○ |
| C-66〜C-69 | increment 関数 | E-02 (L369-416) | ○ |
| C-70〜C-71 | str2bool 関数 | E-02 (L315-327) | ○ |
| C-72〜C-73 | normalize 関数 | E-02 (L355-366) | ○ |
| C-74〜C-76 | clean_decimal 関数 | E-02 (L844-881) | ○ |
| C-77 | hash_barcode 関数 | E-02 (L986-999) | ○ |
| C-78〜C-79 | strip_html_tags 関数 | E-02 (L884-904) | ○ |
| C-80〜C-81 | validateFilterString 関数 | E-02 (L778-841) | ○ |
| C-82〜C-87 | extract_serial_numbers 関数 | E-02 (L569-775) | ○ |
| C-150〜C-151 | constructPathString 関数 | E-02 (L162-176) | ○ |
| C-152〜C-153 | generateTestKey 関数 | E-02 (L131-159) | ○ |
| C-154〜C-155 | getMediaUrl 関数 | E-02 (L179-191) | ○ |
| C-156〜C-157 | TestIfImage 関数 | E-02 (L232-238) | ○ |
| C-158 | decimal2string 関数 | E-02 (L419-444) | ○ |
| C-159 | decimal2money 関数 | E-02 (L447-459) | ○ |
| C-160〜C-162 | current_time, to_local_time 関数 | E-02 (L1002-1072) | ○ |
| C-163〜C-164 | clean_markdown 関数 | E-02 (L927-983) | ○ |

### ヘルパーモデル（helpers_model.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-88〜C-90 | get_base_url, construct_absolute_url 関数 | E-03 (L38-88) | ○ |
| C-91〜C-93 | download_image_from_url 関数 | E-03 (L91-187) | ○ |
| C-94〜C-95 | render_currency 関数 | E-03 (L190-266) | ○ |

### ヘルパーMixin（helpers_mixin.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-96〜C-97 | ClassValidationMixin.validate メソッド | E-04 (L14-83) | ○ |

### タスク（tasks.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-98〜C-99 | schedule_task 関数 | E-05 (L41-69) | ○ |
| C-100〜C-102 | offload_task 関数 | E-05 (L162-265) | ○ |
| C-103〜C-105 | check_daily_holdoff 関数 | E-05 (L81-147) | ○ |
| C-106 | heartbeat タスク | E-05 (L348-374) | ○ |
| C-107 | delete_successful_tasks タスク | E-05 (L377-397) | ○ |
| C-108 | delete_failed_tasks タスク | E-05 (L400-418) | ○ |
| C-109〜C-110 | check_for_migrations 関数 | E-05 (L671-753) | ○ |

### シリアライザ（serializers.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-111〜C-113 | InvenTreeModelSerializer のメソッド（run_validation, skip_create_fields） | E-06 (L483-646) | ○ |
| C-114〜C-115 | InvenTreeMoneySerializer.get_value メソッド | E-06 (L292-345) | ○ |
| C-116〜C-117 | InvenTreeDecimalField.to_internal_value メソッド | E-06 (L713-732) | ○ |
| C-118〜C-119 | ContentTypeField.to_internal_value メソッド | E-06 (L800-890) | ○ |
| C-165〜C-166 | FilterableSerializerMixin のメソッド（gather_filters, do_filtering） | E-06 (L102-241) | ○ |
| C-167〜C-168 | RemoteImageMixin.validate_remote_image メソッド | E-06 (L755-797) | ○ |

### バリデータ（validators.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-120〜C-121 | validate_physical_units 関数 | E-07 (L15-28) | ○ |
| C-122〜C-123 | validate_currency_code 関数 | E-07 (L31-34) | ○ |
| C-124〜C-125 | AllowedURLValidator クラス | E-07 (L56-75) | ○ |

### フィールド（fields.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-126 | InvenTreeModelMoneyField.to_python メソッド | E-08 (L88-129) | ○ |
| C-127 | RoundingDecimalField.to_python メソッド | E-08 (L194-206) | ○ |
| C-128〜C-129 | round_decimal 関数 | E-08 (L163-175) | ○ |

### パーミッション（permissions.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-130〜C-132 | RolePermission.has_permission メソッド | E-09 (L192-251) | ○ |

### バックエンド（backends.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-143〜C-146 | InvenTreeMaintenanceModeBackend のメソッド（get_value, set_value） | E-10 (L22-90) | ○ |

### 単位変換（conversion.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-133 | get_unit_registry 関数 | E-11 (L80-94) | ○ |
| C-134〜C-135 | convert_physical_value 関数 | E-11 (L216-306) | ○ |
| C-136 | from_engineering_notation 関数 | E-11 (L158-184) | ○ |

### フォーマット（format.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-137〜C-138 | parse_format_string 関数 | E-12 (L16-42) | ○ |
| C-139〜C-140 | validate_string 関数 | E-12 (L127-144) | ○ |
| C-141〜C-142 | extract_named_group 関数 | E-12 (L147-182) | ○ |

### 通知処理（models.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-147 | notify_staff_users_of_error 関数 | E-01 (L1375-1406) | ○ |
| C-148 | after_failed_task シグナルハンドラ | E-01 (L1408-1439) | ○ |
| C-149 | after_error_logged シグナルハンドラ | E-01 (L1442-1467) | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし - すべてのテストケースがソースコードに基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: すべてのテストケースがソースコードの実装に基づいており、主要なメソッド・関数がカバーされています
- テスト優先度「高」のケースは特に重点的にレビューを推奨します

## 6) レビュアーチェックリスト（最小）
- [ ] セキュリティ関連テスト（strip_html_tags, clean_markdown）の期待結果が適切か
- [ ] バーコード割り当て・検索の異常系テストが網羅的か
- [ ] 金額計算関連のテスト（InvenTreeMoneySerializer, render_currency）の精度が十分か
- [ ] パーミッション関連テスト（RolePermission）のロール定義が実際の運用と整合しているか
- [ ] ツリー構造関連テスト（InvenTreeTree, PathStringMixin）の削除時動作が期待通りか
- [ ] マイグレーション関連テスト（check_for_migrations）がCI環境で適切に動作するか
