feat: DatFileクラスを使ってテストするように修正
This commit is contained in:
parent
e9dad1aecf
commit
6cc2ef5ca0
@ -56,7 +56,7 @@ def dat_insert_control():
|
||||
mapper_class = mapper_factory.create(
|
||||
line.layout_class,
|
||||
line.record_id,
|
||||
line.record,
|
||||
line.records,
|
||||
db
|
||||
)
|
||||
mapper_class.make_query()
|
||||
@ -69,7 +69,7 @@ def dat_insert_control():
|
||||
except Exception as e:
|
||||
# TODO: ログちゃんとする
|
||||
logger.warning(e)
|
||||
record = line.record
|
||||
record = line.records
|
||||
log_message = ','.join([f'"{r}"' for r in record])
|
||||
logger.warning(log_message)
|
||||
dat_file.count_up_error()
|
||||
|
||||
@ -5,12 +5,12 @@ from io import TextIOWrapper
|
||||
class DatFileLine:
|
||||
layout_class: str
|
||||
record_id: str
|
||||
record: list[str]
|
||||
records: list[str]
|
||||
|
||||
def __init__(self, dat_line: list[str]) -> None:
|
||||
self.layout_class = dat_line[0]
|
||||
self.record_id = dat_line[1]
|
||||
self.record = dat_line
|
||||
self.records = dat_line
|
||||
|
||||
|
||||
class DatFile:
|
||||
|
||||
@ -51,35 +51,36 @@ class TestComAlmaMapper:
|
||||
# 処理日設定
|
||||
self.batch_config.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テストデータ1件作成
|
||||
test_csv = create_ultmarc_test_csv(
|
||||
test_dat_file = create_ultmarc_test_csv(
|
||||
'"004","001","A","20141113","20141114","北大","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"'
|
||||
)[0]
|
||||
)
|
||||
# テスト対象のデータをDBから削除
|
||||
self.db.execute("DELETE FROM src05.com_alma WHERE alma_cd = '001'")
|
||||
|
||||
# sut(system under test)作成
|
||||
layout_class = test_csv[0]
|
||||
record_id = test_csv[1]
|
||||
factory = UltmarcTableMapperFactory()
|
||||
sut: com_alma_mapper.ComAlmaMapper = factory.create(
|
||||
layout_class=layout_class,
|
||||
record_id=record_id,
|
||||
records=test_csv,
|
||||
db=self.db
|
||||
)
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, 'マッパークラスが期待通りか'
|
||||
for line in test_dat_file:
|
||||
layout_class = line.layout_class
|
||||
record_id = line.record_id
|
||||
factory = UltmarcTableMapperFactory()
|
||||
sut: com_alma_mapper.ComAlmaMapper = factory.create(
|
||||
layout_class=layout_class,
|
||||
record_id=record_id,
|
||||
records=line.records,
|
||||
db=self.db
|
||||
)
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, 'マッパークラスが期待通りか'
|
||||
|
||||
# Act
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
# Act
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値となるモジュール名
|
||||
module_name = get_module_name(com_alma_mapper)
|
||||
# 実行日時
|
||||
expect_row = ["001", "北大"] + create_ultmarc_common_column_values(expect_datetime, expect_date_str, module_name)
|
||||
expect_rows = [{c: r for c, r in zip(self.table_columns, expect_row)}]
|
||||
actual_rows = self.db.execute_select("SELECT * FROM src05.com_alma WHERE alma_cd = '001'")
|
||||
# Assert
|
||||
# 期待値となるモジュール名
|
||||
module_name = get_module_name(com_alma_mapper)
|
||||
# 実行日時
|
||||
expect_row = ["001", "北大"] + create_ultmarc_common_column_values(expect_datetime, expect_date_str, module_name)
|
||||
expect_rows = [{c: r for c, r in zip(self.table_columns, expect_row)}]
|
||||
actual_rows = self.db.execute_select("SELECT * FROM src05.com_alma WHERE alma_cd = '001'")
|
||||
|
||||
# 期待値検査
|
||||
assert_table_results(actual_rows, expect_rows)
|
||||
# 期待値検査
|
||||
assert_table_results(actual_rows, expect_rows)
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
"""テスト用共通処理関数"""
|
||||
|
||||
import csv
|
||||
import io
|
||||
from datetime import datetime
|
||||
from types import ModuleType
|
||||
|
||||
from src.batch.ultmarc.datfile import DatFile
|
||||
|
||||
def create_ultmarc_test_csv(*csv_rows: str) -> list[list[str]]:
|
||||
|
||||
def create_ultmarc_test_csv(*csv_rows: str) -> DatFile:
|
||||
"""アルトマーク取込テストのCSVを作成
|
||||
Args:
|
||||
csv_rows (tuple[str]): CSV文字列のリスト
|
||||
@ -16,10 +17,9 @@ def create_ultmarc_test_csv(*csv_rows: str) -> list[list[str]]:
|
||||
string_io = io.StringIO()
|
||||
string_io.writelines(csv_rows)
|
||||
string_io.seek(0)
|
||||
reader = csv.reader(string_io)
|
||||
test_csv = [r for r in reader]
|
||||
dat_file = DatFile(string_io)
|
||||
|
||||
return test_csv
|
||||
return dat_file
|
||||
|
||||
|
||||
def create_ultmarc_common_column_names() -> list[str]:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user