feat:Salesforce関連の最低限のテストを追加

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2022-08-05 08:14:09 +09:00
parent 9af0d9dd5c
commit e3cd0dbb10
2 changed files with 56 additions and 4 deletions

View File

@ -13,16 +13,16 @@ class SalesforceApiClient():
domain=CRM_AUTH_DOMAIN
)
def query(self, soql, include_deleted=True, conn_timeout=100, read_timeout=300):
def __query(self, soql, include_deleted=True, conn_timeout=100, read_timeout=300):
return self.__sf.query(soql, include_deleted, timeout=(float(conn_timeout), float(read_timeout)))
def query_all(self, soql, include_deleted=True, conn_timeout=100, read_timeout=300):
def __query_all(self, soql, include_deleted=True, conn_timeout=100, read_timeout=300):
return self.__sf.query_all(soql, include_deleted, timeout=(float(conn_timeout), float(read_timeout)))
def fetch_sf_count(self, soql: str):
count_res = self.query(soql, conn_timeout=CRM_AUTH_TIMEOUT, read_timeout=CRM_GET_RECORD_COUNT_TIMEOUT)
count_res = self.__query(soql, conn_timeout=CRM_AUTH_TIMEOUT, read_timeout=CRM_GET_RECORD_COUNT_TIMEOUT)
return count_res.get('records')[0].get('expr0')
def fetch_sf_data(self, soql: str):
data_res = self.query_all(soql, conn_timeout=CRM_AUTH_TIMEOUT, read_timeout=CRM_FETCH_RECORD_TIMEOUT)
data_res = self.__query_all(soql, conn_timeout=CRM_AUTH_TIMEOUT, read_timeout=CRM_FETCH_RECORD_TIMEOUT)
return data_res.get('records')

View File

@ -0,0 +1,52 @@
import pytest
from src.salesforce.salesforce_api import SalesforceApiClient
class TestSalesforceApiClient:
def test_fetch_sf_count(self):
soql = """SELECT
COUNT(Id)
FROM
Account
WHERE
SystemModstamp > 2022-08-04T00:00:00.000Z AND
SystemModstamp <= 2022-08-04T16:36:00.000Z
"""
sut = SalesforceApiClient()
actual = sut.fetch_sf_count(soql)
assert actual >= 1
def test_fetch_sf_data_one_record(self):
soql = """SELECT
Id,
Name,
SystemModstamp,
LastModifiedDate,
CustomItem1__c,
CustomItem2__c,
CustomItem3__c,
CustomItem4__c,
CustomItem5__c,
CustomItem6__c,
CustomItem7__c,
CustomItem8__c
FROM
Account
WHERE
SystemModstamp > 2022-08-04T00:00:00.000Z AND
SystemModstamp <= 2022-08-04T16:36:00.000Z
"""
sut = SalesforceApiClient()
actual = sut.fetch_sf_data(soql)
print(actual)
assert len(actual) >= 1
def test_raise_create_instance_cause_auth_failed(self, monkeypatch):
monkeypatch.setattr('src.salesforce.salesforce_api.CRM_USER_NAME', 'invalid_username')
with pytest.raises(Exception):
SalesforceApiClient()