diff --git a/ecs/jskult-batch/src/manager/jskult_batch_status_manager.py b/ecs/jskult-batch/src/manager/jskult_batch_status_manager.py index 92d97c5c..36a1c8d4 100644 --- a/ecs/jskult-batch/src/manager/jskult_batch_status_manager.py +++ b/ecs/jskult-batch/src/manager/jskult_batch_status_manager.py @@ -200,10 +200,13 @@ class JskultBatchStatusManager: internal07.jskult_batch_status_manage WHERE process_name = :process_name - AND - process_date = src07.get_syor_date(); + AND process_date = src07.get_syor_date() + AND process_status = :process_status; """, - {'process_name': constants.PROCESS_NAME_ULTMARC_IO} + { + 'process_name': constants.PROCESS_NAME_ULTMARC_IO, + 'process_status': constants.PROCESS_STATUS_DONE + } ) record_count = len(record) diff --git a/ecs/jskult-batch/tests/manager/test_jskult_batch_status_manager.py b/ecs/jskult-batch/tests/manager/test_jskult_batch_status_manager.py index fe52e1c4..132d87d5 100644 --- a/ecs/jskult-batch/tests/manager/test_jskult_batch_status_manager.py +++ b/ecs/jskult-batch/tests/manager/test_jskult_batch_status_manager.py @@ -680,3 +680,83 @@ class TestJskultBatchStatusManager: """)[0] assert actual_record['max_run_count_flg'] == 1 + + def test_is_done_ultmarc_import_success(self): + """ + アルトマーク取込が完了している場合、trueが返却されること + """ + # Arrange + # 日付テーブルを登録 + db = Database.get_instance() + db.connect() + db.execute(""" + INSERT INTO src07.hdke_tbl + (syor_date, bch_actf, dump_sts_kbn, + creater, create_date, updater, update_date) + VALUES + ('20250530', '1', '2', CURRENT_USER(), CURRENT_TIMESTAMP(), NULL, NULL) + """) + + # バッチステータス管理テーブルを登録 + db.execute(""" + INSERT INTO internal07.jskult_batch_status_manage + (process_name, process_date, process_type, + process_status, total_run_count, max_run_count_flg) + VALUES + ('unittest_process_name', '2025-05-30', 'unittest_process_type', + 'start', '0', '0'), + ('jskult-batch-ultmarc-io', '2025-05-30','data_import', + 'done', '0', '0') + """) + + # Act + sut = JskultBatchStatusManager( + 'unittest_process_name', + 'unittest_process_type', + 3, + 3 + ) + actual = sut.is_done_ultmarc_import() + + # Assert + assert actual is True + + def test_is_done_ultmarc_import_failed(self): + """ + アルトマーク取込が完了していない場合、falseが返却されること + """ + # Arrange + # 日付テーブルを登録 + db = Database.get_instance() + db.connect() + db.execute(""" + INSERT INTO src07.hdke_tbl + (syor_date, bch_actf, dump_sts_kbn, + creater, create_date, updater, update_date) + VALUES + ('20250530', '1', '2', CURRENT_USER(), CURRENT_TIMESTAMP(), NULL, NULL) + """) + + # バッチステータス管理テーブルを登録 + db.execute(""" + INSERT INTO internal07.jskult_batch_status_manage + (process_name, process_date, process_type, + process_status, total_run_count, max_run_count_flg) + VALUES + ('unittest_process_name', '2025-05-30', 'unittest_process_type', + 'start', '0', '0'), + ('jskult-batch-ultmarc-io', '2025-05-30','data_import', + 'start', '0', '0') + """) + + # Act + sut = JskultBatchStatusManager( + 'unittest_process_name', + 'unittest_process_type', + 3, + 3 + ) + actual = sut.is_done_ultmarc_import() + + # Assert + assert actual is False