feat: COM_医師勤務先 削除レコードのテスト

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-04-11 20:47:05 +09:00
parent 58e3b7a25f
commit 766bf45ab5
6 changed files with 182 additions and 13 deletions

View File

@ -0,0 +1,5 @@
"502","01","997682","","B","00","5408060","","1","20141204","20141206","","","","","",""
"502","01","997906","","B","00","5409446","","1","20141128","20141206","","","","","",""
"502","01","997682","","B","00","5412977","","1","20141204","20141206","","","","","",""
"502","01","995783","","B","00","5414992","","1","20141204","20141206","","","","","",""
"502","01","997906","","B","00","5503358","","1","20141202","20141206","","","","","",""
1 502 01 997682 B 00 5408060 1 20141204 20141206
2 502 01 997906 B 00 5409446 1 20141128 20141206
3 502 01 997682 B 00 5412977 1 20141204 20141206
4 502 01 995783 B 00 5414992 1 20141204 20141206
5 502 01 997906 B 00 5503358 1 20141202 20141206

View File

@ -0,0 +1,11 @@
"dcf_dsf_inst_cd","dcf_pcf_dr_cd","blng_sec_cd","post_cd","identity_cd","aply_start_ymd","blng_sec_name_kana","blng_sec_name","notdm_flg","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
"005414992","01995783",,"501",,"2020-02-22",,,,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005507600","01995783","9999",,"802","2020-02-23",,,,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
"005402984","01997682","1512","165",,"2020-02-23","シヨウカキゲカ","消化器外科",,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
"005408060","01997682","6802",,"144","2020-02-22","シヨウカキゲカガク1","消化器外科学Ⅰ",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005412977","01997682","6720",,"144","2020-02-22","シヨウカキゲカガク","消化器外科学",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005409446","01997906","1118","501",,"2020-02-22","ケツエキナイカ","血液内科",,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
"005503358","01997906","1118","172","144","2020-02-22","ケツエキナイカ","血液内科",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005504428","01997906","7212",,"144","2020-02-22","ユケツ.サイボウチリヨウガク","輸血・細胞治療学",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005507600","01997906","9114",,"144","2020-02-22","サイボウイシヨクブモン","細胞移植部門",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005504428","01999613","9999","501","144","2020-02-23","ナイブンピ.ホネタイシヤガイライ","内分泌・骨代謝外来",,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
1 dcf_dsf_inst_cd dcf_pcf_dr_cd blng_sec_cd post_cd identity_cd aply_start_ymd blng_sec_name_kana blng_sec_name notdm_flg regist_ymd update_ymd regist_date create_user update_date update_user sys_regist_date regist_prgm_id sys_update_date update_prgm_id
2 005414992 01995783 501 2020-02-22 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
3 005507600 01995783 9999 802 2020-02-23 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk
4 005402984 01997682 1512 165 2020-02-23 シヨウカキゲカ 消化器外科 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk
5 005408060 01997682 6802 144 2020-02-22 シヨウカキゲカガク1 消化器外科学Ⅰ 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
6 005412977 01997682 6720 144 2020-02-22 シヨウカキゲカガク 消化器外科学 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
7 005409446 01997906 1118 501 2020-02-22 ケツエキナイカ 血液内科 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk
8 005503358 01997906 1118 172 144 2020-02-22 ケツエキナイカ 血液内科 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
9 005504428 01997906 7212 144 2020-02-22 ユケツ.サイボウチリヨウガク 輸血・細胞治療学 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
10 005507600 01997906 9114 144 2020-02-22 サイボウイシヨクブモン 細胞移植部門 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
11 005504428 01999613 9999 501 144 2020-02-23 ナイブンピ.ホネタイシヤガイライ 内分泌・骨代謝外来 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk

View File

@ -0,0 +1,4 @@
"dr_wrkplace_his_key","dcf_dsf_inst_cd","dcf_pcf_dr_cd","blng_sec_cd","post_cd","identity_cd","aply_start_ymd","blng_sec_name_kana","blng_sec_name","notdm_flg","aply_end_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
"1482020","005507600","01995783","9112","133","144","20200222","ハツセイ.セイシヨクブモン","発生・生殖部門",,"20200222","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:43:43","com_dr_wrkplace_mapper","2022-02-03 14:43:43","com_dr_wrkplace_mapper"
"1482021","005402984","01997682","1512","165","144","20200222","シヨウカキゲカ","消化器外科",,"20200222","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:43:43","com_dr_wrkplace_mapper","2022-02-03 14:43:43","com_dr_wrkplace_mapper"
"1482022","005504428","01999613","5140","999","144","20200222","ヤクリガク","薬理学",,"20200222","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:43:43","com_dr_wrkplace_mapper","2022-02-03 14:43:43","com_dr_wrkplace_mapper"
1 dr_wrkplace_his_key dcf_dsf_inst_cd dcf_pcf_dr_cd blng_sec_cd post_cd identity_cd aply_start_ymd blng_sec_name_kana blng_sec_name notdm_flg aply_end_ymd regist_ymd update_ymd regist_date create_user update_date update_user sys_regist_date regist_prgm_id sys_update_date update_prgm_id
2 1482020 005507600 01995783 9112 133 144 20200222 ハツセイ.セイシヨクブモン 発生・生殖部門 20200222 20220203 NULL NULL NULL NULL NULL 2022-02-03 14:43:43 com_dr_wrkplace_mapper 2022-02-03 14:43:43 com_dr_wrkplace_mapper
3 1482021 005402984 01997682 1512 165 144 20200222 シヨウカキゲカ 消化器外科 20200222 20220203 NULL NULL NULL NULL NULL 2022-02-03 14:43:43 com_dr_wrkplace_mapper 2022-02-03 14:43:43 com_dr_wrkplace_mapper
4 1482022 005504428 01999613 5140 999 144 20200222 ヤクリガク 薬理学 20200222 20220203 NULL NULL NULL NULL NULL 2022-02-03 14:43:43 com_dr_wrkplace_mapper 2022-02-03 14:43:43 com_dr_wrkplace_mapper

View File

@ -0,0 +1,6 @@
"dcf_dsf_inst_cd","dcf_pcf_dr_cd","blng_sec_cd","post_cd","identity_cd","aply_start_ymd","blng_sec_name_kana","blng_sec_name","notdm_flg","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
"005507600","01995783","9999",,"802","2020-02-23",,,,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
"005402984","01997682","1512","165",,"2020-02-23","シヨウカキゲカ","消化器外科",,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
"005504428","01997906","7212",,"144","2020-02-22","ユケツ.サイボウチリヨウガク","輸血・細胞治療学",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005507600","01997906","9114",,"144","2020-02-22","サイボウイシヨクブモン","細胞移植部門",,"2022-02-03","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:23:39","clsComDrWrk"
"005504428","01999613","9999","501","144","2020-02-23","ナイブンピ.ホネタイシヤガイライ","内分泌・骨代謝外来",,"2022-02-03","2022-02-03","NULL","NULL","NULL","NULL","2022-02-03 14:23:39","clsComDrWrk","2022-02-03 14:43:43","clsComDrWrk"
1 dcf_dsf_inst_cd dcf_pcf_dr_cd blng_sec_cd post_cd identity_cd aply_start_ymd blng_sec_name_kana blng_sec_name notdm_flg regist_ymd update_ymd regist_date create_user update_date update_user sys_regist_date regist_prgm_id sys_update_date update_prgm_id
2 005507600 01995783 9999 802 2020-02-23 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk
3 005402984 01997682 1512 165 2020-02-23 シヨウカキゲカ 消化器外科 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk
4 005504428 01997906 7212 144 2020-02-22 ユケツ.サイボウチリヨウガク 輸血・細胞治療学 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
5 005507600 01997906 9114 144 2020-02-22 サイボウイシヨクブモン 細胞移植部門 2022-02-03 NULL NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:23:39 clsComDrWrk
6 005504428 01999613 9999 501 144 2020-02-23 ナイブンピ.ホネタイシヤガイライ 内分泌・骨代謝外来 2022-02-03 2022-02-03 NULL NULL NULL NULL 2022-02-03 14:23:39 clsComDrWrk 2022-02-03 14:43:43 clsComDrWrk

View File

@ -0,0 +1,9 @@
"dr_wrkplace_his_key","dcf_dsf_inst_cd","dcf_pcf_dr_cd","blng_sec_cd","post_cd","identity_cd","aply_start_ymd","blng_sec_name_kana","blng_sec_name","notdm_flg","aply_end_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
"1482020","005507600","01995783","9112","133","144","20200222","ハツセイ.セイシヨクブモン","発生・生殖部門",,"20200222","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:43:43","com_dr_wrkplace_mapper","2022-02-03 14:43:43","com_dr_wrkplace_mapper"
"1482021","005402984","01997682","1512","165","144","20200222","シヨウカキゲカ","消化器外科",,"20200222","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:43:43","com_dr_wrkplace_mapper","2022-02-03 14:43:43","com_dr_wrkplace_mapper"
"1482022","005504428","01999613","5140","999","144","20200222","ヤクリガク","薬理学",,"20200222","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 14:43:43","com_dr_wrkplace_mapper","2022-02-03 14:43:43","com_dr_wrkplace_mapper"
"1482023","005408060","01997682","6802","999","144","20200222","シヨウカキゲカガク1","消化器外科学Ⅰ",,"20200223","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 16:18:08","com_dr_wrkplace_mapper","2022-02-03 16:18:08","com_dr_wrkplace_mapper"
"1482024","005409446","01997906","1118","501","999","20200222","ケツエキナイカ","血液内科",,"20200223","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 16:18:08","com_dr_wrkplace_mapper","2022-02-03 16:18:08","com_dr_wrkplace_mapper"
"1482025","005412977","01997682","6720","999","144","20200222","シヨウカキゲカガク","消化器外科学",,"20200223","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 16:18:08","com_dr_wrkplace_mapper","2022-02-03 16:18:08","com_dr_wrkplace_mapper"
"1482026","005414992","01995783","9999","501","999","20200222",,,,"20200223","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 16:18:08","com_dr_wrkplace_mapper","2022-02-03 16:18:08","com_dr_wrkplace_mapper"
"1482027","005503358","01997906","1118","172","144","20200222","ケツエキナイカ","血液内科",,"20200223","20220203","NULL","NULL","NULL","NULL","NULL","2022-02-03 16:18:08","com_dr_wrkplace_mapper","2022-02-03 16:18:08","com_dr_wrkplace_mapper"
1 dr_wrkplace_his_key dcf_dsf_inst_cd dcf_pcf_dr_cd blng_sec_cd post_cd identity_cd aply_start_ymd blng_sec_name_kana blng_sec_name notdm_flg aply_end_ymd regist_ymd update_ymd regist_date create_user update_date update_user sys_regist_date regist_prgm_id sys_update_date update_prgm_id
2 1482020 005507600 01995783 9112 133 144 20200222 ハツセイ.セイシヨクブモン 発生・生殖部門 20200222 20220203 NULL NULL NULL NULL NULL 2022-02-03 14:43:43 com_dr_wrkplace_mapper 2022-02-03 14:43:43 com_dr_wrkplace_mapper
3 1482021 005402984 01997682 1512 165 144 20200222 シヨウカキゲカ 消化器外科 20200222 20220203 NULL NULL NULL NULL NULL 2022-02-03 14:43:43 com_dr_wrkplace_mapper 2022-02-03 14:43:43 com_dr_wrkplace_mapper
4 1482022 005504428 01999613 5140 999 144 20200222 ヤクリガク 薬理学 20200222 20220203 NULL NULL NULL NULL NULL 2022-02-03 14:43:43 com_dr_wrkplace_mapper 2022-02-03 14:43:43 com_dr_wrkplace_mapper
5 1482023 005408060 01997682 6802 999 144 20200222 シヨウカキゲカガク1 消化器外科学Ⅰ 20200223 20220203 NULL NULL NULL NULL NULL 2022-02-03 16:18:08 com_dr_wrkplace_mapper 2022-02-03 16:18:08 com_dr_wrkplace_mapper
6 1482024 005409446 01997906 1118 501 999 20200222 ケツエキナイカ 血液内科 20200223 20220203 NULL NULL NULL NULL NULL 2022-02-03 16:18:08 com_dr_wrkplace_mapper 2022-02-03 16:18:08 com_dr_wrkplace_mapper
7 1482025 005412977 01997682 6720 999 144 20200222 シヨウカキゲカガク 消化器外科学 20200223 20220203 NULL NULL NULL NULL NULL 2022-02-03 16:18:08 com_dr_wrkplace_mapper 2022-02-03 16:18:08 com_dr_wrkplace_mapper
8 1482026 005414992 01995783 9999 501 999 20200222 20200223 20220203 NULL NULL NULL NULL NULL 2022-02-03 16:18:08 com_dr_wrkplace_mapper 2022-02-03 16:18:08 com_dr_wrkplace_mapper
9 1482027 005503358 01997906 1118 172 144 20200222 ケツエキナイカ 血液内科 20200223 20220203 NULL NULL NULL NULL NULL 2022-02-03 16:18:08 com_dr_wrkplace_mapper 2022-02-03 16:18:08 com_dr_wrkplace_mapper

View File

@ -1,5 +1,4 @@
import os.path as path
from datetime import datetime
import pytest
@ -53,7 +52,8 @@ class TestComDrWrkplaceMapper:
# Arrange
# 処理日設定
self.batch_config.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
# 適用開始日と同値になる
self.batch_config.syor_date = '2020/02/22'
# テスト用のCSVを読み込む
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_wrkplace_insert.csv'))
# 一旦全データをDBから削除
@ -87,9 +87,9 @@ class TestComDrWrkplaceMapper:
# Assert
# 期待値ファイルを読み込む
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_wrkplace_insert.csv'))
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list]
expect_dr_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_wrkplace_insert.csv'))
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_dr_data_list]
primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_dr_data_list]
# 複合主キーのため、1件ずつ取得して期待値を作る
actual_dr_data_list = []
actual_dr_select_sql = """\
@ -119,12 +119,14 @@ class TestComDrWrkplaceMapper:
{**param_dcf_dsf_inst_cd, **param_dcf_pcf_dr_cd})
assert len(actual_his_data) == 0, '履歴が作成されていないこと'
assert len(actual_dr_data_list) == len(expect_dr_data_list), 'COM_医師勤務先が期待値通りの件数作成されていること'
# 期待値検査
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date', 'aply_start_ymd']
assert_table_results(actual_dr_data_list, expect_data_list, ignore_col_name=ignore_columns)
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date']
assert_table_results(actual_dr_data_list, expect_dr_data_list, ignore_col_name=ignore_columns)
# 動的日付項目の個別確認
line_number = 0
for actual_row, expect_row in zip(actual_dr_data_list, expect_data_list):
for actual_row, expect_row in zip(actual_dr_data_list, expect_dr_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:
@ -139,12 +141,13 @@ class TestComDrWrkplaceMapper:
- 更新対象となるレコードを登録する
Expects:
- COM_医師勤務先の登録内容が期待値と一致すること
- COM_医師勤務先履歴にデータが登録されないこと
- COM_医師勤務先履歴にデータが登録され期待値と一致すること
"""
# Arrange
# 処理日設定
self.batch_config.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
# 適用開始日と同値、適用終了日の+1日になる
self.batch_config.syor_date = '2020/02/23'
# テスト用のCSVを読み込む
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_wrkplace_update.csv'))
# 一旦全データをDBから削除
@ -213,10 +216,12 @@ class TestComDrWrkplaceMapper:
if len(actual_his_data) != 0:
actual_his_data_list.append(actual_his_data[0])
assert len(actual_his_data_list) == len(expect_his_data_list), '履歴が期待値通りの件数作成されていること'
assert len(actual_his_data_list) == len(expect_his_data_list), 'COM_医師勤務先が期待値通りの件数作成されていること'
assert len(actual_his_data_list) == len(expect_his_data_list), 'COM_医師勤務先履歴が期待値通りの件数作成されていること'
# 期待値検査
# COM_医師勤務先
dr_ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_ymd', 'sys_update_date', 'sys_regist_date', 'aply_start_ymd']
dr_ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_ymd', 'sys_update_date', 'sys_regist_date']
assert_table_results(actual_dr_data_list, expect_dr_data_list, ignore_col_name=dr_ignore_columns)
# 動的日付項目の個別確認
line_number = 0
@ -230,7 +235,136 @@ class TestComDrWrkplaceMapper:
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
# COM_医師勤務先履歴
his_ignore_columns = ['dr_wrkplace_his_key', 'regist_ymd', 'update_ymd', 'aply_end_ymd', 'sys_update_date', 'sys_regist_date', 'aply_start_ymd']
his_ignore_columns = ['dr_wrkplace_his_key', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
assert_table_results(actual_his_data_list, expect_his_data_list, ignore_col_name=his_ignore_columns)
# 動的日付項目の個別確認
line_number = 0
for actual_row, expect_row in zip(actual_dr_data_list, expect_dr_data_list):
line_number += 1
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
if actual_col_name in his_ignore_columns:
if expect_row[expect_col_name] is None:
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'{line_number}行目:{actual_col_name}が、期待値以降であること'
def test_delete_record(self):
"""
Cases:
COM_DCF医師勤務先テーブルのレコードを削除する
Arranges:
- CSVデータを用意し読み込む
- 削除対象となるレコードを登録する
Expects:
- COM_医師勤務先の登録内容が期待値と一致すること
- COM_医師勤務先履歴にデータが登録されないこと
"""
# Arrange
# 処理日設定
self.batch_config.syor_date = '2020/02/24'
# テスト用のCSVを読み込む
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_wrkplace_delete.csv'))
# 一旦全データをDBから削除
# COM_医師勤務先
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_wrkplace', {'1': '1'})
self.db.execute(delete_sql, delete_parameter)
# COM_医師勤務先履歴
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_wrkplace_his', {'1': '1'})
self.db.execute(delete_sql, delete_parameter)
# COM_所属部科
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_blng_sec', {'1': '1'})
self.db.execute(delete_sql, delete_parameter)
# COM_医師勤務先を登録
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_wrkplace_before_delete.csv'))
for test_data in test_sql_data_list:
insert_sql, insert_parameter = create_insert_sql_with_parameter(
'src05.com_dr_wrkplace',
test_data.keys(),
test_data.values()
)
self.db.execute(insert_sql, insert_parameter)
# COM_医師勤務先履歴を登録
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_wrkplace_his_before_delete.csv'))
for test_data in test_sql_data_list:
insert_sql, insert_parameter = create_insert_sql_with_parameter(
'src05.com_dr_wrkplace_his',
test_data.keys(),
test_data.values()
)
self.db.execute(insert_sql, insert_parameter)
# Act
for line_number, line in enumerate(test_dat_file, start=1):
sut: com_dr_wrkplace_mapper.ComDrWrkplaceMapper = create_ultmarc_table_mapper_sut(line, self.db)
assert type(sut) is com_dr_wrkplace_mapper.ComDrWrkplaceMapper, f'{line_number}行目:マッパークラスが期通りか'
sut.make_query()
sut.execute_queries()
# Assert
# 期待値ファイルを読み込む
expect_dr_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_wrkplace_delete.csv'))
expect_his_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_wrkplace_his_delete.csv'))
# 複合主キーのため、1件ずつ取得して期待値を作る
actual_dr_data_list = []
actual_his_data_list = []
actual_dr_select_sql = """\
SELECT * FROM src05.com_dr_wrkplace
WHERE
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
AND dcf_pcf_dr_cd = :dcf_pcf_dr_cd\
"""
actual_his_select_sql = """\
SELECT * FROM src05.com_dr_wrkplace_his
WHERE
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
AND dcf_pcf_dr_cd = :dcf_pcf_dr_cd
"""
# COM_医師勤務先の取得
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_dr_data_list]
primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_dr_data_list]
for param_dcf_dsf_inst_cd, param_dcf_pcf_dr_cd in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_dcf_pcf_dr_cd):
actual_dr_data = self.db.execute_select(
actual_dr_select_sql,
{**param_dcf_dsf_inst_cd, **param_dcf_pcf_dr_cd})
assert len(actual_dr_data) == 1, '1件取得できていること'
actual_dr_data_list.append(actual_dr_data[0])
# COM_医師勤務先履歴の取得
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_his_data_list]
primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_his_data_list]
for param_dcf_dsf_inst_cd, param_dcf_pcf_dr_cd in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_dcf_pcf_dr_cd):
# COM_医師勤務先履歴の取得
actual_his_data = self.db.execute_select(
actual_his_select_sql,
{**param_dcf_dsf_inst_cd, **param_dcf_pcf_dr_cd})
assert len(actual_his_data) == 1, '1件取得できていること'
actual_his_data_list.append(actual_his_data[0])
assert len(actual_dr_data_list) == len(expect_dr_data_list), 'COM_医師勤務先が期待値通りの件数作成されていること'
assert len(actual_his_data_list) == len(expect_his_data_list), 'COM_医師勤務先履歴が期待値通りの件数作成されていること'
# 期待値検査
# COM_医師勤務先
dr_ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_ymd', 'sys_update_date', 'sys_regist_date']
assert_table_results(actual_dr_data_list, expect_dr_data_list, ignore_col_name=dr_ignore_columns)
# 動的日付項目の個別確認
line_number = 0
for actual_row, expect_row in zip(actual_dr_data_list, expect_dr_data_list):
line_number += 1
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
if actual_col_name in dr_ignore_columns:
if expect_row[expect_col_name] is None:
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'{line_number}行目:{actual_col_name}が、期待値以降であること'
# COM_医師勤務先履歴
his_ignore_columns = ['dr_wrkplace_his_key', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
assert_table_results(actual_his_data_list, expect_his_data_list, ignore_col_name=his_ignore_columns)
# 動的日付項目の個別確認
line_number = 0