feat: クエリ作成処理も共通化

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-04-07 09:58:22 +09:00
parent eb1f640c0c
commit 5a5ffcd25f
2 changed files with 40 additions and 1 deletions

View File

@ -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:

View 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:
"""アルトマークテーブル共通のカラムを作成