refactor: flake8規約準拠のための修正、仕様書に合わせた説明の採番、誤字修正、オブジェクト情報追加

This commit is contained in:
Y_SAKAI 2022-08-18 20:53:29 +09:00
parent 83b6d8b1f2
commit cfcd8ec8db
10 changed files with 50 additions and 36 deletions

View File

@ -11,7 +11,7 @@ def backup_crm_csv_data_process(target_object: TargetObject, execute_datetime: E
Args:
target_object (TargetObject): 取得対象オブジェクト情報インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
csv_string (str): csvデータ
Raises:

View File

@ -12,7 +12,7 @@ def backup_crm_data_process(target_object: TargetObject, sf_object_dict: dict, e
Args:
target_object (TargetObject): 取得対象オブジェクト名
sf_object_dict (dict): Salesforceオブジェクトデータ
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
Raises:
FileUploadException: S3のファイルアップロード失敗

View File

@ -10,7 +10,7 @@ def check_object_info_process(object_info: dict, execute_datetime: ExecuteDateTi
Args:
object_info (dict): 取得対象オブジェクト情報
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
Raises:
InvalidConfigException: オブジェクト情報定義が不正だった場合

View File

@ -1,13 +1,22 @@
from src.system_var.constants import (
COLUMNS_KEY, COLUMNS_TYPE, DATE_PATTERN_YYYYMMDDTHHMMSSTZ,
DATETIME_COLUMN_DEFAULT_VALUE, DATETIME_COLUMN_KEY, DATETIME_COLUMN_TYPE,
DATE_PATTERN_EXPECTED_YYYYMMDDTHHMMSSTZ, IS_SKIP_KEY, IS_SKIP_TYPE,
IS_UPDATE_LAST_FETCH_DATETIME_KEY, IS_UPDATE_LAST_FETCH_DATETIME_TYPE,
LAST_FETCH_DATETIME_FILE_NAME_KEY, LAST_FETCH_DATETIME_FILE_NAME_TYPE,
LAST_FETCH_DATETIME_FROM_KEY, LAST_FETCH_DATETIME_FROM_TYPE,
LAST_FETCH_DATETIME_TO_KEY, LAST_FETCH_DATETIME_TO_TYPE, OBJECT_NAME_KEY,
OBJECT_NAME_TYPE, OBJECTS_KEY, OBJECTS_TYPE, UPLOAD_FILE_NAME_KEY,
UPLOAD_FILE_NAME_TYPE)
from src.system_var.constants import (COLUMNS_KEY, COLUMNS_TYPE,
DATE_PATTERN_EXPECTED_YYYYMMDDTHHMMSSTZ,
DATE_PATTERN_YYYYMMDDTHHMMSSTZ,
DATETIME_COLUMN_DEFAULT_VALUE,
DATETIME_COLUMN_KEY,
DATETIME_COLUMN_TYPE, IS_SKIP_KEY,
IS_SKIP_TYPE,
IS_UPDATE_LAST_FETCH_DATETIME_KEY,
IS_UPDATE_LAST_FETCH_DATETIME_TYPE,
LAST_FETCH_DATETIME_FILE_NAME_KEY,
LAST_FETCH_DATETIME_FILE_NAME_TYPE,
LAST_FETCH_DATETIME_FROM_KEY,
LAST_FETCH_DATETIME_FROM_TYPE,
LAST_FETCH_DATETIME_TO_KEY,
LAST_FETCH_DATETIME_TO_TYPE,
OBJECT_NAME_KEY, OBJECT_NAME_TYPE,
OBJECTS_KEY, OBJECTS_TYPE,
UPLOAD_FILE_NAME_KEY,
UPLOAD_FILE_NAME_TYPE)
from src.util.dict_checker import DictChecker
from src.util.execute_datetime import ExecuteDateTime
@ -119,10 +128,12 @@ class LastFetchDatetime():
def __validate(self) -> None:
self.__dict_checker.assert_key_exist(LAST_FETCH_DATETIME_FROM_KEY)
self.__dict_checker.assert_data_type(LAST_FETCH_DATETIME_FROM_KEY, LAST_FETCH_DATETIME_FROM_TYPE)
self.__dict_checker.assert_match_pattern(LAST_FETCH_DATETIME_FROM_KEY, DATE_PATTERN_YYYYMMDDTHHMMSSTZ,DATE_PATTERN_EXPECTED_YYYYMMDDTHHMMSSTZ)
self.__dict_checker.assert_match_pattern(LAST_FETCH_DATETIME_FROM_KEY, DATE_PATTERN_YYYYMMDDTHHMMSSTZ,
DATE_PATTERN_EXPECTED_YYYYMMDDTHHMMSSTZ)
if self.__dict_checker.check_key_exist(LAST_FETCH_DATETIME_TO_KEY):
self.__dict_checker.assert_data_type(LAST_FETCH_DATETIME_TO_KEY, LAST_FETCH_DATETIME_TO_TYPE)
self.__dict_checker.assert_match_pattern(LAST_FETCH_DATETIME_TO_KEY, DATE_PATTERN_YYYYMMDDTHHMMSSTZ,DATE_PATTERN_EXPECTED_YYYYMMDDTHHMMSSTZ)
self.__dict_checker.assert_match_pattern(LAST_FETCH_DATETIME_TO_KEY, DATE_PATTERN_YYYYMMDDTHHMMSSTZ,
DATE_PATTERN_EXPECTED_YYYYMMDDTHHMMSSTZ)
return
@property

View File

@ -71,7 +71,7 @@ def _fetch_crm_data(fetch_target_objects: FetchTargetObjects, execute_datetime:
Args:
fetch_target_objects (FetchTargetObjects): CRMオブジェクト情報インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
process_result (dict): 取得処理実行結果辞書オブジェクト
Returns:
@ -80,10 +80,12 @@ def _fetch_crm_data(fetch_target_objects: FetchTargetObjects, execute_datetime:
for object_info in fetch_target_objects:
try:
# 1処理結果出力用のマップの初期化
process_result[object_info.get(OBJECT_NAME_KEY)] = 'fail'
_fetch_crm_data_per_object(object_info, execute_datetime)
# 16処理結果出力用のマップの更新
process_result[object_info.get(OBJECT_NAME_KEY)] = 'success'
except MeDaCaCRMDataFetchException as e:
@ -105,35 +107,35 @@ def _fetch_crm_data_per_object(object_info: dict, execute_datetime: ExecuteDateT
Args:
object_info (dict): 取得対象オブジェクト情報
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
"""
# 1. オブジェクト処理結果の初期化
# 2. 対象オブジェクト情報の内容をログに出力する
logger.debug(f'D-CTRL-04 対象のオブジェクト情報を出力します オブジェクト情報:[{object_info}]')
# 2. オブジェクト情報形式チェック処理を呼び出す
# 3. オブジェクト情報形式チェック処理を呼び出す
logger.info('I-CTRL-05 オブジェクト情報形式チェック処理呼び出し')
target_object = check_object_info_process(object_info, execute_datetime)
target_object_name = target_object.object_name
# 3. 処理対象のオブジェクト名をログ出力する
# 4. 処理対象のオブジェクト名をログ出力する
logger.info(
f'I-CTRL-06 [{target_object_name}]のデータ取得を開始します')
# 4. オブジェクト情報.is_skipがTrueの場合、次のオブジェクトの処理に移行する
# 5. オブジェクト情報.is_skipがTrueの場合、次のオブジェクトの処理に移行する
if target_object.is_skip is True:
logger.info(
f'I-CTRL-07 [{target_object_name}]のデータ取得処理をスキップします')
return
# 5. データ取得期間設定処理を呼び出す
# 6. データ取得期間設定処理を呼び出す
logger.info(
f'I-CTRL-08 [{target_object_name}]のデータ取得期間設定処理呼び出し')
last_fetch_datetime = set_datetime_period_process(target_object, execute_datetime)
# 6. CRMデータ取得処理を呼び出す
# 7. CRMデータ取得処理を呼び出す
logger.info(
f'I-CTRL-09 [{target_object_name}]のデータ取得処理呼び出し')
@ -145,41 +147,41 @@ def _fetch_crm_data_per_object(object_info: dict, execute_datetime: ExecuteDateT
f'I-CTRL-22 [{target_object_name}]のレコード件数が0件のため、ファイルアップロードをスキップします')
return
# 7. 出力ファイル名をログ出力する
# 8. 出力ファイル名をログ出力する
logger.info(
f'I-CTRL-10 [{target_object_name}] の出力ファイル名は [{target_object.upload_file_name}] となります')
# 8. CRM電文データバックアップ処理を呼び出す
# 9. CRM電文データバックアップ処理を呼び出す
logger.info(
f'I-CTRL-11 [{target_object_name}] CRM電文データバックアップ処理呼び出し')
backup_crm_data_process(target_object, crm_data_response, execute_datetime)
# 9. CSV変換処理を呼び出す
# 10. CSV変換処理を呼び出す
logger.info(
f'I-CTRL-12 [{target_object.object_name}] CSV変換処理呼び出し')
csv_string = convert_crm_csv_data_process(target_object, crm_data_response)
# 10. CSVバックアップ処理を呼び出す
# 11. CSVバックアップ処理を呼び出す
logger.info(
f'I-CTRL-13 [{target_object_name}] CSVデータバックアップ処理呼び出し')
backup_crm_csv_data_process(target_object, execute_datetime, csv_string)
# 11. CSVアップロード処理を呼び出す
# 12. CSVアップロード処理を呼び出す
logger.info(
f'I-CTRL-14 [{target_object_name}] CSVデータアップロード処理呼び出し')
copy_crm_csv_data_process(target_object, execute_datetime)
# 12. メモリ解放
# 13. メモリ解放
del crm_data_response
del csv_string
gc.collect()
# 13. 前回取得日時ファイル更新処理を呼びだす
# 14. 前回取得日時ファイル更新処理を呼びだす
logger.info(
f'I-CTRL-15 [{target_object_name}] 前回取得日時ファイル更新処理呼び出し')
upload_last_fetch_datetime_process(target_object, last_fetch_datetime)
# 14. オブジェクトのアップロードが完了した旨をログに出力する
# 15. 1オブジェクトのアップロードが完了した旨をログに出力する
logger.info(f'I-CTRL-16 [{target_object_name}] 処理正常終了')
return

View File

@ -12,7 +12,7 @@ def copy_crm_csv_data_process(target_object: TargetObject, execute_datetime: Exe
Args:
target_object (TargetObject): 取得対象オブジェクト情報インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
Raises:
FileUploadException: S3のファイルアップロード失敗

View File

@ -19,7 +19,7 @@ def prepare_data_fetch_process():
Returns:
fetch_target_objects : CRMオブジェクト情報インスタンス
execute_datetime : 実行日取得インスタンス
execute_datetime : 実行日取得インスタンス
process_result : 取得処理実行結果辞書オブジェクト
"""

View File

@ -14,7 +14,7 @@ def set_datetime_period_process(target_object: TargetObject, execute_datetime: E
Args:
target_object (TargetObject): 取得対象オブジェクト情報インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
execute_datetime (ExecuteDateTime): 実行日取得インスタンス
Raises:
FileNotFoundException: S3上のファイルが存在しない場合

View File

@ -162,7 +162,7 @@ class TestController:
assert self.mock_convert_crm_csv_data_process.call_count == 3, 'CSV変換処理が複数回実行されること'
assert self.mock_backup_crm_csv_data_process.call_count == 3, 'CSVバックアップ処理が複数回実行されること'
assert self.mock_copy_crm_csv_data_process.call_count == 3, 'CSVアップロード処理が複数回実行されること'
assert self.mock_upload_last_fetch_datetime_process.call_count == 3, '前回取得日ファイル更新処理が複数回実行されること'
assert self.mock_upload_last_fetch_datetime_process.call_count == 3, '前回取得日ファイル更新処理が複数回実行されること'
assert self.mock_upload_result_data_process.called is True, '取得処理実施結果アップロード処理が1回のみ実行されること'
assert self.mock_upload_result_data_process.call_count == 1, '取得処理実施結果アップロード処理が1回のみ実行されること'

View File

@ -239,7 +239,8 @@
"MSJ_Evaluation_Comment__c",
"Position_vod__c",
"Talk_Title_vod__c",
"MSJ_Attendee_Reaction__c"
"MSJ_Attendee_Reaction__c",
"MSJ_Registration__c"
],
"is_skip": false,
"is_update_last_fetch_datetime": true