Skip to content

Commit 060965b

Browse files
Improve translate_text test case for formality
1 parent 4dc0501 commit 060965b

File tree

2 files changed

+51
-28
lines changed

2 files changed

+51
-28
lines changed

tests/conftest.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ def server(config):
4747
class Server:
4848
def __init__(self):
4949
self.headers = {}
50-
if config.mock_server_port is not None:
50+
self.is_mock_server = config.mock_server_port is not None
51+
if self.is_mock_server:
5152
self.server_url = config.server_url
5253
self.auth_key = "mock_server"
5354
uu = str(uuid.uuid1())
@@ -62,67 +63,67 @@ def __init__(self):
6263
def no_response(self, count):
6364
"""Instructs the mock server to ignore N requests from this
6465
session, giving no response."""
65-
if config.mock_server_port is not None:
66+
if self.is_mock_server:
6667
self.headers["mock-server-session-no-response-count"] = str(
6768
count
6869
)
6970

7071
def respond_with_429(self, count):
7172
"""Instructs the mock server to reject N /translate requests from
7273
this session with 429 status codes."""
73-
if config.mock_server_port is not None:
74+
if self.is_mock_server:
7475
self.headers["mock-server-session-429-count"] = str(count)
7576

7677
def init_character_limit(self, count):
7778
"""Instructs the mock server to initialize user accounts created by
7879
this session with given character limit."""
79-
if config.mock_server_port is not None:
80+
if self.is_mock_server:
8081
self.headers["mock-server-session-init-character-limit"] = str(
8182
count
8283
)
8384

8485
def init_document_limit(self, count):
8586
"""Instructs the mock server to initialize user accounts created by
8687
this session with given document limit."""
87-
if config.mock_server_port is not None:
88+
if self.is_mock_server:
8889
self.headers["mock-server-session-init-document-limit"] = str(
8990
count
9091
)
9192

9293
def init_team_document_limit(self, count):
9394
"""Instructs the mock server to initialize user accounts created by
9495
this session with given team document limit."""
95-
if config.mock_server_port is not None:
96+
if self.is_mock_server:
9697
self.headers[
9798
"mock-server-session-init-team-document-limit"
9899
] = str(count)
99100

100101
def set_doc_failure(self, count):
101102
"""Instructs the mock server to fail during translation of N
102103
documents during this session."""
103-
if config.mock_server_port is not None:
104+
if self.is_mock_server:
104105
self.headers["mock-server-session-doc-failure"] = str(count)
105106

106107
def set_doc_queue_time(self, milliseconds):
107108
"""Instructs the mock server to queue documents for specified time
108109
before translation."""
109-
if config.mock_server_port is not None:
110+
if self.is_mock_server:
110111
self.headers["mock-server-session-doc-queue-time"] = str(
111112
milliseconds
112113
)
113114

114115
def set_doc_translate_time(self, milliseconds):
115116
"""Instructs the mock server to translate documents within
116117
specified time."""
117-
if config.mock_server_port is not None:
118+
if self.is_mock_server:
118119
self.headers["mock-server-session-doc-translate-time"] = str(
119120
milliseconds
120121
)
121122

122123
def expect_proxy(self, value: bool = True):
123124
"""Instructs the mock server to only accept requests via the
124125
proxy."""
125-
if config.mock_server_port is not None:
126+
if self.is_mock_server:
126127
self.headers["mock-server-session-expect-proxy"] = (
127128
"1" if value else "0"
128129
)

tests/test_translate_text.py

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -141,46 +141,63 @@ def test_translate_with_retries(translator, server):
141141
assert time_after - time_before > 1.0
142142

143143

144-
@needs_real_server
145-
def test_formality(translator):
144+
def test_formality(translator, server):
145+
input_text = "How are you?"
146+
informal = "Wie geht es dir?"
147+
formal = "Wie geht es Ihnen?"
148+
146149
result = translator.translate_text(
147-
"How are you?", target_lang="DE", formality=deepl.Formality.LESS
150+
input_text, target_lang="DE", formality=deepl.Formality.LESS
148151
)
149-
assert "Wie geht es dir?" == result.text
152+
if not server.is_mock_server:
153+
assert informal == result.text
150154
result = translator.translate_text(
151-
"How are you?", target_lang="DE", formality=deepl.Formality.DEFAULT
155+
input_text, target_lang="DE", formality=deepl.Formality.DEFAULT
152156
)
153-
assert "Wie geht es Ihnen?" == result.text
157+
if not server.is_mock_server:
158+
assert formal == result.text
154159
result = translator.translate_text(
155-
"How are you?", target_lang="DE", formality=deepl.Formality.MORE
160+
input_text, target_lang="DE", formality=deepl.Formality.MORE
156161
)
157-
assert "Wie geht es Ihnen?" == result.text
162+
if not server.is_mock_server:
163+
assert formal == result.text
158164

159165
# Specifying formality as string is also permitted
160166
result = translator.translate_text(
161-
"How are you?", target_lang="DE", formality="less"
167+
input_text, target_lang="DE", formality="less"
162168
)
163-
assert "Wie geht es dir?" == result.text
169+
if not server.is_mock_server:
170+
assert informal == result.text
164171

165172
result = translator.translate_text(
166-
"How are you?", target_lang="DE", formality="default"
173+
input_text, target_lang="DE", formality="default"
167174
)
168-
assert "Wie geht es Ihnen?" == result.text
175+
if not server.is_mock_server:
176+
assert formal == result.text
169177

170178
result = translator.translate_text(
171-
"How are you?", target_lang="DE", formality="more"
179+
input_text, target_lang="DE", formality="more"
172180
)
173-
assert "Wie geht es Ihnen?" == result.text
181+
if not server.is_mock_server:
182+
assert formal == result.text
174183

175184
# formality parameter is case-insensitive
176185
result = translator.translate_text(
177-
"How are you?", target_lang="DE", formality="Less"
186+
input_text, target_lang="DE", formality="Less"
178187
)
179-
assert "Wie geht es dir?" == result.text
188+
if not server.is_mock_server:
189+
assert informal == result.text
180190

181191
with pytest.raises(deepl.DeepLException, match=r".*formality.*"):
182-
result = translator.translate_text(
183-
"How are you?", target_lang="DE", formality="invalid"
192+
_ = translator.translate_text(
193+
input_text, target_lang="DE", formality="invalid"
194+
)
195+
196+
with pytest.raises(
197+
deepl.DeepLException, match=r".*formality.*target_lang.*"
198+
):
199+
_ = translator.translate_text(
200+
"Test", target_lang="EN-US", formality="more"
184201
)
185202

186203

@@ -218,6 +235,11 @@ def test_split_sentences_basic(translator):
218235
text, target_lang="DE", split_sentences="nonewlines"
219236
)
220237

238+
with pytest.raises(deepl.DeepLException, match=r".*split_sentences.*"):
239+
_ = translator.translate_text(
240+
text, target_lang="DE", split_sentences="invalid"
241+
)
242+
221243

222244
def test_tag_handling_basic(translator):
223245
text = """

0 commit comments

Comments
 (0)