想定外ファイルの受領確認チェックを追加

想定ファイル数、卸在庫データ取込対象日の場合は15、そうでない場合は14
This commit is contained in:
x.azuma.m@nds-tyo.co.jp 2023-05-18 16:22:02 +09:00
parent c1c9fd68b5
commit f7957af13b
3 changed files with 15 additions and 3 deletions

View File

@ -150,6 +150,11 @@ def _check_received_files() -> list:
if not _check_if_file_exists(received_s3_files, vjsk_mapper.CONDKEY_LOT_NUM_MST):
raise BatchOperationException(f'製造ロット番号マスタファイルがありません ファイル一覧:{received_s3_files}')
# 想定外ファイルの受領確認 (想定ファイル数、卸在庫データ取込対象日の場合は15、そうでない場合は14)
naturally_count = 15 if batch_context.is_vjsk_stock_import_day else 14
if len(received_s3_files) > naturally_count:
raise BatchOperationException(f'想定数を超える受領ファイルがあります ファイル一覧:{received_s3_files}')
logger.debug('_check_received_files done')
return received_s3_files

View File

@ -2,6 +2,7 @@ from os import path
import pytest
from src.aws.s3 import VjskReceiveBucket
from src.batch.common.batch_context import BatchContext
# from src.batch.vjsk.vjsk_data_load_manager import VjskDataLoadManager
from src.batch.vjsk.vjsk_importer import (_check_received_files,
@ -40,9 +41,16 @@ class TestImportFileToDb:
期待値
例外が発生しない
"""
# setup
# setup - 卸在庫データ取込対象日
self.batch_context.is_vjsk_stock_import_day = True
# setup - S3受領バケットの内容をすべて削除する
vjsk_recv_bucket = VjskReceiveBucket()
s3_files = vjsk_recv_bucket.get_s3_file_list()
for file_obj in s3_files:
s3_client.delete_object(Bucket=bucket_name, Key=file_obj.get("filename"))
# setup - テスト用受領ファイルをS3受領バケットにupload
test_files = [
"stock_slip_data_202304270000.gz",
"slip_data_202304270000.gz",
@ -58,8 +66,7 @@ class TestImportFileToDb:
"whs_customer_mst_202304270000.gz",
"mdb_conv_mst_202304270000.gz",
"bio_slip_data_202304270000.gz",
"lot_num_mst_202304270000.gz",
"dummy.gz"
"lot_num_mst_202304270000.gz"
]
for test_file in test_files:
file_name = path.join(self.test_file_path, test_file)