feat; レビュー指摘反映 前範囲取得のテストを追加

https://nds-tyo.backlog.com/git/NEWDWH2021/newsdwh2021/pullRequests/59#comment-1313618
This commit is contained in:
shimoda.m@nds-tyo.co.jp 2022-08-16 07:30:59 +09:00
parent c479c3bca3
commit 7a029f4bb7

View File

@ -10,6 +10,7 @@ Accountオブジェクトの下記SFIDのレコードはいじらないように
"""
import pytest
from requests.exceptions import ConnectTimeout, ReadTimeout
from src.config.objects import LastFetchDatetime, TargetObject
from src.salesforce.salesforce_api import SalesforceApiClient
from src.salesforce.soql_builder import SOQLBuilder
@ -126,6 +127,49 @@ class TestSalesforceApiClient:
actual = sut.fetch_sf_count(soql)
assert actual == 1
def test_fetch_sf_count_by_soql_builder_system_modstamp_all_range(self):
"""
Cases:
- SOQLBuilderから生成したSOQLでSalesforceからオブジェクトの件数が取得できること
- SystemModStampのFromが2000年1月1日以降のレコードが取得できること
- SystemModStampのToが2100年12月31日未満のレコードが取得できること
Arranges:
- SalesforceのAccountオブジェクトにレコードを作成する
- LastFetchDatetimeのFromに2000年1月1日を指定する
- LastFetchDatetimeのToに2100年12月31日を指定する
Expects:
取得件数が16になる
"""
execute_datetime = ExecuteDateTime()
last_fetch_datetime = LastFetchDatetime({
'last_fetch_datetime_from': '2000-01-01T00:00:00.000Z',
'last_fetch_datetime_to': '2100-12-31T23:59:59.000Z',
}, execute_datetime)
target_object = TargetObject({
'object_name': 'Account',
'columns': [
'Id',
'Name',
'SystemModstamp',
'LastModifiedDate',
'CustomItem1__c',
'CustomItem2__c',
'CustomItem3__c',
'CustomItem4__c',
'CustomItem5__c',
'CustomItem6__c',
'CustomItem7__c',
'CustomItem8__c'
]
}, execute_datetime)
soql_builder = SOQLBuilder(target_object, last_fetch_datetime)
soql = soql_builder.create_count_soql()
sut = SalesforceApiClient()
actual = sut.fetch_sf_count(soql)
assert actual == 16
def test_fetch_sf_data_one_record(self):
"""
Cases:
@ -265,7 +309,7 @@ class TestSalesforceApiClient:
- LastFetchDatetimeのFromがSystemModstampより大きくなるように指定するUTC指定
- LastFetchDatetimeのToがSystemModstamp未満になるように指定するUTC指定
Expects:
が1になる
得できたオブジェクト1件が期待値どおりであること
"""
execute_datetime = ExecuteDateTime()
@ -323,6 +367,50 @@ class TestSalesforceApiClient:
assert dict(actual[0]) == expect
def test_fetch_sf_data_by_soql_builder_system_modstamp_all_range(self):
"""
Cases:
- SOQLBuilderから生成したSOQLでSalesforceからオブジェクトが取得できること
- SystemModStampのFromが2000年1月1日以降のレコードが取得できること
- SystemModStampのToが2100年12月31日未満のレコードが取得できること
Arranges:
- SalesforceのAccountオブジェクトにレコードを作成する
- LastFetchDatetimeのFromに2000年1月1日を指定する
- LastFetchDatetimeのToに2100年12月31日を指定する
Expects:
取得できたオブジェクト件数が16件になる
"""
execute_datetime = ExecuteDateTime()
last_fetch_datetime = LastFetchDatetime({
'last_fetch_datetime_from': '2000-01-01T00:00:00.000Z',
'last_fetch_datetime_to': '2100-12-31T23:59:59.000Z',
}, execute_datetime)
target_object = TargetObject({
'object_name': 'Account',
'columns': [
'Id',
'Name',
'SystemModstamp',
'LastModifiedDate',
'CustomItem1__c',
'CustomItem2__c',
'CustomItem3__c',
'CustomItem4__c',
'CustomItem5__c',
'CustomItem6__c',
'CustomItem7__c',
'CustomItem8__c'
]
}, execute_datetime)
soql_builder = SOQLBuilder(target_object, last_fetch_datetime)
soql = soql_builder.create_fetch_soql()
sut = SalesforceApiClient()
actual = sut.fetch_sf_data(soql)
assert len(actual) == 16
# 内容の確認は別のケースで行っているため省略
def test_raise_create_instance_cause_auth_failed(self, monkeypatch):
"""
Cases: