Skip to content
Draft
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
5 changes: 2 additions & 3 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,13 @@ on:

jobs:
build:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
Expand All @@ -37,5 +34,7 @@ jobs:
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
env:
DEEPL_AUTH_KEY: ${{ secrets.DEEPL_AUTH_KEY }}
run: |
pytest
4 changes: 4 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@ def _make_deepl_client(server, auth_key=None, proxy=None):
def translator(server):
"""Returns a deepl.Translator to use in all tests taking a parameter
'translator'."""
if not server.is_mock_server and not server.auth_key:
pytest.skip("this test requires DEEPL_AUTH_KEY for real server usage")
return _make_translator(server)


Expand All @@ -186,6 +188,8 @@ def translator(server):
def deepl_client(server):
"""Returns a deepl.DeepLClient to use in all tests taking a parameter
'deepl_client'."""
if not server.is_mock_server and not server.auth_key:
pytest.skip("this test requires DEEPL_AUTH_KEY for real server usage")
return _make_deepl_client(server)


Expand Down
2 changes: 2 additions & 0 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@

@pytest.fixture
def runner(server):
if not server.is_mock_server and not server.auth_key:
pytest.skip("this test requires DEEPL_AUTH_KEY for real server usage")
env = {
"DEEPL_SERVER_URL": server.server_url,
"DEEPL_AUTH_KEY": server.auth_key,
Expand Down
22 changes: 11 additions & 11 deletions tests/test_general.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import pytest
import os

TEST_AUTH_KEY = os.getenv("DEEPL_AUTH_KEY") or "test_auth_key"


def test_version():
assert "1.30.0" == deepl.__version__
Expand Down Expand Up @@ -141,7 +143,7 @@ def test_server_url_selected_based_on_auth_key(server):
@patch("requests.adapters.HTTPAdapter.send")
def test_user_agent(mock_send):
mock_send.return_value = _build_test_response()
translator = deepl.Translator(os.environ["DEEPL_AUTH_KEY"])
translator = deepl.Translator(TEST_AUTH_KEY)
translator.translate_text(example_text["EN"], target_lang="DA")
ua_header = mock_send.call_args[0][0].headers["User-agent"]
assert "requests/" in ua_header
Expand All @@ -152,9 +154,7 @@ def test_user_agent(mock_send):
@patch("requests.adapters.HTTPAdapter.send")
def test_user_agent_opt_out(mock_send):
mock_send.return_value = _build_test_response()
translator = deepl.Translator(
os.environ["DEEPL_AUTH_KEY"], send_platform_info=False
)
translator = deepl.Translator(TEST_AUTH_KEY, send_platform_info=False)
translator.translate_text(example_text["EN"], target_lang="DA")
ua_header = mock_send.call_args[0][0].headers["User-agent"]
assert "requests/" not in ua_header
Expand All @@ -167,7 +167,7 @@ def test_custom_user_agent(mock_send):
mock_send.return_value = _build_test_response()
old_user_agent = deepl.http_client.user_agent
deepl.http_client.user_agent = "my custom user agent"
translator = deepl.Translator(os.environ["DEEPL_AUTH_KEY"])
translator = deepl.Translator(TEST_AUTH_KEY)
translator.translate_text(example_text["EN"], target_lang="DA")
ua_header = mock_send.call_args[0][0].headers["User-agent"]
assert ua_header == "my custom user agent"
Expand All @@ -177,9 +177,9 @@ def test_custom_user_agent(mock_send):
@patch("requests.adapters.HTTPAdapter.send")
def test_user_agent_with_app_info(mock_send):
mock_send.return_value = _build_test_response()
translator = deepl.Translator(
os.environ["DEEPL_AUTH_KEY"],
).set_app_info("sample_python_plugin", "1.0.2")
translator = deepl.Translator(TEST_AUTH_KEY).set_app_info(
"sample_python_plugin", "1.0.2"
)
translator.translate_text(example_text["EN"], target_lang="DA")
ua_header = mock_send.call_args[0][0].headers["User-agent"]
assert "requests/" in ua_header
Expand All @@ -192,7 +192,7 @@ def test_user_agent_with_app_info(mock_send):
def test_user_agent_opt_out_with_app_info(mock_send):
mock_send.return_value = _build_test_response()
translator = deepl.Translator(
os.environ["DEEPL_AUTH_KEY"],
TEST_AUTH_KEY,
send_platform_info=False,
).set_app_info("sample_python_plugin", "1.0.2")
translator.translate_text(example_text["EN"], target_lang="DA")
Expand All @@ -208,7 +208,7 @@ def test_custom_user_agent_with_app_info(mock_send):
mock_send.return_value = _build_test_response()
old_user_agent = deepl.http_client.user_agent
deepl.http_client.user_agent = "my custom user agent"
translator = deepl.Translator(os.environ["DEEPL_AUTH_KEY"]).set_app_info(
translator = deepl.Translator(TEST_AUTH_KEY).set_app_info(
"sample_python_plugin", "1.0.2"
)
translator.translate_text(example_text["EN"], target_lang="DA")
Expand All @@ -222,7 +222,7 @@ def test_custom_user_agent_with_app_info(mock_send):
def test_user_agent_exception(platform_mock, mock_send):
mock_send.return_value = _build_test_response()
platform_mock.side_effect = OSError("mocked test exception")
translator = deepl.Translator(os.environ["DEEPL_AUTH_KEY"])
translator = deepl.Translator(TEST_AUTH_KEY)
translator.translate_text(example_text["EN"], target_lang="DA")
ua_header = mock_send.call_args[0][0].headers["User-agent"]
assert "deepl-python" in ua_header
Expand Down
2 changes: 2 additions & 0 deletions tests/test_translate_text.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,8 @@ def test_invalid_language(translator):


def test_skip_language_check(server):
if not server.is_mock_server and not server.auth_key:
pytest.skip("this test requires DEEPL_AUTH_KEY for real server usage")
translator = deepl.Translator(
server.auth_key, server_url=server.server_url, skip_language_check=True
)
Expand Down