"No","テストID","対象クラス","対象メソッド","テスト観点","テストケース名","前提条件","入力値","期待結果","優先度","備考"
"1","UT-RPT-001","report.models.TemplateUploadMixin","template_name","正常系","テンプレートファイル名が正しく返却されること","テンプレートファイルが設定済み","template='/report/test.html'","完全なファイルパスが返却される","中","プロパティメソッド"
"2","UT-RPT-002","report.models.TemplateUploadMixin","template_name","正常系","パス区切り文字が正しく変換されること","テンプレートパスにスラッシュが含まれる","template='report/subdir/test.html'","OS依存のパス区切り文字に変換される","中","クロスプラットフォーム対応"
"3","UT-RPT-003","report.models.TemplateUploadMixin","extension","正常系","テンプレートの拡張子が正しく返却されること","テンプレートファイルが設定済み","template='test.html'","'.html'が返却される","低","拡張子取得"
"4","UT-RPT-004","report.models.TemplateUploadMixin","extension","境界値","大文字拡張子が小文字に変換されること","テンプレートファイルが設定済み","template='test.HTML'","'.html'が返却される","低","拡張子の正規化"
"5","UT-RPT-005","report.models.TemplateUploadMixin","get_upload_path","正常系","アップロードパスが正しく生成されること","SUBDIRが設定済み","filename='test.html'","'report/{SUBDIR}/test.html'が返却される","中","ファイルパス生成"
"6","UT-RPT-006","report.models.TemplateUploadMixin","check_existing_file","正常系","重複ファイルが存在する場合Trueが返却されること","同名テンプレートが存在する","path='existing.html'","Trueが返却される","高","重複チェック"
"7","UT-RPT-007","report.models.TemplateUploadMixin","check_existing_file","正常系","重複ファイルが存在しない場合Falseが返却されること","同名テンプレートが存在しない","path='new.html'","Falseが返却される","高","重複チェック"
"8","UT-RPT-008","report.models.TemplateUploadMixin","check_existing_file","異常系","重複時にraise_error=TrueでValidationErrorが発生すること","同名テンプレートが存在する","path='existing.html', raise_error=True","ValidationErrorがスローされる","高","重複エラー処理"
"9","UT-RPT-009","report.models.TemplateUploadMixin","validate_unique","異常系","重複テンプレートで検証エラーが発生すること","同名テンプレートが存在する","なし","ValidationErrorがスローされる","高","一意性検証"
"10","UT-RPT-010","report.models.ReportTemplateBase","save","正常系","保存時にリビジョンがインクリメントされること","revision=1のテンプレートが存在","save()を呼び出し","revision=2になる","高","リビジョン管理"
"11","UT-RPT-011","report.models.ReportTemplateBase","generate_filename","正常系","コンテキストからファイル名が生成されること","filename_pattern='{{ date }}.pdf'","context={'date': '2024-01-01'}","'2024-01-01.pdf'が返却される","中","ファイル名生成"
"12","UT-RPT-012","report.models.ReportTemplateBase","generate_filename","境界値","空のコンテキストでデフォルトパターンが使用されること","filename_pattern='output.pdf'","context={}","'output.pdf'が返却される","中","デフォルトファイル名"
"13","UT-RPT-013","report.models.ReportTemplateBase","render_as_string","正常系","HTMLが正しくレンダリングされること","テンプレートファイルが存在","instance, request","HTML文字列が返却される","高","HTMLレンダリング"
"14","UT-RPT-014","report.models.ReportTemplateBase","render_as_string","正常系","コンテキストが正しく適用されること","テンプレートに変数が含まれる","instance, request, context","変数が展開されたHTMLが返却される","高","コンテキスト適用"
"15","UT-RPT-015","report.models.ReportTemplateBase","render","正常系","PDFデータが正しく生成されること","テンプレートファイルが存在","instance, request","PDFバイトデータが返却される","高","PDF生成"
"16","UT-RPT-016","report.models.ReportTemplateBase","clean","正常系","有効なmodel_typeとfiltersで検証が成功すること","正しいmodel_typeが設定済み","filters='active=True'","エラーなし","高","モデル検証"
"17","UT-RPT-017","report.models.ReportTemplateBase","clean","異常系","無効なfiltersでValidationErrorが発生すること","model_typeが設定済み","filters='invalid_filter'","ValidationErrorがスローされる","高","フィルタ検証"
"18","UT-RPT-018","report.models.ReportTemplateBase","get_model","正常系","model_typeから正しいモデルクラスが返却されること","model_type='part'が設定済み","なし","Partモデルクラスが返却される","中","モデル取得"
"19","UT-RPT-019","report.models.ReportTemplateBase","get_model","異常系","無効なmodel_typeでNoneが返却されること","model_type='invalid'が設定済み","なし","Noneが返却される","中","無効モデル処理"
"20","UT-RPT-020","report.models.ReportTemplateBase","get_filters","正常系","フィルタ辞書が正しく返却されること","filters='active=True'が設定済み","なし","{'active': True}が返却される","中","フィルタ取得"
"21","UT-RPT-021","report.models.ReportTemplateBase","base_context","正常系","基本コンテキストが正しく生成されること","テンプレートが存在","request","base_url, date, datetime, template等を含む辞書が返却される","中","コンテキスト生成"
"22","UT-RPT-022","report.models.ReportTemplateBase","base_context","正常系","requestがnullの場合userがNoneになること","テンプレートが存在","request=None","user=Noneの辞書が返却される","中","Nullリクエスト処理"
"23","UT-RPT-023","report.models.ReportTemplateBase","get_context","正常系","インスタンスコンテキストがマージされること","インスタンスがreport_context()を持つ","instance, request","基本コンテキストとインスタンスコンテキストがマージされる","中","コンテキストマージ"
"24","UT-RPT-024","report.models.ReportTemplate","get_api_url","正常系","APIエンドポイントURLが返却されること","なし","なし","'api-report-template-list'のURLが返却される","低","API URL取得"
"25","UT-RPT-025","report.models.ReportTemplate","get_report_size","正常系","ページサイズが正しく返却されること","page_size='A4'が設定済み","なし","'A4'が返却される","中","ページサイズ取得"
"26","UT-RPT-026","report.models.ReportTemplate","get_report_size","正常系","landscape=Trueでサイズに' landscape'が追加されること","page_size='A4', landscape=True","なし","'A4 landscape'が返却される","中","横向きページサイズ"
"27","UT-RPT-027","report.models.ReportTemplate","get_report_size","境界値","page_sizeが空の場合デフォルト値が使用されること","page_size=''","なし","グローバル設定のデフォルト値が返却される","中","デフォルトページサイズ"
"28","UT-RPT-028","report.models.ReportTemplate","get_report_context","正常系","レポートコンテキストが正しく生成されること","page_size='A4', landscape=False, merge=False","なし","page_size, landscape, mergeを含む辞書が返却される","中","レポートコンテキスト"
"29","UT-RPT-029","report.models.ReportTemplate","get_context","正常系","プラグインコンテキストがマージされること","レポートプラグインが登録済み","instance, request","プラグインからのコンテキストが含まれる","中","プラグインコンテキスト"
"30","UT-RPT-030","report.models.ReportTemplate","get_plugin_context","正常系","登録済みプラグインのコンテキストが追加されること","REPORTミックスインを持つプラグインが存在","instance, request, context","プラグインのadd_report_contextが呼び出される","中","プラグイン連携"
"31","UT-RPT-031","report.models.ReportTemplate","get_plugin_context","異常系","プラグインエラー時にログが記録されること","プラグインがエラーをスロー","instance, request, context","例外がキャッチされログ記録される","中","プラグインエラー処理"
"32","UT-RPT-032","report.models.ReportTemplate","handle_attachment","正常系","attach_to_model=Trueで添付ファイルが作成されること","attach_to_model=True, debug_mode=False","instance, report, report_name, request","create_attachmentが呼び出される","高","添付ファイル作成"
"33","UT-RPT-033","report.models.ReportTemplate","handle_attachment","正常系","debug_mode=Trueで添付ファイルが作成されないこと","attach_to_model=True, debug_mode=True","instance, report, report_name, request","create_attachmentが呼び出されない","中","デバッグモード処理"
"34","UT-RPT-034","report.models.ReportTemplate","handle_attachment","正常系","attach_to_model=Falseで添付ファイルが作成されないこと","attach_to_model=False","instance, report, report_name, request","create_attachmentが呼び出されない","中","添付無効時処理"
"35","UT-RPT-035","report.models.ReportTemplate","notify_plugins","正常系","レポートプラグインに通知されること","REPORTミックスインを持つプラグインが存在","instance, report, request","report_callbackが呼び出される","中","プラグイン通知"
"36","UT-RPT-036","report.models.ReportTemplate","print","正常系","単一アイテムのレポートが生成されること","テンプレートとアイテムが存在","items=[item], request","DataOutputオブジェクトが返却される","高","レポート印刷"
"37","UT-RPT-037","report.models.ReportTemplate","print","正常系","複数アイテムのレポートがマージされること","merge=False, 複数アイテム","items=[item1, item2], request","PDFがマージされたDataOutputが返却される","高","複数レポート印刷"
"38","UT-RPT-038","report.models.ReportTemplate","print","正常系","merge=Trueで単一レポートが生成されること","merge=True, 複数アイテム","items=[item1, item2], request","1つのPDFを含むDataOutputが返却される","高","マージレポート印刷"
"39","UT-RPT-039","report.models.ReportTemplate","print","正常系","debug_modeでHTMLが返却されること","REPORT_DEBUG_MODE=True","items=[item], request","HTML形式のDataOutputが返却される","中","デバッグモード印刷"
"40","UT-RPT-040","report.models.ReportTemplate","print","異常系","テンプレートが存在しない場合ValidationErrorが発生すること","テンプレートファイルが存在しない","items=[item], request","ValidationErrorがスローされる","高","テンプレートエラー"
"41","UT-RPT-041","report.models.ReportTemplate","print","異常系","テンプレート構文エラー時にValidationErrorが発生すること","テンプレートに構文エラー","items=[item], request","ValidationErrorがスローされる","高","構文エラー処理"
"42","UT-RPT-042","report.models.ReportTemplate","print","正常系","progressが正しく更新されること","複数アイテム","items=[item1, item2, item3], request","output.progressが3まで更新される","中","進捗更新"
"43","UT-RPT-043","report.models.ReportTemplate","print","正常系","outputがない場合DataOutputが自動生成されること","output=None","items=[item], request, output=None","新しいDataOutputが作成される","中","DataOutput自動生成"
"44","UT-RPT-044","report.models.LabelTemplate","get_api_url","正常系","APIエンドポイントURLが返却されること","なし","なし","'api-label-template-list'のURLが返却される","低","API URL取得"
"45","UT-RPT-045","report.models.LabelTemplate","generate_page_style","正常系","@pageスタイルが正しく生成されること","width=50, height=20","なし","'@page { size: 50mm 20mm; margin: 0mm; }'が返却される","中","ページスタイル生成"
"46","UT-RPT-046","report.models.LabelTemplate","generate_page_style","正常系","カスタムサイズでスタイルが生成されること","なし","width=100, height=50, margin=5","'@page { size: 100mm 50mm; margin: 5mm; }'が返却される","中","カスタムページスタイル"
"47","UT-RPT-047","report.models.LabelTemplate","get_context","正常系","ラベルコンテキストが正しく生成されること","width=50, height=20","instance, request","width, height, page_styleを含む辞書が返却される","中","ラベルコンテキスト"
"48","UT-RPT-048","report.models.LabelTemplate","get_context","正常系","insert_page_style=Falseでpage_styleがNoneになること","width=50, height=20","instance, request, insert_page_style=False","page_style=Noneの辞書が返却される","中","ページスタイル無効"
"49","UT-RPT-049","report.models.LabelTemplate","get_context","正常系","プラグインのadd_label_contextが呼び出されること","REPORTミックスインを持つプラグインが存在","instance, request","プラグインのコンテキストが追加される","中","プラグインラベルコンテキスト"
"50","UT-RPT-050","report.models.LabelTemplate","print","正常系","ラベルが正しく印刷されること","テンプレートとプラグインが存在","items=[item], plugin, request","DataOutputオブジェクトが返却される","高","ラベル印刷"
"51","UT-RPT-051","report.models.LabelTemplate","print","正常系","before_printingとafter_printingが呼び出されること","プラグインがbefore/after_printingを持つ","items=[item], plugin, request","両メソッドが呼び出される","中","印刷フック"
"52","UT-RPT-052","report.models.LabelTemplate","print","異常系","ValidationError時にoutputが削除されること","プラグインがValidationErrorをスロー","items=[item], plugin, request","output.deleteが呼び出されValidationErrorが再スローされる","高","印刷エラー処理"
"53","UT-RPT-053","report.models.LabelTemplate","print","異常系","一般的な例外時にログ記録とValidationErrorが発生すること","プラグインが例外をスロー","items=[item], plugin, request","log_errorが呼び出されValidationErrorがスローされる","高","例外処理"
"54","UT-RPT-054","report.models.LabelTemplate","print","正常系","optionsがNoneの場合空辞書が使用されること","options=None","items=[item], plugin, options=None","空辞書がプラグインに渡される","中","オプションnull処理"
"55","UT-RPT-055","report.models.ReportSnippet","snippet","正常系","スニペットファイルが正しく保存されること","有効なHTMLファイル","snippet=valid.html","ファイルが保存される","中","スニペット保存"
"56","UT-RPT-056","report.models.ReportSnippet","snippet","異常系","無効な拡張子でValidationErrorが発生すること","無効な拡張子のファイル","snippet=invalid.txt","ValidationErrorがスローされる","中","拡張子検証"
"57","UT-RPT-057","report.models.ReportAsset","asset","正常系","アセットファイルが正しく保存されること","有効な画像ファイル","asset=image.png","ファイルが保存される","中","アセット保存"
"58","UT-RPT-058","report.models.rename_template","","正常系","テンプレートパスが正しく生成されること","インスタンスが存在","instance, filename='test.html'","'report/{SUBDIR}/test.html'が返却される","中","テンプレートリネーム"
"59","UT-RPT-059","report.models.rename_template","","正常系","既存ファイルが削除されること","同名ファイルがストレージに存在","instance, filename='existing.html'","既存ファイルが削除され新パスが返却される","高","既存ファイル削除"
"60","UT-RPT-060","report.models.log_report_error","","正常系","REPORT_LOG_ERRORS=Trueでエラーがログされること","REPORT_LOG_ERRORS=True","args, kwargs","log_errorが呼び出される","中","エラーログ記録"
"61","UT-RPT-061","report.models.log_report_error","","正常系","REPORT_LOG_ERRORS=Falseでログされないこと","REPORT_LOG_ERRORS=False","args, kwargs","log_errorが呼び出されない","中","エラーログ抑制"
"62","UT-RPT-062","report.helpers.report_model_types","","正常系","InvenTreeReportMixinを持つモデルが返却されること","ミックスインを持つモデルが存在","なし","モデルクラスのリストが返却される","中","モデルタイプ取得"
"63","UT-RPT-063","report.helpers.report_model_from_name","","正常系","名前からモデルクラスが取得されること","'part'モデルが存在","model_name='part'","Partモデルクラスが返却される","中","名前からモデル取得"
"64","UT-RPT-064","report.helpers.report_model_from_name","","異常系","無効な名前でNoneが返却されること","なし","model_name='invalid'","Noneが返却される","中","無効名前処理"
"65","UT-RPT-065","report.helpers.report_model_from_name","","境界値","空文字でNoneが返却されること","なし","model_name=''","Noneが返却される","中","空文字処理"
"66","UT-RPT-066","report.helpers.report_model_options","","正常系","モデルオプションのタプルリストが返却されること","ミックスインを持つモデルが存在","なし","(name, verbose_name)のリストが返却される","中","モデルオプション取得"
"67","UT-RPT-067","report.helpers.report_page_size_options","","正常系","ページサイズオプションが返却されること","なし","なし","[('A4', 'A4'), ('A3', 'A3'), ...]が返却される","低","ページサイズオプション"
"68","UT-RPT-068","report.helpers.page_sizes","","正常系","ページサイズ辞書が返却されること","なし","なし","{'A4': (210, 297), ...}が返却される","低","ページサイズ辞書"
"69","UT-RPT-069","report.helpers.page_size","","正常系","ページコードからサイズが取得されること","なし","page_code='A4'","(210, 297)が返却される","低","ページサイズ取得"
"70","UT-RPT-070","report.helpers.page_size","","境界値","不明なコードでA4がデフォルトとして返却されること","なし","page_code='UNKNOWN'","(210, 297)が返却されログが出力される","低","不明ページサイズ処理"
"71","UT-RPT-071","report.helpers.report_page_size_default","","正常系","グローバル設定からデフォルトページサイズが取得されること","REPORT_DEFAULT_PAGE_SIZE='Letter'が設定済み","なし","'Letter'が返却される","中","デフォルトページサイズ取得"
"72","UT-RPT-072","report.helpers.report_page_size_default","","異常系","設定取得エラー時にA4が返却されること","設定取得で例外発生","なし","'A4'が返却される","中","設定エラー時デフォルト"
"73","UT-RPT-073","report.helpers.encode_image_base64","","正常系","画像がbase64エンコードされること","有効なPIL Imageオブジェクト","image, img_format='PNG'","'data:image/png;...'形式の文字列が返却される","中","画像エンコード"
"74","UT-RPT-074","report.helpers.encode_image_base64","","正常系","JPEG形式でエンコードされること","有効なPIL Imageオブジェクト","image, img_format='JPEG'","'data:image/jpeg;...'形式の文字列が返却される","中","JPEG画像エンコード"
"75","UT-RPT-075","report.validators.validate_report_model_type","","正常系","有効なmodel_typeで検証が成功すること","なし","value='part'","エラーなし","高","モデルタイプ検証"
"76","UT-RPT-076","report.validators.validate_report_model_type","","異常系","無効なmodel_typeでValidationErrorが発生すること","なし","value='invalid'","ValidationErrorがスローされる","高","無効モデルタイプエラー"
"77","UT-RPT-077","report.validators.validate_filters","","正常系","有効なフィルタ文字列で辞書が返却されること","なし","value='active=True', model=Part","{'active': True}が返却される","高","フィルタ検証"
"78","UT-RPT-078","report.validators.validate_filters","","異常系","無効なフィルタでエラーが発生すること","なし","value='invalid_filter', model=Part","ValidationErrorがスローされる","高","無効フィルタエラー"
"79","UT-RPT-079","report.tasks.print_reports","","正常系","バックグラウンドでレポートが印刷されること","テンプレートとアイテムが存在","template_id, item_ids, output_id","template.printが呼び出される","高","バックグラウンド印刷"
"80","UT-RPT-080","report.tasks.print_reports","","異常系","テンプレートが見つからない場合エラーがログされること","テンプレートが存在しない","template_id=999, item_ids, output_id","log_errorが呼び出される","高","テンプレートエラー処理"
"81","UT-RPT-081","report.tasks.print_reports","","正常系","アイテムが指定順にソートされること","アイテムが存在","template_id, item_ids=[3,1,2], output_id","アイテムがitem_ids順でソートされる","中","アイテムソート"
"82","UT-RPT-082","report.tasks.print_labels","","正常系","バックグラウンドでラベルが印刷されること","テンプレートとプラグインが存在","template_id, item_ids, output_id, plugin_slug","template.printが呼び出される","高","バックグラウンドラベル印刷"
"83","UT-RPT-083","report.tasks.print_labels","","異常系","プラグインが見つからない場合警告がログされること","プラグインが存在しない","template_id, item_ids, output_id, plugin_slug='invalid'","logger.warningが呼び出される","高","プラグインエラー処理"
"84","UT-RPT-084","report.tasks.print_labels","","正常系","optionsがプラグインに渡されること","options={'copies': 2}","template_id, item_ids, output_id, plugin_slug, options={'copies': 2}","optionsがtemplate.printに渡される","中","オプション受け渡し"
"85","UT-RPT-085","report.mixins.InvenTreeReportMixin","report_context","正常系","空の辞書が返却されること","なし","なし","{}が返却される","低","デフォルトコンテキスト"
"86","UT-RPT-086","report.api.ReportFilterBase","filter_items","正常系","アイテムでフィルタリングされること","model_typeとitemsが指定","queryset, name, values='1,2,3'","マッチするテンプレートのみ返却される","中","アイテムフィルタ"
"87","UT-RPT-087","report.api.ReportFilterBase","filter_items","境界値","model_typeがない場合フィルタがスキップされること","model_type未指定","queryset, name, values='1,2,3'","元のquerysetが返却される","中","model_type未指定時"
"88","UT-RPT-088","report.api.LabelPrint","get_plugin_class","正常系","有効なプラグインが返却されること","プラグインが存在しアクティブ","plugin_slug='valid_plugin'","プラグインインスタンスが返却される","中","プラグイン取得"
"89","UT-RPT-089","report.api.LabelPrint","get_plugin_class","異常系","プラグインが見つからない場合Noneが返却されること","プラグインが存在しない","plugin_slug='invalid'","Noneが返却される","中","プラグイン未発見"
"90","UT-RPT-090","report.api.LabelPrint","get_plugin_class","異常系","raise_error=TrueでValidationErrorが発生すること","プラグインが存在しない","plugin_slug='invalid', raise_error=True","ValidationErrorがスローされる","中","プラグインエラー"
"91","UT-RPT-091","report.api.LabelPrint","get_plugin_class","正常系","plugin_slugが空の場合デフォルトプラグインが使用されること","デフォルトプラグインが存在","plugin_slug=''","InvenTreeLabelPluginが返却される","中","デフォルトプラグイン"
"92","UT-RPT-092","report.api.LabelPrint","get_plugin_serializer","正常系","プラグインシリアライザが返却されること","プラグインがget_printing_options_serializerを持つ","plugin","シリアライザインスタンスが返却される","中","プラグインシリアライザ取得"
"93","UT-RPT-093","report.api.LabelPrint","get_plugin_serializer","境界値","メソッドがない場合Noneが返却されること","プラグインがメソッドを持たない","plugin","Noneが返却される","中","シリアライザなし"
"94","UT-RPT-094","report.api.LabelPrint","post","正常系","ラベル印刷リクエストが処理されること","有効なテンプレートとアイテム","request.data={template, items}","201レスポンスが返却される","高","ラベル印刷API"
"95","UT-RPT-095","report.api.LabelPrint","post","異常系","無効なラベルサイズでValidationErrorが発生すること","width<=0またはheight<=0","request.data={template, items}","ValidationErrorがスローされる","高","サイズ検証"
"96","UT-RPT-096","report.api.LabelPrint","post","異常系","アイテムがない場合ValidationErrorが発生すること","有効なテンプレート","request.data={template, items=[]}","ValidationErrorがスローされる","高","空アイテムエラー"
"97","UT-RPT-097","report.api.ReportPrint","post","正常系","レポート印刷リクエストが処理されること","有効なテンプレートとアイテム","request.data={template, items}","201レスポンスが返却される","高","レポート印刷API"
"98","UT-RPT-098","report.api.ReportPrint","post","異常系","アイテムがない場合ValidationErrorが発生すること","有効なテンプレート","request.data={template, items=[]}","ValidationErrorがスローされる","高","空アイテムエラー"
"99","UT-RPT-099","report.api.ReportPrint","print","正常系","タスクがオフロードされること","有効なテンプレートとアイテム","template, items_to_print, request","offload_taskが呼び出される","高","タスクオフロード"
"100","UT-RPT-100","report.serializers.ReportSerializerBase","__init__","正常系","model_typeのchoicesが設定されること","choicesが空","なし","report_model_optionsでchoicesが設定される","中","シリアライザ初期化"
"101","UT-RPT-101","report.serializers.LabelPrintSerializer","__init__","正常系","プラグインフィールドが追加されること","plugin_serializerが指定","plugin_serializer=serializer","プラグインフィールドが追加される","中","ラベルシリアライザ初期化"
"102","UT-RPT-102","report.templatetags.barcode.qrcode","","正常系","QRコードが生成されること","なし","data='test'","base64エンコード画像文字列が返却される","高","QRコード生成"
"103","UT-RPT-103","report.templatetags.barcode.qrcode","","異常系","空データでValueErrorが発生すること","なし","data=''","ValueErrorがスローされる","高","空データQRエラー"
"104","UT-RPT-104","report.templatetags.barcode.qrcode","","正常系","カスタムオプションでQRコードが生成されること","なし","data='test', fill_color='red', box_size=10","カスタム設定のQRコードが返却される","中","カスタムQRコード"
"105","UT-RPT-105","report.templatetags.barcode.barcode","","正常系","バーコードが生成されること","なし","data='12345678'","base64エンコード画像文字列が返却される","高","バーコード生成"
"106","UT-RPT-106","report.templatetags.barcode.barcode","","異常系","空データでValueErrorが発生すること","なし","data=''","ValueErrorがスローされる","高","空データバーコードエラー"
"107","UT-RPT-107","report.templatetags.barcode.barcode","","正常系","異なるバーコードクラスで生成されること","なし","data='12345678', barcode_class='ean13'","EAN13バーコードが返却される","中","バーコードクラス指定"
"108","UT-RPT-108","report.templatetags.barcode.datamatrix","","正常系","DataMatrixコードが生成されること","なし","data='test'","base64エンコード画像文字列が返却される","高","DataMatrix生成"
"109","UT-RPT-109","report.templatetags.barcode.datamatrix","","異常系","空データでValueErrorが発生すること","なし","data=''","ValueErrorがスローされる","高","空データDataMatrixエラー"
"110","UT-RPT-110","report.templatetags.barcode.datamatrix","","正常系","カスタムカラーで生成されること","なし","data='test', fill_color='blue', back_color='yellow'","カスタムカラーのDataMatrixが返却される","中","カスタムDataMatrix"
"111","UT-RPT-111","report.templatetags.barcode.clean_barcode","","正常系","HTMLタグが除去されること","なし","data='<script>alert()</script>test'","'test'が返却される","高","バーコードデータクリーン"
"112","UT-RPT-112","report.templatetags.barcode.clean_barcode","","正常系","バッククォートが除去されること","なし","data='test`injection'","'testinjection'が返却される","高","インジェクション防止"
"113","UT-RPT-113","report.templatetags.report.order_queryset","","正常系","QuerySetが正しくソートされること","QuerySetオブジェクト","queryset, 'name'","name順でソートされたQuerySetが返却される","中","QuerySetソート"
"114","UT-RPT-114","report.templatetags.report.order_queryset","","境界値","QuerySet以外が渡された場合そのまま返却されること","リストオブジェクト","list, 'name'","元のリストが返却される","中","非QuerySet処理"
"115","UT-RPT-115","report.templatetags.report.filter_queryset","","正常系","QuerySetがフィルタリングされること","QuerySetオブジェクト","queryset, is_active=True","フィルタリングされたQuerySetが返却される","中","QuerySetフィルタ"
"116","UT-RPT-116","report.templatetags.report.filter_db_model","","正常系","モデル名からフィルタリングされたQuerySetが取得されること","'part.part'モデルが存在","model_name='part.part', is_template=True","フィルタリングされたQuerySetが返却される","中","モデルフィルタ"
"117","UT-RPT-117","report.templatetags.report.filter_db_model","","異常系","無効なモデル名でNoneが返却されること","なし","model_name='invalid.model'","Noneが返却される","中","無効モデル名処理"
"118","UT-RPT-118","report.templatetags.report.getindex","","正常系","リストの指定インデックスの値が返却されること","なし","container=[1,2,3], index=1","2が返却される","中","インデックス取得"
"119","UT-RPT-119","report.templatetags.report.getindex","","境界値","範囲外インデックスでNoneが返却されること","なし","container=[1,2,3], index=10","Noneが返却される","中","範囲外インデックス"
"120","UT-RPT-120","report.templatetags.report.getindex","","異常系","無効なインデックス型でNoneが返却されること","なし","container=[1,2,3], index='invalid'","Noneが返却される","中","無効インデックス型"
"121","UT-RPT-121","report.templatetags.report.getkey","","正常系","辞書のキーに対応する値が返却されること","なし","container={'key': 'value'}, key='key'","'value'が返却される","中","キー取得"
"122","UT-RPT-122","report.templatetags.report.getkey","","境界値","存在しないキーでbackup_valueが返却されること","なし","container={'key': 'value'}, key='missing', backup_value='default'","'default'が返却される","中","キー未発見時デフォルト"
"123","UT-RPT-123","report.templatetags.report.getkey","","異常系","非辞書オブジェクトでNoneが返却されること","なし","container=[1,2,3], key='key'","Noneが返却される","中","非辞書処理"
"124","UT-RPT-124","report.templatetags.report.asset","","正常系","アセットファイルパスが返却されること","アセットファイルが存在","filename='logo.png'","完全ファイルパスが返却される","中","アセットパス取得"
"125","UT-RPT-125","report.templatetags.report.asset","","異常系","存在しないファイルでFileNotFoundErrorが発生すること","ファイルが存在しない","filename='missing.png'","FileNotFoundErrorがスローされる","高","アセット未発見エラー"
"126","UT-RPT-126","report.templatetags.report.asset","","正常系","debug_modeでURLが返却されること","REPORT_DEBUG_MODE=True, ファイルが存在","filename='logo.png'","URLパスが返却される","中","デバッグモードアセット"
"127","UT-RPT-127","report.templatetags.report.uploaded_image","","正常系","アップロード画像がbase64エンコードされること","画像ファイルが存在","filename='image.png'","base64エンコード文字列が返却される","高","画像エンコード"
"128","UT-RPT-128","report.templatetags.report.uploaded_image","","正常系","replace_missing=Trueで置換画像が使用されること","画像ファイルが存在しない","filename='missing.png', replace_missing=True","置換画像のbase64が返却される","中","画像置換"
"129","UT-RPT-129","report.templatetags.report.uploaded_image","","異常系","replace_missing=FalseでFileNotFoundErrorが発生すること","画像ファイルが存在しない","filename='missing.png', replace_missing=False","FileNotFoundErrorがスローされる","高","画像未発見エラー"
"130","UT-RPT-130","report.templatetags.report.uploaded_image","","正常系","リサイズが正しく適用されること","画像ファイルが存在","filename='image.png', width=100, height=100","リサイズされた画像のbase64が返却される","中","画像リサイズ"
"131","UT-RPT-131","report.templatetags.report.uploaded_image","","正常系","回転が正しく適用されること","画像ファイルが存在","filename='image.png', rotate=90","回転された画像のbase64が返却される","中","画像回転"
"132","UT-RPT-132","report.templatetags.report.encode_svg_image","","正常系","SVG画像がbase64エンコードされること","SVGファイルが存在","filename='icon.svg'","'data:image/svg+xml;...'形式の文字列が返却される","中","SVGエンコード"
"133","UT-RPT-133","report.templatetags.report.encode_svg_image","","異常系","存在しないファイルでFileNotFoundErrorが発生すること","ファイルが存在しない","filename='missing.svg'","FileNotFoundErrorがスローされる","高","SVG未発見エラー"
"134","UT-RPT-134","report.templatetags.report.part_image","","正常系","Part画像パスが返却されること","Partインスタンスに画像がある","part=part_instance","画像のbase64が返却される","中","Part画像取得"
"135","UT-RPT-135","report.templatetags.report.part_image","","異常系","非PartインスタンスでTypeErrorが発生すること","なし","part='not_a_part'","TypeErrorがスローされる","中","Part型チェック"
"136","UT-RPT-136","report.templatetags.report.company_image","","正常系","Company画像パスが返却されること","Companyインスタンスに画像がある","company=company_instance","画像のbase64が返却される","中","Company画像取得"
"137","UT-RPT-137","report.templatetags.report.company_image","","異常系","非CompanyインスタンスでTypeErrorが発生すること","なし","company='not_a_company'","TypeErrorがスローされる","中","Company型チェック"
"138","UT-RPT-138","report.templatetags.report.parameter","","正常系","パラメータオブジェクトが返却されること","インスタンスにパラメータが存在","instance, parameter_name='weight'","Parameterオブジェクトが返却される","中","パラメータ取得"
"139","UT-RPT-139","report.templatetags.report.parameter","","境界値","存在しないパラメータでNoneが返却されること","パラメータが存在しない","instance, parameter_name='missing'","Noneが返却される","中","パラメータ未発見"
"140","UT-RPT-140","report.templatetags.report.parameter","","異常系","instanceがNoneでValueErrorが発生すること","なし","instance=None, parameter_name='weight'","ValueErrorがスローされる","中","Nullインスタンスエラー"
"141","UT-RPT-141","report.templatetags.report.logo_image","","正常系","ロゴ画像パスが返却されること","カスタムロゴが設定済み","なし","ロゴ画像パスまたはbase64が返却される","中","ロゴ画像取得"
"142","UT-RPT-142","report.templatetags.report.internal_link","","正常系","内部リンクHTMLが生成されること","base_urlが設定済み","link='/part/1/', text='Part 1'","'<a href=""..."">Part 1</a>'が返却される","中","内部リンク生成"
"143","UT-RPT-143","report.templatetags.report.internal_link","","境界値","URL構築失敗時にテキストのみ返却されること","base_urlが未設定","link='/part/1/', text='Part 1'","'Part 1'が返却される","中","リンク構築失敗処理"
"144","UT-RPT-144","report.templatetags.report.add","","正常系","2つの数値が加算されること","なし","x=10, y=5","15が返却される","中","加算"
"145","UT-RPT-145","report.templatetags.report.add","","正常系","文字列数値が加算されること","なし","x='10', y='5'","15が返却される","中","文字列数値加算"
"146","UT-RPT-146","report.templatetags.report.add","","異常系","非数値でValidationErrorが発生すること","なし","x='abc', y=5","ValidationErrorがスローされる","中","加算型エラー"
"147","UT-RPT-147","report.templatetags.report.add","","異常系","nullでValidationErrorが発生すること","なし","x=None, y=5","ValidationErrorがスローされる","中","加算nullエラー"
"148","UT-RPT-148","report.templatetags.report.subtract","","正常系","減算が正しく実行されること","なし","x=10, y=3","7が返却される","中","減算"
"149","UT-RPT-149","report.templatetags.report.multiply","","正常系","乗算が正しく実行されること","なし","x=4, y=5","20が返却される","中","乗算"
"150","UT-RPT-150","report.templatetags.report.divide","","正常系","除算が正しく実行されること","なし","x=20, y=4","5が返却される","中","除算"
"151","UT-RPT-151","report.templatetags.report.divide","","異常系","ゼロ除算でValidationErrorが発生すること","なし","x=10, y=0","ValidationErrorがスローされる","高","ゼロ除算エラー"
"152","UT-RPT-152","report.templatetags.report.modulo","","正常系","剰余が正しく計算されること","なし","x=10, y=3","1が返却される","中","剰余"
"153","UT-RPT-153","report.templatetags.report.modulo","","異常系","ゼロ剰余でValidationErrorが発生すること","なし","x=10, y=0","ValidationErrorがスローされる","高","ゼロ剰余エラー"
"154","UT-RPT-154","report.templatetags.report.render_currency","","正常系","通貨が正しくレンダリングされること","なし","money=Money(100, 'USD')","'$100.00'形式が返却される","中","通貨レンダリング"
"155","UT-RPT-155","report.templatetags.report.create_currency","","正常系","Moneyオブジェクトが作成されること","なし","amount=100, currency='USD'","Money(100, 'USD')が返却される","中","通貨作成"
"156","UT-RPT-156","report.templatetags.report.create_currency","","異常系","無効な通貨コードでValidationErrorが発生すること","なし","amount=100, currency='INVALID'","ValidationErrorがスローされる","中","無効通貨エラー"
"157","UT-RPT-157","report.templatetags.report.create_currency","","境界値","currency未指定でデフォルト通貨が使用されること","デフォルト通貨が設定済み","amount=100, currency=None","デフォルト通貨のMoneyが返却される","中","デフォルト通貨"
"158","UT-RPT-158","report.templatetags.report.convert_currency","","正常系","通貨が変換されること","為替レートが設定済み","money=Money(100, 'USD'), currency='EUR'","変換後のMoneyが返却される","中","通貨変換"
"159","UT-RPT-159","report.templatetags.report.convert_currency","","異常系","為替レートがない場合ValidationErrorが発生すること","為替レートが未設定","money=Money(100, 'USD'), currency='XYZ'","ValidationErrorがスローされる","中","為替レートなしエラー"
"160","UT-RPT-160","report.templatetags.report.convert_currency","","異常系","非MoneyオブジェクトでTypeErrorが発生すること","なし","money=100, currency='EUR'","TypeErrorがスローされる","中","Money型チェック"
"161","UT-RPT-161","report.templatetags.report.render_html_text","","正常系","テキストがHTMLタグで囲まれること","なし","text='Hello', bold=True","'<strong>Hello</strong>'が返却される","低","HTMLテキストレンダリング"
"162","UT-RPT-162","report.templatetags.report.render_html_text","","正常系","複数タグが適用されること","なし","text='Hello', bold=True, italic=True","'<strong><em>Hello</em></strong>'が返却される","低","複数タグ適用"
"163","UT-RPT-163","report.templatetags.report.format_number","","正常系","数値がフォーマットされること","なし","number=1234.567, decimal_places=2","'1234.57'が返却される","中","数値フォーマット"
"164","UT-RPT-164","report.templatetags.report.format_number","","正常系","千単位区切りが適用されること","なし","number=1234567, separator=','","'1,234,567'が返却される","中","千単位区切り"
"165","UT-RPT-165","report.templatetags.report.format_number","","正常系","先頭ゼロが追加されること","なし","number=123, leading=5","'00000123'が返却される","中","先頭ゼロ追加"
"166","UT-RPT-166","report.templatetags.report.format_datetime","","正常系","日時がフォーマットされること","なし","dt=datetime(2024,1,1,12,0,0)","ISO形式の文字列が返却される","中","日時フォーマット"
"167","UT-RPT-167","report.templatetags.report.format_datetime","","正常系","カスタムフォーマットが適用されること","なし","dt=datetime(2024,1,1,12,0,0), fmt='%Y/%m/%d'","'2024/01/01'が返却される","中","カスタム日時フォーマット"
"168","UT-RPT-168","report.templatetags.report.format_date","","正常系","日付がフォーマットされること","なし","dt=date(2024,1,1)","'2024-01-01'が返却される","中","日付フォーマット"
"169","UT-RPT-169","report.templatetags.report.icon","","正常系","アイコンHTMLが生成されること","アイコンパックが存在","name='ti:home'","'<i class=""icon""...>...</i>'が返却される","低","アイコン生成"
"170","UT-RPT-170","report.templatetags.report.icon","","境界値","空名前で空文字が返却されること","なし","name=''","''が返却される","低","空アイコン名"
"171","UT-RPT-171","report.templatetags.report.icon","","異常系","無効なアイコン名で空文字が返却されること","なし","name='invalid:icon'","''が返却される","低","無効アイコン名"
"172","UT-RPT-172","report.templatetags.report.include_icon_fonts","","正常系","フォントフェイスCSSが生成されること","アイコンパックが存在","なし","@font-faceルールを含むCSSが返却される","低","アイコンフォント生成"
"173","UT-RPT-173","report.templatetags.report.include_icon_fonts","","正常系","ttfのみが指定された場合truetypeフォントが使用されること","アイコンパックが存在","ttf=True, woff=False","truetypeフォントのみのCSSが返却される","低","TTFフォント指定"
