feat: テスト改善
This commit is contained in:
parent
92b7343216
commit
16b291d3a6
@ -58,9 +58,9 @@ class TestComAlmaMapper:
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for i, line in enumerate(test_dat_file, start=1):
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_alma_mapper.ComAlmaMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, f'{i}行目:マッパークラスが期通りか'
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
@ -73,12 +73,14 @@ class TestComAlmaMapper:
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, line_number=i, ignore_col_name=ignore_columns)
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{i}行目:{actual_col_name}が、期待値以降であること'
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
@ -111,9 +113,9 @@ class TestComAlmaMapper:
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for i, line in enumerate(test_dat_file, start=1):
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_alma_mapper.ComAlmaMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, f'{i}行目:マッパークラスが期通りか'
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
@ -125,15 +127,17 @@ class TestComAlmaMapper:
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, line_number=i, ignore_col_name=ignore_columns)
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{i}行目:{actual_col_name}が、登録されていないこと'
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{i}行目:{actual_col_name}が、期待値以降であること'
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
@ -166,9 +170,9 @@ class TestComAlmaMapper:
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for i, line in enumerate(test_dat_file, start=1):
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_alma_mapper.ComAlmaMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, f'{i}行目:マッパークラスが期通りか'
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
@ -180,12 +184,14 @@ class TestComAlmaMapper:
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, line_number=i, ignore_col_name=ignore_columns)
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{i}行目:{actual_col_name}が、登録されていないこと'
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{i}行目:{actual_col_name}が、期待値以降であること'
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
@ -59,9 +59,9 @@ class TestComHamtecMapper:
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for i, line in enumerate(test_dat_file, start=1):
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_hamtec_mapper.ComHamtecMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_hamtec_mapper.ComHamtecMapper, f'{i}行目:マッパークラスが期通りか'
|
||||
assert type(sut) is com_hamtec_mapper.ComHamtecMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
@ -74,12 +74,14 @@ class TestComHamtecMapper:
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, line_number=i, ignore_col_name=ignore_columns)
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
line_number = 0
|
||||
# 動的日付項目の個別確認
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{i}行目:{actual_col_name}が、期待値以降であること'
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
@ -112,9 +114,9 @@ class TestComHamtecMapper:
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for i, line in enumerate(test_dat_file, start=1):
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_hamtec_mapper.ComHamtecMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_hamtec_mapper.ComHamtecMapper, f'{i}行目:マッパークラスが期通りか'
|
||||
assert type(sut) is com_hamtec_mapper.ComHamtecMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
@ -126,15 +128,17 @@ class TestComHamtecMapper:
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, line_number=i, ignore_col_name=ignore_columns)
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
line_number = 0
|
||||
# 動的日付項目の個別確認
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{i}行目:{actual_col_name}が、登録されていないこと'
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{i}行目:{actual_col_name}が、期待値以降であること'
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
@ -167,9 +171,9 @@ class TestComHamtecMapper:
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for i, line in enumerate(test_dat_file, start=1):
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_hamtec_mapper.ComHamtecMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_hamtec_mapper.ComHamtecMapper, f'{i}行目:マッパークラスが期通りか'
|
||||
assert type(sut) is com_hamtec_mapper.ComHamtecMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
@ -181,12 +185,14 @@ class TestComHamtecMapper:
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, line_number=i, ignore_col_name=ignore_columns)
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{i}行目:{actual_col_name}が、登録されていないこと'
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{i}行目:{actual_col_name}が、期待値以降であること'
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
@ -55,10 +55,14 @@ def create_db_data_from_csv(file_path: str) -> list[dict]:
|
||||
converted_value = v
|
||||
if v == 'NULL':
|
||||
converted_value = None
|
||||
if is_valid_date(v) is True:
|
||||
converted_value = datetime.strptime(v, '%Y/%m/%d')
|
||||
if is_valid_datetime(v) is True:
|
||||
if is_valid_date_format(v, '%Y/%m/%d') is True: # YYYY/MM/DD
|
||||
converted_value = datetime.strptime(v, '%Y/%m/%d').date()
|
||||
if is_valid_date_format(v, '%Y-%m-%d') is True: # YYYY-MM-DD
|
||||
converted_value = datetime.strptime(v, '%Y-%m-%d').date()
|
||||
if is_valid_date_format(v, '%Y/%m/%d %H:%M:%S') is True: # YYYY/MM/DD HH:MM:SS
|
||||
converted_value = datetime.strptime(v, '%Y/%m/%d %H:%M:%S')
|
||||
if is_valid_date_format(v, '%Y-%m-%d %H:%M:%S') is True: # YYYY-MM-DD HH:MM:SS
|
||||
converted_value = datetime.strptime(v, '%Y-%m-%d %H:%M:%S')
|
||||
|
||||
row[k] = converted_value
|
||||
|
||||
@ -210,12 +214,12 @@ def get_module_name(module: ModuleType) -> str:
|
||||
return module.__name__.split('.')[-1]
|
||||
|
||||
|
||||
def is_valid_date(date_str: str, date_format='%Y/%m/%d'):
|
||||
def is_valid_date_format(date_str: str, date_format):
|
||||
"""日付文字列が、与えられたフォーマットにマッチするかを検査する
|
||||
|
||||
Args:
|
||||
date_str (str): 日付文字列
|
||||
date_format (str, optional): 日付のフォーマット. Defaults to '%Y/%m/%d'.
|
||||
date_format (str, optional): 日付のフォーマット
|
||||
|
||||
Returns:
|
||||
_type_: 正しい日付文字列の場合、True、それ以外はFalse
|
||||
@ -227,19 +231,7 @@ def is_valid_date(date_str: str, date_format='%Y/%m/%d'):
|
||||
return False
|
||||
|
||||
|
||||
def is_valid_datetime(date_str: str):
|
||||
"""日付文字列が、YYYY/MM/DD HH:MM:SSとマッチするかを検査する
|
||||
|
||||
Args:
|
||||
date_str (str): 日付文字列
|
||||
|
||||
Returns:
|
||||
_type_: 正しい日付文字列の場合、True、それ以外はFalse
|
||||
"""
|
||||
return is_valid_date(date_str, '%Y/%m/%d %H:%M:%S')
|
||||
|
||||
|
||||
def assert_table_results(actual_rows: list[dict], expect_rows: list[dict], line_number: int, ignore_col_name: list = None) -> None:
|
||||
def assert_table_results(actual_rows: list[dict], expect_rows: list[dict], ignore_col_name: list = None) -> None:
|
||||
"""テーブル同士の取得結果突き合わせ
|
||||
|
||||
Args:
|
||||
@ -250,7 +242,9 @@ def assert_table_results(actual_rows: list[dict], expect_rows: list[dict], line_
|
||||
assert len(actual_rows) == len(expect_rows)
|
||||
|
||||
# 1カラムずつ調査
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_rows, expect_rows):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
# テストメソッド側で個別に確認するものはスキップさせる
|
||||
if ignore_col_name is not None and actual_col_name in ignore_col_name:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user