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