feat: objectsテストコードを追加
This commit is contained in:
parent
5ff7181f9d
commit
47407a5cef
@ -9,7 +9,9 @@ from src.system_var.constants import (COLUMNS_KEY, COLUMNS_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,
|
||||
@ -58,6 +60,7 @@ class TargetObject():
|
||||
self.__dict_checker.assert_data_type(OBJECT_NAME_KEY, OBJECT_NAME_TYPE)
|
||||
self.__dict_checker.assert_key_exist(COLUMNS_KEY)
|
||||
self.__dict_checker.assert_data_type(COLUMNS_KEY, COLUMNS_TYPE)
|
||||
self.__dict_checker.assert_list_empty(COLUMNS_KEY)
|
||||
|
||||
return
|
||||
|
||||
@ -95,7 +98,7 @@ class TargetObject():
|
||||
def is_update_last_fetch_datetime(self) -> bool:
|
||||
if self.__dict_checker.check_key_exist(IS_UPDATE_LAST_FETCH_DATETIME_KEY):
|
||||
return self.__object_info[IS_UPDATE_LAST_FETCH_DATETIME_KEY]
|
||||
return False
|
||||
return True
|
||||
|
||||
@property
|
||||
def last_fetch_datetime_file_name(self) -> str:
|
||||
@ -107,7 +110,7 @@ class TargetObject():
|
||||
def upload_file_name(self) -> str:
|
||||
if self.__dict_checker.check_key_exist(UPLOAD_FILE_NAME_KEY):
|
||||
return self.__object_info[UPLOAD_FILE_NAME_KEY].format(execute_datetime=self.__execute_datetime.format_date())
|
||||
return f'{self.__object_info[OBJECT_NAME_KEY]}_{self.__execute_datetime.format_date()}'
|
||||
return f'CRM_{self.__object_info[OBJECT_NAME_KEY]}_{self.__execute_datetime.format_date()}'
|
||||
|
||||
@property
|
||||
def datetime_column(self) -> str:
|
||||
@ -122,9 +125,11 @@ class LastFetchDatetime():
|
||||
self.__validate()
|
||||
|
||||
def __validate(self) -> None:
|
||||
if self.__dict_checker.check_key_exist(LAST_FETCH_DATETIME_FROM_KEY):
|
||||
self.__dict_checker.assert_match_pattern(LAST_FETCH_DATETIME_FROM_KEY, DATE_PATTERN_YYYYMMDDTHHMMSSTZ)
|
||||
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)
|
||||
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)
|
||||
return
|
||||
|
||||
@ -136,4 +141,4 @@ class LastFetchDatetime():
|
||||
def last_fetch_datetime_to(self) -> str:
|
||||
if self.__dict_checker.check_key_exist(LAST_FETCH_DATETIME_TO_KEY):
|
||||
return self.__last_fetch_datetime_file_dict[LAST_FETCH_DATETIME_TO_KEY]
|
||||
return self.__execute_datetime
|
||||
return str(self.__execute_datetime)
|
||||
|
||||
@ -93,4 +93,6 @@ DATETIME_COLUMN_KEY = 'datetime_column'
|
||||
DATETIME_COLUMN_TYPE = str
|
||||
DATETIME_COLUMN_DEFAULT_VALUE = 'SystemModstamp'
|
||||
LAST_FETCH_DATETIME_TO_KEY = 'last_fetch_datetime_to'
|
||||
LAST_FETCH_DATETIME_TO_TYPE = str
|
||||
LAST_FETCH_DATETIME_FROM_KEY = 'last_fetch_datetime_from'
|
||||
LAST_FETCH_DATETIME_FROM_TYPE = str
|
||||
|
||||
@ -9,6 +9,10 @@ class DictChecker:
|
||||
"""辞書型バリュー空文字チェック"""
|
||||
return self.__object_dict[check_key] != '' and self.__object_dict[check_key] is not None
|
||||
|
||||
def is_list_empty(self, check_key):
|
||||
"""list型データ存在チェック"""
|
||||
return len(self.__object_dict[check_key]) != 0
|
||||
|
||||
def check_key_exist(self, check_key: str) -> bool:
|
||||
"""辞書型キー存在チェック"""
|
||||
return check_key in self.__object_dict and self.is_empty(check_key)
|
||||
@ -41,3 +45,7 @@ class DictChecker:
|
||||
raise Exception(f'「{check_key}」キーの値の正規表現「{regex_str}」チェックに失敗しました')
|
||||
|
||||
return
|
||||
|
||||
def assert_list_empty(self, check_key: str):
|
||||
if not self.is_list_empty(check_key):
|
||||
raise Exception(f'「{check_key}」キーのリストの値は必須です')
|
||||
|
||||
2506
ecs/crm-datafetch/tests/config/test_objects.py
Normal file
2506
ecs/crm-datafetch/tests/config/test_objects.py
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user