feat: クエリ作成処理も共通化
This commit is contained in:
parent
eb1f640c0c
commit
5a5ffcd25f
@ -8,6 +8,7 @@ from src.batch.ultmarc.utmp_tables.ultmarc_table_mapper_factory import \
|
||||
UltmarcTableMapperFactory
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_delete_sql_with_parameter,
|
||||
create_ultmarc_common_column_names,
|
||||
create_ultmarc_common_column_values,
|
||||
create_ultmarc_test_csv, get_module_name)
|
||||
@ -55,7 +56,8 @@ class TestComAlmaMapper:
|
||||
'"004","001","A","20141113","20141114","北大","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"'
|
||||
)
|
||||
# テスト対象のデータをDBから削除
|
||||
self.db.execute("DELETE FROM src05.com_alma WHERE alma_cd = '001'")
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma', {'alma_cd': '001'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# sut(system under test)作成
|
||||
for line in test_dat_file:
|
||||
|
||||
@ -43,6 +43,43 @@ def create_ultmarc_common_column_names() -> list[str]:
|
||||
]
|
||||
|
||||
|
||||
def create_insert_sql_with_parameter(table_name: str, column_names: list[str], test_data: list[str]) -> tuple[str, dict]:
|
||||
"""INSERT文と登録値のパラメータを返す
|
||||
|
||||
Args:
|
||||
table_name (str): スキーマ完全修飾のテーブル名(例:src05.com_alma)
|
||||
column_names (list[str]): カラム名のリスト
|
||||
test_data (list[str]): 値のリスト
|
||||
|
||||
Returns:
|
||||
tuple[str, dict]: [0]→INSERT文,[1]→値のパラメータ
|
||||
"""
|
||||
placeholders = ','.join([f':{column_name}' for column_name in column_names])
|
||||
insert_sql = f"INSERT INTO {table_name} ({','.join(column_names)}) VALUES({placeholders})"
|
||||
parameter = {k: v for k, v in zip(column_names, test_data)}
|
||||
|
||||
return insert_sql, parameter
|
||||
|
||||
|
||||
def create_delete_sql_with_parameter(table_name: str, delete_parameter: dict[str, str]):
|
||||
"""DELETE文と削除条件値のパラメータを返す
|
||||
|
||||
Args:
|
||||
table_name (str): スキーマ完全修飾のテーブル名(例:src05.com_alma)
|
||||
delete_parameter (dict[str, str]): 削除条件に使用するカラム名と値の辞書
|
||||
|
||||
Returns:
|
||||
tuple[str, dict]: [0]→DELETE文,[1]→値のパラメータ
|
||||
"""
|
||||
where_clause_list = []
|
||||
for k in delete_parameter:
|
||||
where_clause_list.append(f'{k} = :{k}')
|
||||
where_clauses = ' AND '.join(where_clause_list)
|
||||
delete_sql = f"DELETE FROM {table_name} WHERE {where_clauses}"
|
||||
|
||||
return delete_sql, delete_parameter
|
||||
|
||||
|
||||
def create_ultmarc_common_column_values(expect_datetime: datetime, expect_date_str: str, module_name: str) -> list:
|
||||
"""アルトマークテーブル共通のカラムを作成
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user