Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions tests/native/conftest.py

This file was deleted.

9 changes: 9 additions & 0 deletions tests/native/core/test_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,12 @@ def test_returns_entry_if_exists(self):
assert cache.get('chair', 'el') == u'Μια καρέκλα'
assert cache.get('invalid', 'en') is None
assert cache.get('invalid', 'el') is None

def test_contains(self):
cache = MemoryCache()
cache.update({
'lang1': (True, {'source1': {'string': "translation1"},
'source2': {'string': "translation2"}}),
})
assert 'lang1' in cache
assert 'lang2' not in cache
124 changes: 34 additions & 90 deletions tests/native/core/test_cds.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@ def _lang_lists_equal(self, list_1, list_2):
@patch('transifex.native.cds.logger')
def test_fetch_languages(self, patched_logger):
cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
host=cds_host
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token',
host=cds_host)

# correct response
responses.add(
Expand Down Expand Up @@ -140,11 +138,9 @@ def test_fetch_languages(self, patched_logger):
@patch('transifex.native.cds.logger')
def test_fetch_translations(self, patched_logger):
cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en', 'fr'],
'some_token',
host=cds_host
)
cds_handler = CDSHandler(configured_languages=['el', 'en', 'fr'],
token='some_token',
host=cds_host)

# add response for languages
responses.add(
Expand Down Expand Up @@ -206,7 +202,7 @@ def test_fetch_translations(self, patched_logger):
responses.GET, cds_host + '/content/fr', status=404
)

resp = cds_handler.fetch_translations()
resp = cds_handler.fetch_translations('el')
assert resp == {
'el': (True, {
'key1': {
Expand All @@ -216,6 +212,9 @@ def test_fetch_translations(self, patched_logger):
'string': 'key2_el'
},
}),
}
resp = cds_handler.fetch_translations('en')
assert resp == {
'en': (True, {
'key1': {
'string': 'key1_en'
Expand All @@ -224,58 +223,16 @@ def test_fetch_translations(self, patched_logger):
'string': 'key2_en'
},
}),
'fr': (False, {}) # that is due to the error status in response
}

responses.reset()

# test fetch_languages fails with connection error
responses.add(responses.GET, cds_host + '/languages', status=500)
resp = cds_handler.fetch_translations()
assert resp == {}

patched_logger.error.assert_called_with(
'Error retrieving languages from CDS: UnknownError '
'(`500 Server Error: Internal Server Error for url: '
'https://some.host/languages`)'
)
responses.reset()
patched_logger.reset_mock()

# test language code
responses.add(
responses.GET, cds_host + '/content/el',
json={
'data': {
'key1': {
'string': 'key1_el'
},
'key2': {
'string': 'key2_el'
},
},
'meta': {
"some_key": "some_value"
}
}, status=200
)

resp = cds_handler.fetch_translations(language_code='el')
resp = cds_handler.fetch_translations('fr')
assert resp == {
'el': (True, {
'key1': {
'string': 'key1_el'
},
'key2': {
'string': 'key2_el'
},
})
'fr': (False, {}) # that is due to the error status in response
}

responses.reset()
assert patched_logger.error.call_count == 0

# test connection_error
resp = cds_handler.fetch_translations(language_code='el')
resp = cds_handler.fetch_translations('el')
patched_logger.error.assert_called_with(
'Error retrieving translations from CDS: ConnectionError'
)
Expand All @@ -286,11 +243,9 @@ def test_fetch_translations(self, patched_logger):
def test_fetch_translations_etags_management(self, patched_logger):

cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
host=cds_host
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token',
host=cds_host)

# add response for languages
responses.add(
Expand Down Expand Up @@ -337,7 +292,7 @@ def test_fetch_translations_etags_management(self, patched_logger):
status=304
)

resp = cds_handler.fetch_translations()
resp = cds_handler.fetch_translations('el')
assert resp == {
'el': (True, {
'key1': {
Expand All @@ -347,28 +302,23 @@ def test_fetch_translations_etags_management(self, patched_logger):
'string': 'key2_el'
},
}),
'en': (False, {})
}
assert cds_handler.etags.get('el') == 'some_unique_tag_is_here'

def test_push_source_strings_no_secret(self):
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token')
with pytest.raises(Exception):
cds_handler.push_source_strings([], False)

@responses.activate
@patch('transifex.native.cds.logger')
def test_push_source_strings(self, patched_logger):
cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
secret='some_secret',
host=cds_host
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token',
secret='some_secret',
host=cds_host)

# test push no correct
responses.add(
Expand Down Expand Up @@ -426,12 +376,10 @@ def test_push_source_strings(self, patched_logger):

def test_get_headers(self):
cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
secret='some_secret',
host=cds_host
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token',
secret='some_secret',
host=cds_host)
assert cds_handler._get_headers() == {
'Authorization': 'Bearer some_token',
'Accept-Encoding': 'gzip',
Expand All @@ -456,11 +404,9 @@ def test_get_headers(self):
@responses.activate
def test_retry_fetch_languages(self):
cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
host=cds_host,
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token',
host=cds_host)
responses.add(responses.GET, cds_host + '/languages', status=202)
responses.add(responses.GET, cds_host + '/languages', status=202)
responses.add(responses.GET, cds_host + '/languages',
Expand All @@ -477,11 +423,9 @@ def test_retry_fetch_languages(self):
@responses.activate
def test_retry_fetch_translations(self):
cds_host = 'https://some.host'
cds_handler = CDSHandler(
['el', 'en'],
'some_token',
host=cds_host,
)
cds_handler = CDSHandler(configured_languages=['el', 'en'],
token='some_token',
host=cds_host)
responses.add(responses.GET, cds_host + '/content/el', status=202)
responses.add(responses.GET, cds_host + '/content/el', status=202)
responses.add(responses.GET,
Expand Down
Loading