Skip to content

Commit 0f952ce

Browse files
authored
Merge pull request #15 from cloudblue/fix_default_limit
fix default limit and make client thread safe
2 parents 54809a1 + bdf2552 commit 0f952ce

File tree

4 files changed

+18
-2
lines changed

4 files changed

+18
-2
lines changed

cnct/client/fluent.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import threading
2+
13
from json.decoder import JSONDecodeError
24

35
import requests
@@ -11,7 +13,7 @@
1113
from cnct.client.openapi import OpenAPISpecs
1214

1315

14-
class ConnectClient:
16+
class ConnectClient(threading.local):
1517
"""
1618
Connect ReST API client.
1719
"""
@@ -43,6 +45,7 @@ def __init__(
4345
self.endpoint = endpoint or CONNECT_ENDPOINT_URL
4446
self.api_key = api_key
4547
self.default_headers = default_headers or {}
48+
self.default_limit = default_limit
4649
self._use_specs = use_specs
4750
self._validate_using_specs = validate_using_specs
4851
self.specs_location = specs_location or CONNECT_SPECS_URL

cnct/client/models/resourceset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def __init__(
7474
self._query = query or R()
7575
self._results = None
7676
self._result_iterator = None
77-
self._limit = 100
77+
self._limit = self._client.default_limit or 100
7878
self._offset = 0
7979
self._slice = False
8080
self._content_range = None

tests/client/test_fluent.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ def test_default_headers_invalid():
2626
)
2727

2828

29+
def test_default_limit():
30+
c = ConnectClient(
31+
'Api Key',
32+
use_specs=False,
33+
default_limit=10,
34+
)
35+
36+
rs = c.products.all()
37+
38+
assert rs._limit == 10
39+
40+
2941
# def test_getattr(mocker):
3042
# c = ConnectClient('Api Key', use_specs=False)
3143

tests/fixtures/client_models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def _action_factory(
6363
def rs_factory(mocker):
6464
client = mocker.MagicMock()
6565
client._endpoint = 'https://example.com/api/v1'
66+
client.default_limit = None
6667

6768
def _rs_factory(
6869
client=client,

0 commit comments

Comments
 (0)