---
generated_at: 2026-01-29 19:30:00
metrics:
  claims_total: 170
  claims_with_evidence: 168
  claims_without_evidence: 2
confidence_derived: 0.99
---

# 根拠レポート：part.csv（単体テストケース一覧）

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードに対応するメソッド・プロパティが実際に存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：主要なクラス・メソッドを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.99**
  - 根拠あり：168 / 170、根拠なし：2
- 優先レビュー（高）
  1. **UT-PRT-153〜154（notify_low_stock）**：タスク関数の内部動作は実行環境依存
  2. **UT-PRT-168〜170（perform_stocktake）**：設定値依存の動作確認が必要

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

- E-01: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/part/models.py` - メインモデル定義（PartCategory, Part, PartPricing, BomItem等）
- E-02: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/part/tasks.py` - バックグラウンドタスク定義
- E-03: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/part/helpers.py` - ヘルパー関数
- E-04: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/part/stocktake.py` - 棚卸機能

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

### PartCategory関連 (UT-PRT-001〜012)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | PartCategory.deleteメソッドが子カテゴリの削除を制御できる | E-01 L96-104 | ○ |
| C-02 | PartCategory.cleanでstructuralカテゴリのバリデーション | E-01 L174-186 | ○ |
| C-03 | PartCategory.get_partsでカスケード取得 | E-01 L188-205 | ○ |
| C-04 | PartCategory.partcountでアクティブフィルタ | E-01 L216-223 | ○ |
| C-05 | PartCategory.iconプロパティ | E-01 L143-163 | ○ |
| C-06 | PartCategory.get_subscribers | E-01 L293-313 | ○ |
| C-07 | PartCategory.is_starred_by | E-01 L315-317 | ○ |
| C-08 | PartCategory.set_starred | E-01 L319-332 | ○ |

### PartCategoryParameterTemplate関連 (UT-PRT-013〜014)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | PartCategoryParameterTemplate.cleanでdefault_value検証 | E-01 L384-407 | ○ |

### Part関連 (UT-PRT-015〜090)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | Part.deleteでロックチェック | E-01 L582-602 | ○ |
| C-11 | Part.saveで画像削除・ensure_trackable | E-01 L604-639 | ○ |
| C-12 | Part.check_add_to_bomで循環参照防止 | E-01 L667-718 | ○ |
| C-13 | Part.validate_name/validate_ipn | E-01 L720-769 | ○ |
| C-14 | Part.validate_revision | E-01 L771-812 | ○ |
| C-15 | Part.validate_serial_number | E-01 L814-916 | ○ |
| C-16 | Part.find_conflicting_serial_numbers | E-01 L918-952 | ○ |
| C-17 | Part.get_latest_serial_number/get_next_serial_number | E-01 L954-1004 | ○ |
| C-18 | Part.full_nameプロパティ | E-01 L1006-1009 | ○ |
| C-19 | Part.validate_unique | E-01 L1015-1062 | ○ |
| C-20 | Part.clean | E-01 L1064-1096 | ○ |
| C-21 | Part.ensure_trackable | E-01 L1098-1105 | ○ |
| C-22 | Part.get_default_location | E-01 L1197-1215 | ○ |
| C-23 | Part.get_default_supplier | E-01 L1217-1231 | ○ |
| C-24 | Part.available_stock | E-01 L1381-1390 | ○ |
| C-25 | Part.requiring_build_orders/required_build_order_quantity | E-01 L1392-1459 | ○ |
| C-26 | Part.requiring_sales_orders/required_sales_order_quantity | E-01 L1461-1511 | ○ |
| C-27 | Part.quantity_to_order | E-01 L1519-1546 | ○ |
| C-28 | Part.net_stock | E-01 L1548-1559 | ○ |
| C-29 | Part.get_subscribers/is_starred_by/set_starred | E-01 L1561-1617 | ○ |
| C-30 | Part.can_build | E-01 L1619-1649 | ○ |
| C-31 | Part.active_builds/quantity_being_built | E-01 L1651-1686 | ○ |
| C-32 | Part.build_order_allocations/build_order_allocation_count | E-01 L1716-1740 | ○ |
| C-33 | Part.sales_order_allocations/sales_order_allocation_count | E-01 L1742-1784 | ○ |
| C-34 | Part.allocation_count | E-01 L1786-1795 | ○ |
| C-35 | Part.stock_entries/get_stock_count/total_stock | E-01 L1797-1845 | ○ |
| C-36 | Part.get_bom_items/get_bom_item_filter | E-01 L1847-1901 | ○ |
| C-37 | Part.get_used_in | E-01 L1959-1989 | ○ |
| C-38 | Part.has_bom/bom_count/used_in_count | E-01 L1991-2019 | ○ |
| C-39 | Part.get_bom_hash/is_bom_valid/validate_bom | E-01 L2021-2077 | ○ |
| C-40 | Part.clear_bom | E-01 L2079-2085 | ○ |
| C-41 | Part.pricing/update_pricing/schedule_pricing_update | E-01 L2115-2168 | ○ |
| C-42 | Part.get_price_range/get_supplier_price_range/get_bom_price_range | E-01 L2170-2312 | ○ |
| C-43 | Part.copy_bom_from | E-01 L2397-2457 | ○ |
| C-44 | Part.copy_tests_from | E-01 L2459-2484 | ○ |
| C-45 | Part.getTestTemplates/getTestTemplateMap/getRequiredTests | E-01 L2522-2571 | ○ |
| C-46 | Part.on_order | E-01 L2596-2619 | ○ |
| C-47 | Part.has_variants/get_all_variants | E-01 L2621-2628 | ○ |
| C-48 | Part.get_conversion_options | E-01 L2641-2672 | ○ |
| C-49 | Part.get_related_parts/related_count | E-01 L2674-2695 | ○ |
| C-50 | Part.is_part_low_on_stock | E-01 L2697-2699 | ○ |

### PartPricing関連 (UT-PRT-091〜103)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | PartPricing.is_valid | E-01 L2758-2761 | ○ |
| C-52 | PartPricing.convert | E-01 L2763-2783 | ○ |
| C-53 | PartPricing.schedule_for_update | E-01 L2785-2869 | ○ |
| C-54 | PartPricing.update_pricing | E-01 L2871-2927 | ○ |
| C-55 | PartPricing.update_bom_cost | E-01 L2962-3040 | ○ |
| C-56 | PartPricing.update_purchase_cost | E-01 L3042-3106 | ○ |
| C-57 | PartPricing.update_internal_cost | E-01 L3108-3132 | ○ |
| C-58 | PartPricing.update_supplier_cost | E-01 L3134-3167 | ○ |
| C-59 | PartPricing.update_variant_cost | E-01 L3169-3202 | ○ |
| C-60 | PartPricing.update_overall_cost | E-01 L3204-3271 | ○ |
| C-61 | PartPricing.update_sale_cost | E-01 L3273-3325 | ○ |

### その他モデル関連 (UT-PRT-104〜152)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | PartStocktakeモデル | E-01 L3471-3520 | ○ |
| C-63 | PartSellPriceBreak/PartInternalPriceBreak | E-01 L3523-3564 | ○ |
| C-64 | PartStar/PartCategoryStar | E-01 L3567-3622 | ○ |
| C-65 | PartTestTemplate（save, clean, validate_unique, get_choices） | E-01 L3625-3785 | ○ |
| C-66 | BomItem（全メソッド） | E-01 L3788-4300 | ○ |
| C-67 | BomItemSubstitute | E-01 L4353-4408 | ○ |
| C-68 | PartRelated | E-01 L4411-4463 | ○ |

### タスク関連 (UT-PRT-153〜161)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | notify_low_stock | E-02 L29-55 | ○ |
| C-70 | notify_low_stock_if_required | E-02 L134-155 | ○ |
| C-71 | update_part_pricing | E-02 L228-242 | ○ |
| C-72 | check_missing_pricing | E-02 L245-305 | ○ |
| C-73 | rebuild_supplier_parts | E-02 L358-386 | ○ |
| C-74 | check_bom_valid | E-02 L389-408 | ○ |
| C-75 | validate_bom | E-02 L411-440 | ○ |

### ヘルパー関連 (UT-PRT-162〜167)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | compile_full_name_template | E-03 L20-52 | ○ |
| C-77 | render_part_full_name | E-03 L55-77 | ○ |
| C-78 | get_part_image_directory | E-03 L84-100 | ○ |

### 棚卸関連 (UT-PRT-168〜170)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-79 | perform_stocktake | E-04 L10-104 | ○ |
| C-80 | 当日棚卸済みスキップロジック | E-04 L41-44 | △ |
| C-81 | 外部在庫除外オプション | E-04 L21-22 | △ |

## 4) 不足情報（Unknown / Missing）

- **C-80, C-81**: 棚卸機能の設定値依存ロジックは、実際の設定環境によって動作が変わるため、テスト時に適切なモック/設定が必要
  - 候補：グローバル設定のモック / テスト用設定ファイル / 統合テスト

## 5) リスクフラグ（レビュー観点）

| リスクレベル | 項目 | 理由 |
|-------------|------|------|
| 0 (低) | プロパティテスト | 単純なgetterのため |
| 0 (低) | 文字列表現テスト | __str__メソッドの検証 |
| 1 (中) | バリデーションテスト | ValidationError発生条件の確認が必要 |
| 1 (中) | リレーションテスト | 外部キー・多対多関係の整合性 |
| 2 (高) | 在庫計算テスト | ビジネスロジックの正確性が重要 |
| 2 (高) | 価格計算テスト | 金額計算の精度が重要 |
| 2 (高) | BOMチェックサムテスト | データ整合性に直結 |
| 2 (高) | 循環参照防止テスト | システム安定性に影響 |

## 6) レビュアーチェックリスト（最小）

- [ ] PartCategory.delete: 階層構造の整合性テストが十分か確認
- [ ] Part.validate_serial_number: グローバルユニーク設定両パターンのテストを確認
- [ ] Part.allocation_count: ビルドオーダー・販売オーダー両方の割当を考慮しているか確認
- [ ] PartPricing.update_*: 各種コスト計算ロジックが網羅されているか確認
- [ ] BomItem.clean: 循環参照チェックの再帰的検証が含まれているか確認
- [ ] BomItem.get_required_quantity: attrition/setup_quantity/rounding_multipleの組み合わせテストを確認
- [ ] PartTestTemplate.validate_unique: パーツツリー全体でのユニーク制約テストを確認
- [ ] perform_stocktake: バルク作成処理の境界条件テストを確認
