1
+ from unittest .mock import patch
2
+
3
+ import pytest
1
4
from httpcore import TimeoutException
2
5
from httpcore ._exceptions import ConnectError
3
- from httpx import Timeout , Client , ConnectTimeout
4
- from unittest .mock import patch
6
+ from httpx import Client , ConnectTimeout , Timeout
5
7
from pytest import raises
6
8
7
9
from googletrans import Translator
8
10
9
11
10
- def test_bind_multiple_service_urls ():
12
+ @pytest .mark .asyncio
13
+ async def test_bind_multiple_service_urls ():
11
14
service_urls = [
12
15
"translate.google.com" ,
13
16
"translate.google.co.kr" ,
@@ -16,87 +19,97 @@ def test_bind_multiple_service_urls():
16
19
translator = Translator (service_urls = service_urls )
17
20
assert translator .service_urls == service_urls
18
21
19
- assert translator .translate ("test" , dest = "ko" )
20
- assert translator .detect ("Hello" )
22
+ assert await translator .translate ("test" , dest = "ko" )
23
+ assert await translator .detect ("Hello" )
21
24
22
25
23
- def test_api_service_urls ():
26
+ @pytest .mark .asyncio
27
+ async def test_api_service_urls ():
24
28
service_urls = ["translate.googleapis.com" ]
25
29
26
30
translator = Translator (service_urls = service_urls )
27
31
assert translator .service_urls == service_urls
28
32
29
- assert translator .translate ("test" , dest = "ko" )
30
- assert translator .detect ("Hello" )
33
+ assert await translator .translate ("test" , dest = "ko" )
34
+ assert await translator .detect ("Hello" )
31
35
32
36
33
- def test_source_language (translator ):
34
- result = translator .translate ("안녕하세요." )
37
+ @pytest .mark .asyncio
38
+ async def test_source_language (translator : Translator ):
39
+ result = await translator .translate ("안녕하세요." )
35
40
assert result .src == "ko"
36
41
37
42
38
- def test_pronunciation (translator ):
39
- result = translator .translate ("안녕하세요." , dest = "ja" )
43
+ @pytest .mark .asyncio
44
+ async def test_pronunciation (translator : Translator ):
45
+ result = await translator .translate ("안녕하세요." , dest = "ja" )
40
46
assert result .pronunciation == "Kon'nichiwa."
41
47
42
48
43
- def test_pronunciation_issue_175 ( translator ):
44
- result = translator . translate ( "Hello" , src = "en" , dest = "ru" )
45
-
49
+ @ pytest . mark . asyncio
50
+ async def test_pronunciation_issue_175 ( translator : Translator ):
51
+ result = await translator . translate ( "Hello" , src = "en" , dest = "ru" )
46
52
assert result .pronunciation is not None
47
53
48
54
49
- def test_latin_to_english (translator ):
50
- result = translator .translate ("veritas lux mea" , src = "la" , dest = "en" )
55
+ @pytest .mark .asyncio
56
+ async def test_latin_to_english (translator : Translator ):
57
+ result = await translator .translate ("veritas lux mea" , src = "la" , dest = "en" )
51
58
assert result .text == "truth is my light"
52
59
53
60
54
- def test_unicode (translator ):
55
- result = translator .translate ("안녕하세요." , src = "ko" , dest = "ja" )
61
+ @pytest .mark .asyncio
62
+ async def test_unicode (translator : Translator ):
63
+ result = await translator .translate ("안녕하세요." , src = "ko" , dest = "ja" )
56
64
assert result .text == "こんにちは。"
57
65
58
66
59
- def test_emoji (translator ):
60
- result = translator .translate ("😀" )
67
+ @pytest .mark .asyncio
68
+ async def test_emoji (translator : Translator ):
69
+ result = await translator .translate ("😀" )
61
70
assert result .text == "😀"
62
71
63
72
64
- def test_language_name (translator ):
65
- result = translator .translate ("Hello" , src = "ENGLISH" , dest = "iRiSh" )
73
+ @pytest .mark .asyncio
74
+ async def test_language_name (translator : Translator ):
75
+ result = await translator .translate ("Hello" , src = "ENGLISH" , dest = "iRiSh" )
66
76
assert result .text == "Dia duit"
67
77
68
78
69
- def test_language_name_with_space (translator ):
70
- result = translator .translate ("Hello" , src = "en" , dest = "chinese (simplified)" )
79
+ @pytest .mark .asyncio
80
+ async def test_language_name_with_space (translator : Translator ):
81
+ result = await translator .translate ("Hello" , src = "en" , dest = "chinese (simplified)" )
71
82
assert result .dest == "zh-cn"
72
83
73
84
74
- def test_language_rfc1766 (translator ):
75
- result = translator .translate ("luna" , src = "it_ch@euro" , dest = "en" )
85
+ @pytest .mark .asyncio
86
+ async def test_language_rfc1766 (translator : Translator ):
87
+ result = await translator .translate ("luna" , src = "it_ch@euro" , dest = "en" )
76
88
assert result .text == "moon"
77
89
78
90
79
- def test_special_chars (translator ):
91
+ @pytest .mark .asyncio
92
+ async def test_special_chars (translator : Translator ):
80
93
text = "©×《》"
81
-
82
- result = translator .translate (text , src = "en" , dest = "en" )
94
+ result = await translator .translate (text , src = "en" , dest = "en" )
83
95
assert result .text == text
84
96
85
97
86
- def test_translate_list (translator ):
98
+ @pytest .mark .asyncio
99
+ async def test_translate_list (translator : Translator ):
87
100
args = (["test" , "exam" , "exam paper" ], "ko" , "en" )
88
- translations = translator .translate (* args )
89
-
101
+ translations = await translator .translate (* args )
90
102
assert translations [0 ].text == "시험"
91
103
assert translations [1 ].text == "시험"
92
104
assert translations [2 ].text == "시험지"
93
105
94
106
95
- def test_detect_language (translator ):
96
- ko = translator .detect ("한국어" )
97
- en = translator .detect ("English" )
98
- rubg = translator .detect ("тест" )
99
- russ = translator .detect ("привет" )
107
+ @pytest .mark .asyncio
108
+ async def test_detect_language (translator : Translator ):
109
+ ko = await translator .detect ("한국어" )
110
+ en = await translator .detect ("English" )
111
+ rubg = await translator .detect ("тест" )
112
+ russ = await translator .detect ("привет" )
100
113
101
114
assert ko .lang == "ko"
102
115
assert en .lang == "en"
@@ -105,52 +118,51 @@ def test_detect_language(translator):
105
118
#'bg']
106
119
107
120
108
- def test_detect_list (translator ):
121
+ @pytest .mark .asyncio
122
+ async def test_detect_list (translator : Translator ):
109
123
items = ["한국어" , " English" , "тест" , "привет" ]
110
-
111
- result = translator .detect (items )
124
+ result = await translator .detect (items )
112
125
113
126
assert result [0 ].lang == "ko"
114
127
assert result [1 ].lang == "en"
115
128
assert result [2 ].lang == "mk"
116
129
assert result [3 ].lang == "ru"
117
130
118
131
119
- def test_src_in_special_cases (translator ):
132
+ @pytest .mark .asyncio
133
+ async def test_src_in_special_cases (translator : Translator ):
120
134
args = ("tere" , "en" , "ee" )
121
-
122
- result = translator .translate (* args )
123
-
135
+ result = await translator .translate (* args )
124
136
assert result .text in ("hello" , "hi," )
125
137
126
138
127
- def test_src_not_in_supported_languages (translator ):
139
+ @pytest .mark .asyncio
140
+ async def test_src_not_in_supported_languages (translator : Translator ):
128
141
args = ("Hello" , "en" , "zzz" )
129
-
130
142
with raises (ValueError ):
131
- translator .translate (* args )
143
+ await translator .translate (* args )
132
144
133
145
134
- def test_dest_in_special_cases (translator ):
146
+ @pytest .mark .asyncio
147
+ async def test_dest_in_special_cases (translator : Translator ):
135
148
args = ("hello" , "ee" , "en" )
136
-
137
- result = translator .translate (* args )
138
-
149
+ result = await translator .translate (* args )
139
150
assert result .text == "tere"
140
151
141
152
142
- def test_dest_not_in_supported_languages (translator ):
153
+ @pytest .mark .asyncio
154
+ async def test_dest_not_in_supported_languages (translator : Translator ):
143
155
args = ("Hello" , "zzz" , "en" )
144
-
145
156
with raises (ValueError ):
146
- translator .translate (* args )
157
+ await translator .translate (* args )
147
158
148
159
149
- def test_timeout ():
160
+ @pytest .mark .asyncio
161
+ async def test_timeout ():
150
162
# httpx will raise ConnectError in some conditions
151
163
with raises ((TimeoutException , ConnectError , ConnectTimeout )):
152
164
translator = Translator (timeout = Timeout (0.0001 ))
153
- translator .translate ("안녕하세요." )
165
+ await translator .translate ("안녕하세요." )
154
166
155
167
156
168
class MockResponse :
@@ -159,7 +171,8 @@ def __init__(self, status_code):
159
171
self .text = "tkk:'translation'"
160
172
161
173
174
+ @pytest .mark .asyncio
162
175
@patch .object (Client , "get" , return_value = MockResponse ("403" ))
163
- def test_403_error (session_mock ):
176
+ async def test_403_error (session_mock ):
164
177
translator = Translator ()
165
- assert translator .translate ("test" , dest = "ko" )
178
+ assert await translator .translate ("test" , dest = "ko" )
0 commit comments