From e3cd0dbb101a4ec1749e737bcfa61278704af63c Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Fri, 5 Aug 2022 08:14:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:Salesforce=E9=96=A2=E9=80=A3=E3=81=AE?= =?UTF-8?q?=E6=9C=80=E4=BD=8E=E9=99=90=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/salesforce/salesforce_api.py | 8 +-- .../tests/salesforce/test_salesfoce.py | 52 +++++++++++++++++++ 2 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 ecs/crm-datafetch/tests/salesforce/test_salesfoce.py diff --git a/ecs/crm-datafetch/src/salesforce/salesforce_api.py b/ecs/crm-datafetch/src/salesforce/salesforce_api.py index 4e4bb267..edd9aeb3 100644 --- a/ecs/crm-datafetch/src/salesforce/salesforce_api.py +++ b/ecs/crm-datafetch/src/salesforce/salesforce_api.py @@ -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') diff --git a/ecs/crm-datafetch/tests/salesforce/test_salesfoce.py b/ecs/crm-datafetch/tests/salesforce/test_salesfoce.py new file mode 100644 index 00000000..413fae92 --- /dev/null +++ b/ecs/crm-datafetch/tests/salesforce/test_salesfoce.py @@ -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()