Skip to content

Commit 9989f94

Browse files
committed
fix: honor retryMaxAllowedNumber
1 parent f18f786 commit 9989f94

4 files changed

Lines changed: 440 additions & 9 deletions

File tree

.openapi-generator-ignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ git_push.sh
22
test/*
33
!test/__init__.py
44
!test/test_open_fga_api.py
5+
!test/test_configuration.py
56
!test/test_credentials.py
67
!test/test_client.py
78
!test/test_client_sync.py

.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ test-requirements.txt
200200
test/__init__.py
201201
test/test_client.py
202202
test/test_client_sync.py
203+
test/test_configuration.py
203204
test/test_credentials.py
204205
test/test_oauth2.py
205206
test/test_oauth2_sync.py

openfga_sdk/configuration.py

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,28 @@ def max_retry(self):
5656
"""
5757
Return the maximum number of retry
5858
"""
59+
if self._max_retry > 15:
60+
raise FgaValidationException(
61+
"RetryParams.max_retry exceeds maximum allowed limit of 15"
62+
)
63+
5964
return self._max_retry
6065

6166
@max_retry.setter
6267
def max_retry(self, value):
6368
"""
6469
Update the maximum number of retry
6570
"""
71+
if not isinstance(value, int) or value < 0:
72+
raise FgaValidationException(
73+
"RetryParams.max_retry must be an integer greater than or equal to 0"
74+
)
75+
76+
if value > 15:
77+
raise FgaValidationException(
78+
"RetryParams.max_retry exceeds maximum allowed limit of 15"
79+
)
80+
6681
self._max_retry = value
6782

6883
@property
@@ -77,6 +92,11 @@ def min_wait_in_ms(self, value):
7792
"""
7893
Update the minimum wait (in ms) in between retry
7994
"""
95+
if not isinstance(value, int) or value < 0:
96+
raise FgaValidationException(
97+
"RetryParams.min_wait_in_ms must be an integer greater than or equal to 0"
98+
)
99+
80100
self._min_wait_in_ms = value
81101

82102

@@ -287,15 +307,6 @@ def __deepcopy__(self, memo):
287307
result.debug = self.debug
288308
return result
289309

290-
def __setattr__(self, name, value):
291-
object.__setattr__(self, name, value)
292-
if name == "disabled_client_side_validations":
293-
s = set(filter(None, value.split(",")))
294-
for v in s:
295-
if v not in JSON_SCHEMA_VALIDATION_KEYWORDS:
296-
raise ApiValueError(f"Invalid keyword: '{v}''")
297-
self._disabled_client_side_validations = s
298-
299310
@classmethod
300311
def set_default(cls, default):
301312
"""Set default instance of configuration.
@@ -574,6 +585,11 @@ def api_scheme(self):
574585
@api_scheme.setter
575586
def api_scheme(self, value):
576587
"""Update connection scheme (https or http)."""
588+
if value is not None and value not in ["https", "http"]:
589+
raise FgaValidationException(
590+
f"api_scheme `{value}` must be either `http` or `https`"
591+
)
592+
577593
self._scheme = value
578594

579595
@property
@@ -631,3 +647,20 @@ def retry_params(self, value):
631647
Update retry parameters
632648
"""
633649
self._retry_params = value
650+
651+
@property
652+
def disabled_client_side_validations(self):
653+
"""Return disable_client_side_validations."""
654+
return self._disabled_client_side_validations
655+
656+
@disabled_client_side_validations.setter
657+
def disabled_client_side_validations(self, value):
658+
"""Update disable_client_side_validations."""
659+
self._disabled_client_side_validations = {}
660+
661+
if isinstance(value, str) and value:
662+
s = set(filter(None, value.split(",")))
663+
for v in s:
664+
if v not in JSON_SCHEMA_VALIDATION_KEYWORDS:
665+
raise FgaValidationException(f"Invalid keyword: '{v}''")
666+
self._disabled_client_side_validations = s

0 commit comments

Comments
 (0)