feat: execute_datetimeのテストコード追加
This commit is contained in:
parent
ec74a8cf46
commit
2153eb5a20
81
ecs/crm-datafetch/tests/util/test_execute_datetime.py
Normal file
81
ecs/crm-datafetch/tests/util/test_execute_datetime.py
Normal file
@ -0,0 +1,81 @@
|
||||
import re
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from src.util.execute_datetime import ExecuteDateTime
|
||||
|
||||
|
||||
class TestExecuteDateTime:
|
||||
|
||||
def test_constructor(self):
|
||||
"""
|
||||
Cases:
|
||||
インスタンス生成テスト
|
||||
UTC時刻が文字列で設定されるかのチェック
|
||||
Arranges:
|
||||
- 現在時刻の保持
|
||||
- 期待される値の正規表現作成
|
||||
Expects:
|
||||
- 作成されたクラスが保持している時刻が、期待値と一致すること
|
||||
- 作成されたクラスが保持している時刻が、正規表現と一致すること
|
||||
"""
|
||||
|
||||
# Arranges
|
||||
datetime_now = datetime.now(timezone.utc).strftime('%Y-%m-%dT%H:%M:%S.000Z')
|
||||
|
||||
pattern = r'[12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\.000Z'
|
||||
|
||||
# Expects
|
||||
sut = ExecuteDateTime()
|
||||
|
||||
assert str(sut) == datetime_now
|
||||
assert re.fullmatch(pattern, str(sut))
|
||||
|
||||
def test_to_path(self) -> str:
|
||||
"""
|
||||
Cases:
|
||||
生成されたパスがYYYYMMDD/HHMMSSの形式で出力されること
|
||||
Arranges:
|
||||
- 現在時刻をパスに変換する
|
||||
- 期待される値の正規表現作成
|
||||
Expects:
|
||||
- 戻り値が、期待値と一致する
|
||||
- 戻り値が、正規表現と一致すること
|
||||
"""
|
||||
|
||||
# Arranges
|
||||
datetime_now_path = datetime.now(timezone.utc).strftime(
|
||||
'%Y-%m-%dT%H:%M:%S.000Z').rstrip('000Z').translate(str.maketrans({'-': '/', 'T': '/', ':': None, '.': None}))
|
||||
|
||||
pattern = r'[12]\d{3}\/(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])\/([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9]'
|
||||
|
||||
# Expects
|
||||
sut = ExecuteDateTime()
|
||||
actual = sut.to_path()
|
||||
|
||||
assert actual == datetime_now_path
|
||||
assert re.fullmatch(pattern, actual)
|
||||
|
||||
def test_format_date(self) -> str:
|
||||
"""
|
||||
Cases:
|
||||
生成されたパスがYYYYMMDDHHMMSSの形式で出力されること
|
||||
Arranges:
|
||||
- 現在時刻をパスに変換する
|
||||
- 期待される値の正規表現作成
|
||||
Expects:
|
||||
- 戻り値が、期待値と一致する
|
||||
- 戻り値が、正規表現と一致すること
|
||||
"""
|
||||
|
||||
# Arranges
|
||||
datetime_now_path = datetime.now(timezone.utc).strftime(
|
||||
'%Y-%m-%dT%H:%M:%S.000Z').rstrip('000Z').translate(str.maketrans({'-': None, 'T': None, ':': None, '.': None}))
|
||||
|
||||
pattern = r'[12]\d{3}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9]'
|
||||
|
||||
# Expects
|
||||
sut = ExecuteDateTime()
|
||||
actual = sut.format_date()
|
||||
|
||||
assert actual == datetime_now_path
|
||||
assert re.fullmatch(pattern, actual)
|
||||
Loading…
x
Reference in New Issue
Block a user