diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/test_com_alma_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/test_com_alma_mapper.py index 3a800949..0dfa56d6 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/test_com_alma_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/test_com_alma_mapper.py @@ -40,7 +40,7 @@ class TestComAlmaMapper: def test_insert_record(self, expect_datetime: datetime, expect_date_str: str): """ Cases: - COM_出身校テーブルにレコードを1件登録する + COM_出身校テーブルにレコードを登録する Arranges: - CSVデータを用意する - 追加対象となるレコードを削除する @@ -84,6 +84,7 @@ class TestComAlmaMapper: sut.execute_queries() # Assert + # 期待値作成 # 期待値となるモジュール名 module_name = get_module_name(com_alma_mapper) expect_row = [code_and_name[i - 1][0], code_and_name[i - 1][1]] + create_ultmarc_common_column_values( @@ -99,10 +100,10 @@ class TestComAlmaMapper: # 期待値検査 assert_table_results(actual_rows, expect_rows, line_number=i) - def test_update_record_one(self, expect_datetime: datetime, expect_date_str: str): + def test_update_record(self, expect_datetime: datetime, expect_date_str: str): """ Cases: - COM_出身校テーブルのレコードを1件更新する + COM_出身校テーブルのレコードを更新する Arranges: - CSVデータを用意する - 追加対象となるレコードを登録する @@ -114,7 +115,30 @@ class TestComAlmaMapper: # 処理日設定 self.batch_config.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') # テストデータ作成 - code_and_name = [ + csv_in_code_and_name = [ + ['001', '北大'], + ['002', '札幌医'], + ['003', '弘大'], + ['004', ''], + ['005', '福島医'], + ['006', '東北大'] + ] + test_dat_file = create_ultmarc_test_csv( + [ + f'"004","{csv_in_code_and_name[0][0]}","B","20141113","20141114","{csv_in_code_and_name[0][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[1][0]}","B","20141113","20141114","{csv_in_code_and_name[1][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[2][0]}","B","20141113","20141114","{csv_in_code_and_name[2][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[3][0]}","B","20141113","20141114","{csv_in_code_and_name[3][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[4][0]}","B","20141113","20141114","{csv_in_code_and_name[4][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[5][0]}","B","20141113","20141114","{csv_in_code_and_name[5][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"' + ] + ) + + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + db_in_code_and_name = [ ['001', '北大'], ['002', '札幌医'], ['003', '弘大'], @@ -122,42 +146,25 @@ class TestComAlmaMapper: ['005', '東北大'], ['006', '福島医'] ] - test_dat_file = create_ultmarc_test_csv( - [ - f'"004","{code_and_name[0][0]}","A","20141113","20141114","{code_and_name[0][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', - f'"004","{code_and_name[1][0]}","A","20141113","20141114","{code_and_name[1][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', - f'"004","{code_and_name[2][0]}","A","20141113","20141114","{code_and_name[2][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', - f'"004","{code_and_name[3][0]}","A","20141113","20141114","{code_and_name[3][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', - f'"004","{code_and_name[4][0]}","A","20141113","20141114","{code_and_name[4][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', - f'"004","{code_and_name[5][0]}","A","20141113","20141114","{code_and_name[5][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"' - ] - ) - # テストデータ作成 - test_dat_file = create_ultmarc_test_csv( - '"004","001","B","20141113","20141114","テスト大","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"' - ) - # モジュール名 module_name = get_module_name(com_alma_mapper) - # DBに登録するテストデータ - test_sql_data = ["001", "北大"] + create_ultmarc_common_column_values( - regist_ymd=expect_date_str, - sys_regist_date=expect_datetime, - regist_prgm_id=module_name, - sys_update_date=expect_datetime, - update_prgm_id=module_name - ) - - # 一旦全データをDBから削除 - delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma', {'1': '1'}) - self.db.execute(delete_sql, delete_parameter) # テスト対象のデータをDBに登録 - insert_sql, insert_parameter = create_insert_sql_with_parameter( - 'src05.com_alma', - self.table_columns, - test_sql_data - ) - self.db.execute(insert_sql, insert_parameter) + for row in db_in_code_and_name: + code, name = row + # DBに登録するテストデータ + test_sql_data = [code, name] + create_ultmarc_common_column_values( + regist_ymd=expect_date_str, + sys_regist_date=expect_datetime, + regist_prgm_id=module_name, + sys_update_date=expect_datetime, + update_prgm_id=module_name + ) + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_alma', + self.table_columns, + test_sql_data + ) + self.db.execute(insert_sql, insert_parameter) # sut(system under test)作成 for i, line in enumerate(test_dat_file, start=1): @@ -169,19 +176,17 @@ class TestComAlmaMapper: sut.execute_queries() # Assert - # 期待値となるモジュール名 - module_name = get_module_name(com_alma_mapper) - # 実行日時 - expect_row = ["001", "テスト大"] + create_ultmarc_common_column_values( + # 期待値作成 + expect_row = [csv_in_code_and_name[i - 1][0], csv_in_code_and_name[i - 1][1]] + create_ultmarc_common_column_values( regist_ymd=expect_date_str, - update_ymd=expect_date_str, # 更新日時が登録される + update_ymd=expect_date_str, # 更新日が登録される sys_regist_date=expect_datetime, regist_prgm_id=module_name, sys_update_date=datetime.now(), update_prgm_id=module_name ) 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(f"SELECT * FROM src05.com_alma WHERE alma_cd = '{csv_in_code_and_name[i - 1][0]}'") # 期待値検査 assert_table_results(actual_rows, expect_rows, line_number=i, ignore_col_name=['sys_update_date', 'sys_regist_date']) @@ -207,32 +212,57 @@ class TestComAlmaMapper: # Arrange # 処理日設定 self.batch_config.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') - # テストデータ1件作成 + # テストデータ作成 + # 3カラム目、論理削除されるかどうか + csv_in_code_and_name = [ + ['001', '北大', False], + ['002', '札幌医', False], + ['003', '弘大', False], + ['004', '岩手医', False], + ['005', '東北大', False], + ['006', '福島医', True] + ] test_dat_file = create_ultmarc_test_csv( - '"004","001","C","20141113","20141114","北大","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"' + [ + f'"004","{csv_in_code_and_name[0][0]}","A","20141113","20141114","{csv_in_code_and_name[0][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[1][0]}","A","20141113","20141114","{csv_in_code_and_name[1][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[2][0]}","A","20141113","20141114","{csv_in_code_and_name[2][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[3][0]}","A","20141113","20141114","{csv_in_code_and_name[3][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[4][0]}","A","20141113","20141114","{csv_in_code_and_name[4][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"', + f'"004","{csv_in_code_and_name[5][0]}","C","20141113","20141114","{csv_in_code_and_name[5][1]}","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"' + ] ) - - # モジュール名 - module_name = get_module_name(com_alma_mapper) - # DBに登録するテストデータ - test_sql_data = ["001", "北大"] + create_ultmarc_common_column_values( - regist_ymd=expect_date_str, - sys_regist_date=expect_datetime, - regist_prgm_id=module_name, - sys_update_date=expect_datetime, - update_prgm_id=module_name - ) - # 一旦全データをDBから削除 delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma', {'1': '1'}) self.db.execute(delete_sql, delete_parameter) + # テスト対象のデータをDBに登録 - insert_sql, insert_parameter = create_insert_sql_with_parameter( - 'src05.com_alma', - self.table_columns, - test_sql_data - ) - self.db.execute(insert_sql, insert_parameter) + db_in_code_and_name = [ + ['001', '北大'], + ['002', '札幌医'], + ['003', '弘大'], + ['004', ''], + ['005', '東北大'], + ['006', '福島医'] + ] + # モジュール名 + module_name = get_module_name(com_alma_mapper) + for row in db_in_code_and_name: + code, name = row + # DBに登録するテストデータ + test_sql_data = [code, name] + create_ultmarc_common_column_values( + regist_ymd=expect_date_str, + sys_regist_date=expect_datetime, + regist_prgm_id=module_name, + sys_update_date=expect_datetime, + update_prgm_id=module_name + ) + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_alma', + self.table_columns, + test_sql_data + ) + self.db.execute(insert_sql, insert_parameter) # sut(system under test)作成 for i, line in enumerate(test_dat_file, start=1): @@ -244,19 +274,18 @@ class TestComAlmaMapper: sut.execute_queries() # Assert - # 期待値となるモジュール名 - module_name = get_module_name(com_alma_mapper) - # 実行日時 - expect_row = ["001", "北大"] + create_ultmarc_common_column_values( + # 期待値作成 + expect_row = [csv_in_code_and_name[i - 1][0], csv_in_code_and_name[i - 1][1]] + create_ultmarc_common_column_values( regist_ymd=expect_date_str, - delete_ymd=expect_date_str, # 削除日が登録される + update_ymd=expect_date_str if csv_in_code_and_name[i - 1][2] is False else None, # メンテナンス区分!=C 更新日が登録される + delete_ymd=expect_date_str if csv_in_code_and_name[i - 1][2] is True else None, # メンテナンス区分==C 削除日が登録される sys_regist_date=expect_datetime, regist_prgm_id=module_name, sys_update_date=datetime.now(), update_prgm_id=module_name ) 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(f"SELECT * FROM src05.com_alma WHERE alma_cd = '{csv_in_code_and_name[i - 1][0]}'") # 期待値検査 assert_table_results(actual_rows, expect_rows, line_number=i, ignore_col_name=['sys_update_date', 'sys_regist_date'])