test: rearrange this for covering extensive number of codes
This commit is contained in:
parent
93e2cd9043
commit
afc4006f3e
18
pytest.ini
Normal file
18
pytest.ini
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[pytest]
|
||||||
|
addopts = -v
|
||||||
|
omit =
|
||||||
|
tests/*
|
||||||
|
|
||||||
|
[run]
|
||||||
|
include = googletrans/*
|
||||||
|
|
||||||
|
[report]
|
||||||
|
exclude_lines =
|
||||||
|
pragma: no cover
|
||||||
|
def __repr__
|
||||||
|
if self.debug:
|
||||||
|
if settings.DEBUG
|
||||||
|
raise AssertionError
|
||||||
|
raise NotImplementedError
|
||||||
|
if 0:
|
||||||
|
if __name__ == .__main__.:
|
38
tests.py
38
tests.py
@ -1,38 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import unittest
|
|
||||||
from googletrans import translator, conversion
|
|
||||||
|
|
||||||
class TranslateTests(unittest.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def test_to_json(self):
|
|
||||||
text = '[,,"en",,,,0.96954316,,[["en"],,[0.96954316]]]'
|
|
||||||
approx = [None, None, 'en', None, None, None, 0.96954316, None, [['en'], None, [0.96954316]]]
|
|
||||||
assert conversion.format_json(text) == approx
|
|
||||||
|
|
||||||
def test_latin_to_english(self):
|
|
||||||
result = translator.translate('veritas lux mea', src='la', dest='en')
|
|
||||||
assert result.text == 'The truth is my light'
|
|
||||||
|
|
||||||
def test_unicode(self):
|
|
||||||
result = translator.translate('안녕하세요.', src='ko', dest='ja')
|
|
||||||
assert result.text == u'こんにちは。'
|
|
||||||
|
|
||||||
def test_list_translation(self):
|
|
||||||
translations = translator.translate(['The quick brown fox', 'jumps over', 'the lazy dog'],
|
|
||||||
src='en', dest='ko')
|
|
||||||
|
|
||||||
assert translations[0].text == u'빠른 갈색 여우'
|
|
||||||
assert translations[1].text == u'이상 점프'
|
|
||||||
assert translations[2].text == u'게으른 개'
|
|
||||||
|
|
||||||
def test_language_detection(self):
|
|
||||||
ko = translator.detect('한국어')
|
|
||||||
assert ko.lang == 'ko'
|
|
||||||
|
|
||||||
en = translator.detect('English')
|
|
||||||
assert en.lang == 'en'
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
7
tests/conftest.py
Normal file
7
tests/conftest.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
from pytest import fixture
|
||||||
|
|
||||||
|
|
||||||
|
@fixture
|
||||||
|
def translator():
|
||||||
|
from googletrans import Translator
|
||||||
|
return Translator()
|
66
tests/test_client.py
Normal file
66
tests/test_client.py
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from pytest import raises
|
||||||
|
|
||||||
|
|
||||||
|
def test_latin_to_english(translator):
|
||||||
|
result = translator.translate('veritas lux mea', src='la', dest='en')
|
||||||
|
assert result.text == 'The truth is my light'
|
||||||
|
|
||||||
|
|
||||||
|
def test_unicode(translator):
|
||||||
|
result = translator.translate(u'안녕하세요.', src='ko', dest='ja')
|
||||||
|
assert result.text == u'こんにちは。'
|
||||||
|
|
||||||
|
|
||||||
|
def test_translate_list(translator):
|
||||||
|
args = (['test', 'exam'], 'ko', 'en')
|
||||||
|
translations = translator.translate(*args)
|
||||||
|
|
||||||
|
assert translations[0].text == u'테스트'
|
||||||
|
assert translations[1].text == u'시험'
|
||||||
|
|
||||||
|
|
||||||
|
def test_detect_language(translator):
|
||||||
|
ko = translator.detect('한국어')
|
||||||
|
en = translator.detect('English')
|
||||||
|
|
||||||
|
assert ko.lang == 'ko'
|
||||||
|
assert en.lang == 'en'
|
||||||
|
|
||||||
|
def test_detect_list(translator):
|
||||||
|
items = [u'한국어', ' English']
|
||||||
|
|
||||||
|
result = translator.detect(items)
|
||||||
|
|
||||||
|
assert result[0].lang == 'ko'
|
||||||
|
assert result[1].lang == 'en'
|
||||||
|
|
||||||
|
|
||||||
|
def test_src_in_special_cases(translator):
|
||||||
|
args = ('Tere', 'en', 'ee')
|
||||||
|
|
||||||
|
result = translator.translate(*args)
|
||||||
|
|
||||||
|
assert result.text == 'Hello'
|
||||||
|
|
||||||
|
|
||||||
|
def test_src_not_in_supported_languages(translator):
|
||||||
|
args = ('Hello', 'en', 'zzz')
|
||||||
|
|
||||||
|
with raises(ValueError):
|
||||||
|
translator.translate(*args)
|
||||||
|
|
||||||
|
|
||||||
|
def test_dest_in_special_cases(translator):
|
||||||
|
args = ('hello', 'ee', 'en')
|
||||||
|
|
||||||
|
result = translator.translate(*args)
|
||||||
|
|
||||||
|
assert result.text == 'Tere'
|
||||||
|
|
||||||
|
|
||||||
|
def test_dest_not_in_supported_languages(translator):
|
||||||
|
args = ('Hello', 'zzz', 'en')
|
||||||
|
|
||||||
|
with raises(ValueError):
|
||||||
|
translator.translate(*args)
|
58
tests/test_gtoken.py
Normal file
58
tests/test_gtoken.py
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from googletrans import gtoken
|
||||||
|
from pytest import fixture
|
||||||
|
|
||||||
|
|
||||||
|
@fixture
|
||||||
|
def acquirer():
|
||||||
|
return gtoken.TokenAcquirer()
|
||||||
|
|
||||||
|
|
||||||
|
def test_acquire_token(acquirer):
|
||||||
|
text = 'test'
|
||||||
|
|
||||||
|
result = acquirer.do(text)
|
||||||
|
|
||||||
|
assert result
|
||||||
|
|
||||||
|
|
||||||
|
def test_acquire_token_ascii_less_than_2048(acquirer):
|
||||||
|
text = u'Ѐ'
|
||||||
|
|
||||||
|
result = acquirer.do(text)
|
||||||
|
|
||||||
|
assert result
|
||||||
|
|
||||||
|
|
||||||
|
def test_acquire_token_ascii_matches_special_condition(acquirer):
|
||||||
|
text = chr(55296) + chr(56320)
|
||||||
|
|
||||||
|
result = acquirer.do(text)
|
||||||
|
|
||||||
|
assert result
|
||||||
|
|
||||||
|
|
||||||
|
def test_acquire_token_ascii_else(acquirer):
|
||||||
|
text = u'가'
|
||||||
|
|
||||||
|
result = acquirer.do(text)
|
||||||
|
|
||||||
|
assert result
|
||||||
|
|
||||||
|
|
||||||
|
def test_reuse_valid_token(acquirer):
|
||||||
|
text = 'test'
|
||||||
|
|
||||||
|
first = acquirer.do(text)
|
||||||
|
second = acquirer.do(text)
|
||||||
|
|
||||||
|
assert first == second
|
||||||
|
|
||||||
|
|
||||||
|
def test_map_lazy_return(acquirer):
|
||||||
|
value = True
|
||||||
|
|
||||||
|
func = acquirer._lazy(value)
|
||||||
|
|
||||||
|
assert callable(func)
|
||||||
|
assert func() == value
|
24
tests/test_utils.py
Normal file
24
tests/test_utils.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from googletrans import utils
|
||||||
|
from pytest import raises
|
||||||
|
|
||||||
|
|
||||||
|
def test_format_json():
|
||||||
|
text = '[,,"en",,,,0.96954316,,[["en"],,[0.96954316]]]'
|
||||||
|
|
||||||
|
result = utils.format_json(text)
|
||||||
|
|
||||||
|
assert result == [None, None, 'en', None, None, None, 0.96954316, None,
|
||||||
|
[['en'], None, [0.96954316]]]
|
||||||
|
|
||||||
|
def test_format_malformed_json():
|
||||||
|
text = '[,,"en",,,,0.96954316,,[["en"],,0.96954316]]]'
|
||||||
|
|
||||||
|
with raises(ValueError):
|
||||||
|
utils.format_json(text)
|
||||||
|
|
||||||
|
def test_rshift():
|
||||||
|
value, n = 1000, 3
|
||||||
|
|
||||||
|
result = utils.rshift(value, n)
|
||||||
|
|
||||||
|
assert result == 125
|
Loading…
Reference in New Issue
Block a user