diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/test_com_alma_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/test_com_alma_mapper.py index 6799b279..4c3a1960 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/test_com_alma_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/test_com_alma_mapper.py @@ -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}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hamtec/test_com_hamtec_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hamtec/test_com_hamtec_mapper.py index bc4858dc..703858ca 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hamtec/test_com_hamtec_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hamtec/test_com_hamtec_mapper.py @@ -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}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/testing_utility.py b/ecs/jskult-batch-daily/tests/testing_utility.py index a321f343..335ddf35 100644 --- a/ecs/jskult-batch-daily/tests/testing_utility.py +++ b/ecs/jskult-batch-daily/tests/testing_utility.py @@ -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: