feat; レビュー指摘反映 前範囲取得のテストを追加
https://nds-tyo.backlog.com/git/NEWDWH2021/newsdwh2021/pullRequests/59#comment-1313618
This commit is contained in:
parent
c479c3bca3
commit
7a029f4bb7
@ -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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user