feat: objectsテストコードを追加

This commit is contained in:
Y_SAKAI 2022-08-05 23:29:19 +09:00
parent 36fb610562
commit dfcd17d78a
4 changed files with 2528 additions and 7 deletions

View File

@ -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,
@ -22,7 +24,7 @@ class FetchTargetObjects():
def __init__(self, object_info_file_dict) -> None:
self.__objects = object_info_file_dict
self.__dict_checker = DictChecker(self.__objects)
self.validate()
self.__validate()
self.__i = 0
def __iter__(self):
@ -35,7 +37,7 @@ class FetchTargetObjects():
self.__i += 1
return value
def validate(self) -> None:
def __validate(self) -> None:
self.__dict_checker.assert_key_exist(OBJECTS_KEY)
self.__dict_checker.assert_data_type(OBJECTS_KEY, OBJECTS_TYPE)
@ -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)

View File

@ -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

View File

@ -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}」キーのリストの値は必須です')

File diff suppressed because it is too large Load Diff