Skip to content

Commit 7d400bd

Browse files
committed
Switch to pytest
1 parent 70d330e commit 7d400bd

File tree

9 files changed

+51
-34
lines changed

9 files changed

+51
-34
lines changed

.github/workflows/main.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@ jobs:
88
python-version:
99
- '2.7'
1010
- '3.6'
11-
- '3.7'
11+
- '3.8'
1212
- '3.9'
13+
- '3.10'
14+
- '3.11'
15+
- '3.12'
1316
name: Python ${{ matrix.python-version }} sample
1417
steps:
15-
- uses: actions/checkout@v3
16-
- uses: actions/setup-python@v3
18+
- uses: actions/checkout@v4
19+
- uses: actions/setup-python@v4
1720
with:
1821
python-version: ${{ matrix.python-version }}
1922
cache: 'pip'
@@ -22,6 +25,7 @@ jobs:
2225
python -m pip install --upgrade pip
2326
pip install -r requirements.txt
2427
pip install -r test-requirements.txt
25-
- env:
28+
- name: Run tests
29+
env:
2630
DETECTLANGUAGE_API_KEY: ${{ secrets.DETECTLANGUAGE_API_KEY }}
27-
run: nosetests
31+
run: pytest

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ You are welcome to patch and send GitHub pull requests.
105105

106106
pip install -r requirements.txt
107107
pip install -r test-requirements.txt
108-
nosetests
108+
pytest
109109

110110
## License
111111

mise.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,9 @@
33
[env]
44
_.file = ".env.local"
55
_.python.venv = { path = ".venv", create = true }
6+
7+
[tasks]
8+
test = "pytest"
9+
test-cov = "pytest --cov=detectlanguage --cov-report=term-missing"
10+
test-verbose = "pytest -v"
11+
install-dev = "pip install -r requirements.txt && pip install -r test-requirements.txt"

pytest.ini

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[tool:pytest]
2+
testpaths = tests
3+
python_files = test_*.py
4+
python_classes = Test*
5+
python_functions = test_*
6+
addopts =
7+
--verbose
8+
--tb=short
9+
--strict-markers
10+
markers =
11+
slow: marks tests as slow (deselect with '-m "not slow"')
12+
integration: marks tests as integration tests

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
download_url = 'https://github.com/detectlanguage/detectlanguage-python',
2020
keywords = ['language', 'identification', 'detection', 'api', 'client'],
2121
install_requires= ['requests>=2.4.2'],
22+
test_requires= ['pytest>=7.0.0', 'pytest-mock>=3.10.0', 'pytest-cov>=4.0.0'],
2223
classifiers = [],
2324
license = 'MIT',
2425
)

test-requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
nose
2-
nose-setenv
3-
mock
1+
pytest>=7.0.0
2+
pytest-mock>=3.10.0
3+
pytest-cov>=4.0.0

tests/test_api.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,33 @@
11
# -*- coding: utf-8 -*-
22

3-
from . import utils
4-
from nose.tools import *
3+
import pytest
54
import detectlanguage
65
import os
76

8-
class TestApi(utils.TestCase):
9-
def setUp(self):
7+
class TestApi:
8+
def setup_method(self):
109
detectlanguage.configuration.api_key = os.environ['DETECTLANGUAGE_API_KEY']
1110

1211
def test_simple_detect(self):
1312
result = detectlanguage.simple_detect("Hello world")
14-
eq_('en', result)
13+
assert result == 'en'
1514

1615
def test_detect(self):
1716
result = detectlanguage.detect("Hello world")
18-
eq_('en', result[0]['language'])
17+
assert result[0]['language'] == 'en'
1918

2019
def test_detect_unicode(self):
2120
result = detectlanguage.detect("Ėjo ežiukas")
22-
eq_('lt', result[0]['language'])
21+
assert result[0]['language'] == 'lt'
2322

2423
def test_detect_array(self):
2524
result = detectlanguage.detect(["Hello world", "Ėjo ežiukas"])
26-
eq_('en', result[0][0]['language'])
27-
eq_('lt', result[1][0]['language'])
25+
assert result[0][0]['language'] == 'en'
26+
assert result[1][0]['language'] == 'lt'
2827

2928
def test_user_status(self):
3029
result = detectlanguage.user_status()
31-
eq_('ACTIVE', result['status'])
30+
assert result['status'] == 'ACTIVE'
3231

3332
def test_languages(self):
3433
result = detectlanguage.languages()
@@ -37,12 +36,12 @@ def test_languages(self):
3736
def test_secure(self):
3837
detectlanguage.configuration.secure = True
3938
result = detectlanguage.detect("Hello world")
40-
eq_('en', result[0]['language'])
39+
assert result[0]['language'] == 'en'
4140
detectlanguage.configuration.secure = False
4241

43-
class TestApiErrors(utils.TestCase):
44-
@raises(detectlanguage.DetectLanguageError)
42+
class TestApiErrors:
4543
def test_invalid_key(self):
4644
detectlanguage.configuration.api_key = 'invalid'
47-
detectlanguage.detect("Hello world")
45+
with pytest.raises(detectlanguage.DetectLanguageError):
46+
detectlanguage.detect("Hello world")
4847

tests/test_detectlanguage.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
from . import utils
2-
from nose.tools import eq_
1+
import pytest
32
import detectlanguage
43

5-
class TestDetectlanguage(utils.TestCase):
4+
class TestDetectlanguage:
65
def testDefaults(self):
7-
eq_('0.2', detectlanguage.configuration.api_version)
8-
eq_('ws.detectlanguage.com', detectlanguage.configuration.host)
9-
eq_(False, detectlanguage.configuration.secure)
6+
assert detectlanguage.configuration.api_version == '0.2'
7+
assert detectlanguage.configuration.host == 'ws.detectlanguage.com'
8+
assert detectlanguage.configuration.secure == False
109

1110
def testConfiguration(self):
1211
detectlanguage.configuration.api_key = 'TEST'
13-
eq_('TEST', detectlanguage.client.configuration.api_key)
12+
assert detectlanguage.client.configuration.api_key == 'TEST'

tests/utils.py

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)