Skip to content

Commit 4831555

Browse files
committed
set production url as deafult
1 parent d69af1c commit 4831555

2 files changed

Lines changed: 35 additions & 3 deletions

File tree

splitapiclient/main/sync_apiclient.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ class SyncApiClient(BaseApiClient):
1414
Synchronous Split API client
1515
'''
1616

17+
BASE_PROD_URL = 'https://api.split.io/internal/api/v1'
18+
1719
def __init__(self, config):
1820
'''
1921
Class constructor.
@@ -23,16 +25,19 @@ def __init__(self, config):
2325
- 'base_url': Base url where the API is hosted
2426
- 'apikey': APIKey used to authenticate the user.
2527
'''
26-
if 'base_url' in config and 'apikey' in config:
28+
if 'base_url' in config:
2729
self._base_url = config['base_url']
28-
self._apikey = config['apikey']
2930
else:
30-
missing = [i for i in ['base_url', 'apikey'] if i not in config]
31+
self._base_url = self.BASE_PROD_URL
32+
33+
missing = [i for i in ['apikey'] if i not in config]
34+
if missing:
3135
raise InsufficientConfigArgumentsException(
3236
'The following keys must be present in the config dict: %s'
3337
% ','.join(missing)
3438
)
3539

40+
self._apikey = config['apikey']
3641
http_client = SyncHttpClient(self._base_url, self._apikey)
3742

3843
self._traffic_type_client = TrafficTypeMicroClient(http_client)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from __future__ import absolute_import, division, print_function, \
2+
unicode_literals
3+
4+
import pytest
5+
from splitapiclient.main.sync_apiclient import SyncApiClient
6+
from splitapiclient.util.exceptions import InsufficientConfigArgumentsException
7+
8+
class TestSyncApiClient:
9+
'''
10+
'''
11+
12+
def test_constructor(self, mocker):
13+
'''
14+
'''
15+
# Should have PROD url by default
16+
c1 = SyncApiClient({'apikey': '123'})
17+
assert c1._base_url == SyncApiClient.BASE_PROD_URL
18+
assert c1._apikey == '123'
19+
20+
# Should fail if no apikey propvided
21+
with pytest.raises(InsufficientConfigArgumentsException):
22+
c2 = SyncApiClient({})
23+
24+
# Should override url if passed
25+
c3 = SyncApiClient({'base_url': 'http://test', 'apikey': '123'})
26+
assert c3._base_url == 'http://test'
27+
assert c3._apikey == '123'

0 commit comments

Comments
 (0)