feat: レビュー指摘反映 タイムアウト例外・SOQL不正の例外ケースを追加

https://nds-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:43:08 +09:00
parent 7a029f4bb7
commit 61d7275c2b

View File

@ -416,10 +416,126 @@ class TestSalesforceApiClient:
Cases:
存在しないユーザを指定した場合エラーが発生すること
Arranges:
なし
CRMのユーザ名を保持する環境変数に存在しないユーザー名を指定する
Expects:
ユーザ認証でエラーが発生すること
"""
monkeypatch.setattr('src.salesforce.salesforce_api.CRM_USER_NAME', 'invalid_username')
with pytest.raises(Exception):
SalesforceApiClient()
def test_raise_fetch_sf_count_auth_timeout(self, monkeypatch):
"""
Cases:
認証タイムアウトが発生した場合エラーが発生すること
Arranges:
認証タイムアウト秒数を保持する環境変数に0.0000000001を指定する
Expects:
コネクションタイムアウトエラーが発生すること
"""
monkeypatch.setattr('src.salesforce.salesforce_api.CRM_AUTH_TIMEOUT', 0.0000000001)
sf = SalesforceApiClient()
soql = """SELECT
COUNT(Id)
FROM
Account
WHERE
SystemModstamp > 2022-08-04T00:00:00.000Z AND
SystemModstamp <= 2022-08-06T00:00:00.000Z
"""
with pytest.raises(ConnectTimeout):
sf.fetch_sf_count(soql)
def test_raise_fetch_sf_count_read_timeout(self, monkeypatch):
"""
Cases:
読み取りタイムアウトが発生した場合エラーが発生すること
Arranges:
CRMの件数取得タイムアウト秒数を保持する環境変数に0.0000000001を指定する
Expects:
読み取りタイムアウトエラーが発生すること
"""
monkeypatch.setattr('src.salesforce.salesforce_api.CRM_GET_RECORD_COUNT_TIMEOUT', 0.0000000001)
sf = SalesforceApiClient()
soql = """SELECT
COUNT(Id)
FROM
Account
WHERE
SystemModstamp > 2022-08-04T00:00:00.000Z AND
SystemModstamp <= 2022-08-06T00:00:00.000Z
"""
with pytest.raises(ReadTimeout):
sf.fetch_sf_count(soql)
def test_raise_fetch_sf_count_invalid_soql(self, monkeypatch):
"""
Cases:
不正なSOQLを指定した場合にエラーが発生すること
Arranges:
不正なSOQLを作成する
Expects:
エラーが発生すること
"""
sf = SalesforceApiClient()
soql = "SELECT"
with pytest.raises(Exception):
sf.fetch_sf_count(soql)
def test_raise_fetch_sf_data_auth_timeout(self, monkeypatch):
"""
Cases:
認証タイムアウトが発生した場合エラーが発生すること
Arranges:
認証タイムアウト秒数を保持する環境変数に0.0000000001を指定する
Expects:
コネクションタイムアウトエラーが発生すること
"""
monkeypatch.setattr('src.salesforce.salesforce_api.CRM_AUTH_TIMEOUT', 0.0000000001)
sf = SalesforceApiClient()
soql = """SELECT
COUNT(Id)
FROM
Account
WHERE
SystemModstamp > 2022-08-04T00:00:00.000Z AND
SystemModstamp <= 2022-08-06T00:00:00.000Z
"""
with pytest.raises(ConnectTimeout):
sf.fetch_sf_data(soql)
def test_raise_fetch_sf_data_read_timeout(self, monkeypatch):
"""
Cases:
読み取りタイムアウトが発生した場合エラーが発生すること
Arranges:
CRMのデータ取得タイムアウト秒数を保持する環境変数に0.0000000001を指定する
Expects:
読み取りタイムアウトエラーが発生すること
"""
monkeypatch.setattr('src.salesforce.salesforce_api.CRM_FETCH_RECORD_TIMEOUT', 0.0000000001)
sf = SalesforceApiClient()
soql = """SELECT
COUNT(Id)
FROM
Account
WHERE
SystemModstamp > 2022-08-04T00:00:00.000Z AND
SystemModstamp <= 2022-08-06T00:00:00.000Z
"""
with pytest.raises(ReadTimeout):
sf.fetch_sf_data(soql)
def test_raise_fetch_sf_data_invalid_soql(self, monkeypatch):
"""
Cases:
不正なSOQLを指定した場合にエラーが発生すること
Arranges:
不正なSOQLを作成する
Expects:
エラーが発生すること
"""
sf = SalesforceApiClient()
soql = "SELECT"
with pytest.raises(Exception):
sf.fetch_sf_count(soql)