Skip to content

Commit b87b054

Browse files
author
Konstantinos Bairaktaris
committed
1 parent 1140d1c commit b87b054

3 files changed

Lines changed: 46 additions & 50 deletions

File tree

tests/native/core/test_cds.py

Lines changed: 25 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ def _lang_lists_equal(self, list_1, list_2):
2323
@patch('transifex.native.cds.logger')
2424
def test_fetch_languages(self, patched_logger):
2525
cds_host = 'https://some.host'
26-
cds_handler = CDSHandler(
27-
['el', 'en'],
28-
'some_token',
29-
host=cds_host
30-
)
26+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
27+
token='some_token',
28+
host=cds_host)
3129

3230
# correct response
3331
responses.add(
@@ -140,11 +138,9 @@ def test_fetch_languages(self, patched_logger):
140138
@patch('transifex.native.cds.logger')
141139
def test_fetch_translations(self, patched_logger):
142140
cds_host = 'https://some.host'
143-
cds_handler = CDSHandler(
144-
['el', 'en', 'fr'],
145-
'some_token',
146-
host=cds_host
147-
)
141+
cds_handler = CDSHandler(configured_languages=['el', 'en', 'fr'],
142+
token='some_token',
143+
host=cds_host)
148144

149145
# add response for languages
150146
responses.add(
@@ -286,11 +282,9 @@ def test_fetch_translations(self, patched_logger):
286282
def test_fetch_translations_etags_management(self, patched_logger):
287283

288284
cds_host = 'https://some.host'
289-
cds_handler = CDSHandler(
290-
['el', 'en'],
291-
'some_token',
292-
host=cds_host
293-
)
285+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
286+
token='some_token',
287+
host=cds_host)
294288

295289
# add response for languages
296290
responses.add(
@@ -352,23 +346,19 @@ def test_fetch_translations_etags_management(self, patched_logger):
352346
assert cds_handler.etags.get('el') == 'some_unique_tag_is_here'
353347

354348
def test_push_source_strings_no_secret(self):
355-
cds_handler = CDSHandler(
356-
['el', 'en'],
357-
'some_token',
358-
)
349+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
350+
token='some_token')
359351
with pytest.raises(Exception):
360352
cds_handler.push_source_strings([], False)
361353

362354
@responses.activate
363355
@patch('transifex.native.cds.logger')
364356
def test_push_source_strings(self, patched_logger):
365357
cds_host = 'https://some.host'
366-
cds_handler = CDSHandler(
367-
['el', 'en'],
368-
'some_token',
369-
secret='some_secret',
370-
host=cds_host
371-
)
358+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
359+
token='some_token',
360+
secret='some_secret',
361+
host=cds_host)
372362

373363
# test push no correct
374364
responses.add(
@@ -426,12 +416,10 @@ def test_push_source_strings(self, patched_logger):
426416

427417
def test_get_headers(self):
428418
cds_host = 'https://some.host'
429-
cds_handler = CDSHandler(
430-
['el', 'en'],
431-
'some_token',
432-
secret='some_secret',
433-
host=cds_host
434-
)
419+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
420+
token='some_token',
421+
secret='some_secret',
422+
host=cds_host)
435423
assert cds_handler._get_headers() == {
436424
'Authorization': 'Bearer some_token',
437425
'Accept-Encoding': 'gzip',
@@ -456,11 +444,9 @@ def test_get_headers(self):
456444
@responses.activate
457445
def test_retry_fetch_languages(self):
458446
cds_host = 'https://some.host'
459-
cds_handler = CDSHandler(
460-
['el', 'en'],
461-
'some_token',
462-
host=cds_host,
463-
)
447+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
448+
token='some_token',
449+
host=cds_host)
464450
responses.add(responses.GET, cds_host + '/languages', status=202)
465451
responses.add(responses.GET, cds_host + '/languages', status=202)
466452
responses.add(responses.GET, cds_host + '/languages',
@@ -477,11 +463,9 @@ def test_retry_fetch_languages(self):
477463
@responses.activate
478464
def test_retry_fetch_translations(self):
479465
cds_host = 'https://some.host'
480-
cds_handler = CDSHandler(
481-
['el', 'en'],
482-
'some_token',
483-
host=cds_host,
484-
)
466+
cds_handler = CDSHandler(configured_languages=['el', 'en'],
467+
token='some_token',
468+
host=cds_host)
485469
responses.add(responses.GET, cds_host + '/content/el', status=202)
486470
responses.add(responses.GET, cds_host + '/content/el', status=202)
487471
responses.add(responses.GET,

transifex/native/cds.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,33 @@ def get(self, key):
4747
class CDSHandler(object):
4848
"""Handles communication with the Content Delivery Service."""
4949

50-
def __init__(self, configured_languages, token, secret=None,
51-
host=TRANSIFEX_CDS_HOST):
50+
def __init__(self, **kwargs):
5251
"""Constructor.
5352
5453
:param list configured_languages: a list of language codes for the
5554
configured languages in the application
5655
:param str token: the API token to use for connecting to the CDS
5756
:param str host: the host of the Content Delivery Service
5857
"""
59-
self.configured_language_codes = configured_languages
60-
self.token = token
61-
self.secret = secret
62-
self.host = host or TRANSIFEX_CDS_HOST
58+
self.configured_language_codes = None
59+
self.token = None
60+
self.secret = None
61+
self.host = TRANSIFEX_CDS_HOST
6362
self.etags = EtagStore()
6463

64+
self.setup(**kwargs)
65+
66+
def setup(self, configured_languages=None, token=None, secret=None,
67+
host=None):
68+
if configured_languages is not None:
69+
self.configured_language_codes = configured_languages
70+
if token is not None:
71+
self.token = token
72+
if secret is not None:
73+
self.secret = secret
74+
if host is not None:
75+
self.host = host
76+
6577
def fetch_languages(self):
6678
"""Fetch the languages defined in the CDS for the specific project.
6779

transifex/native/core.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ def init(
4949
self._cache = MemoryCache()
5050
self._missing_policy = missing_policy or SourceStringPolicy()
5151
self._error_policy = error_policy or SourceStringErrorPolicy()
52-
self._cds_handler = CDSHandler(
53-
self._languages, token, secret=secret, host=cds_host
54-
)
52+
self._cds_handler = CDSHandler(configured_languages=self._languages,
53+
token=token, secret=secret,
54+
host=cds_host)
5555

5656
def translate(
5757
self, source_string, language_code, is_source=False,

0 commit comments

Comments
 (0)