Skip to content

Commit 7c677bf

Browse files
committed
Migrate remaining tests to pytest
1 parent b0b14ac commit 7c677bf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2976
-2641
lines changed

pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ exclude = [
7575
]
7676

7777
[tool.isort]
78+
profile = "black"
7879
line_length = 88
7980
skip = ["migrations", "examples", ".venv", ".tox"]
8081
known_third_party = "django_dynamic_fixture"

requirements/requirements-ci.in

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ flake8-comprehensions
44
flake8-debugger
55
flake8-isort
66
flake8-pyproject
7+
flake8-pytest-style
78
flake8-print
89
flake8-tuple
910
isort[pyproject]

requirements/requirements-ci.lock.txt

+4
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,14 @@ flake8-debugger==4.1.2
118118
# via -r requirements/requirements-ci.in
119119
flake8-isort==6.1.1
120120
# via -r requirements/requirements-ci.in
121+
flake8-plugin-utils==1.3.3
122+
# via flake8-pytest-style
121123
flake8-print==5.0.0
122124
# via -r requirements/requirements-ci.in
123125
flake8-pyproject==1.2.3
124126
# via -r requirements/requirements-ci.in
127+
flake8-pytest-style==2.0.0
128+
# via -r requirements/requirements-ci.in
125129
flake8-tuple==0.4.1
126130
# via -r requirements/requirements-ci.in
127131
h11==0.14.0

requirements/requirements-dev.lock.txt

+6
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,16 @@ flake8-debugger==4.1.2
151151
# via -r requirements/requirements-ci.lock.txt
152152
flake8-isort==6.1.1
153153
# via -r requirements/requirements-ci.lock.txt
154+
flake8-plugin-utils==1.3.3
155+
# via
156+
# -r requirements/requirements-ci.lock.txt
157+
# flake8-pytest-style
154158
flake8-print==5.0.0
155159
# via -r requirements/requirements-ci.lock.txt
156160
flake8-pyproject==1.2.3
157161
# via -r requirements/requirements-ci.lock.txt
162+
flake8-pytest-style==2.0.0
163+
# via -r requirements/requirements-ci.lock.txt
158164
flake8-tuple==0.4.1
159165
# via -r requirements/requirements-ci.lock.txt
160166
h11==0.14.0

rest_registration/api/serializers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from rest_registration.utils.validation import (
77
run_validators,
88
validate_user_password,
9-
validate_user_password_confirm
9+
validate_user_password_confirm,
1010
)
1111

1212

rest_registration/api/urls.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
reset_password,
1111
send_reset_password_link,
1212
verify_email,
13-
verify_registration
13+
verify_registration,
1414
)
1515

1616
app_name = 'rest_registration'

rest_registration/api/views/register.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from rest_registration.utils.users import (
1919
get_user_by_verification_id,
2020
get_user_email_field_name,
21-
get_user_setting
21+
get_user_setting,
2222
)
2323
from rest_registration.utils.verification import verify_signer_or_bad_request
2424

rest_registration/api/views/register_email.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
get_user_by_verification_id,
1818
get_user_email_field_name,
1919
is_user_email_field_unique,
20-
user_with_email_exists
20+
user_with_email_exists,
2121
)
2222
from rest_registration.utils.verification import verify_signer_or_bad_request
2323

rest_registration/api/views/reset_password.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from rest_registration.utils.validation import (
1818
run_validators,
1919
validate_password_with_user_id,
20-
validate_user_password_confirm
20+
validate_user_password_confirm,
2121
)
2222
from rest_registration.utils.verification import verify_signer_or_bad_request
2323

rest_registration/auth_token_managers.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,19 @@ def get_app_names(self) -> Sequence[str]:
6565
]
6666

6767
def provide_token(self, user: 'AbstractBaseUser') -> AuthToken:
68-
from rest_framework.authtoken.models import \
69-
Token # noqa: E501 pylint: disable=import-outside-toplevel
68+
from rest_framework.authtoken.models import ( # noqa: E501 pylint: disable=import-outside-toplevel
69+
Token,
70+
)
7071

7172
token_obj, _ = Token.objects.get_or_create(user=user)
7273
return AuthToken(token_obj.key)
7374

7475
def revoke_token(
7576
self, user: 'AbstractBaseUser', *,
7677
token: Optional[AuthToken] = None) -> None:
77-
from rest_framework.authtoken.models import \
78-
Token # noqa: E501 pylint: disable=import-outside-toplevel
78+
from rest_framework.authtoken.models import ( # noqa: E501 pylint: disable=import-outside-toplevel
79+
Token,
80+
)
7981

8082
try:
8183
token_obj: Token = Token.objects.get(user_id=user.pk)

rest_registration/checks.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
get_user_email_field_name,
1818
get_user_login_field_names,
1919
get_user_setting,
20-
is_model_field_unique
20+
is_model_field_unique,
2121
)
2222

2323
if TYPE_CHECKING:

rest_registration/contrib/verification_redirects/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from rest_registration.api.views.register_email import process_verify_email_data
77
from rest_registration.api.views.reset_password import process_reset_password_data
88
from rest_registration.contrib.verification_redirects.settings import (
9-
verification_redirects_settings
9+
verification_redirects_settings,
1010
)
1111

1212

rest_registration/enums.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
class _BaseCheckCodeMixin(CheckCode): # noqa: E501 pylint: disable=abstract-method
1010

1111
def get_app_name(self) -> str:
12-
from rest_registration.apps import \
13-
RestRegistrationConfig # noqa: E501 pylint: disable=import-outside-toplevel, cyclic-import
12+
from rest_registration.apps import ( # noqa: E501 pylint: disable=import-outside-toplevel, cyclic-import
13+
RestRegistrationConfig,
14+
)
1415

1516
return RestRegistrationConfig.name
1617

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .email import ( # noqa: F401
22
create_verification_notification,
33
send_notification,
4-
send_verification_notification
4+
send_verification_notification,
55
)

rest_registration/utils/html.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ def convert_html_to_text(value: str, preserve_urls: bool = False) -> str:
1414
return stripper.get_data()
1515

1616

17+
class MLStripperParseFailed(ValueError):
18+
pass
19+
20+
1721
class MLStripper(HTMLParser):
1822

1923
def __init__(self, preserve_urls: bool = False) -> None:
@@ -29,7 +33,7 @@ def parse_marked_section(self, i, report=1):
2933
except AssertionError as exc:
3034
# rephrase confusing assertion error introduced by:
3135
# https://bugs.python.org/issue38573
32-
raise ValueError(str(exc)) from exc
36+
raise MLStripperParseFailed(str(exc)) from exc
3337

3438
def handle_starttag(self, tag: str, attrs: List[Tuple[str, Optional[str]]]) -> None:
3539
self._tag_info_stack.append(TagInfo(tag, dict(attrs)))
@@ -58,7 +62,7 @@ def handle_data(self, data: str) -> None:
5862
self._append_segment(data)
5963

6064
def error(self, message: str) -> None:
61-
raise ValueError(f"HTML parse error: {message}")
65+
raise MLStripperParseFailed(f"HTML parse error: {message}")
6266

6367
def get_data(self) -> str:
6468
paragraph_texts = []

rest_registration/utils/types.py

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
if TYPE_CHECKING:
44
from django_stubs_ext import StrOrPromise
5+
56
# mypy uses typing_extensions by default (Py 3.8); when importing from typing
67
# one will get the following error message in mypy:
78
#

rest_registration/utils/users.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
List,
88
Tuple,
99
TypeVar,
10-
Union
10+
Union,
1111
)
1212

1313
from django.contrib import auth

rest_registration/utils/validation.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from rest_registration.utils.users import (
1313
UserAttrsProxy,
1414
build_initial_user,
15-
get_user_by_verification_id
15+
get_user_by_verification_id,
1616
)
1717

1818
if TYPE_CHECKING:

tests/helpers/testcases.py

-119
This file was deleted.

tests/unit_tests/api/serializers/test_register.py

+21-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from rest_registration.settings import registration_settings
44

55

6-
@pytest.fixture()
6+
@pytest.fixture
77
def serializer():
88
serializer_class = registration_settings.REGISTER_SERIALIZER_CLASS
99
return serializer_class(data={})
@@ -12,25 +12,35 @@ def serializer():
1212
def test_generated_fields(settings_with_register_verification, serializer):
1313
field_names = set(serializer.get_fields())
1414
assert field_names == {
15-
'id', 'username', 'first_name', 'last_name', 'email',
16-
'password', 'password_confirm',
15+
"id",
16+
"username",
17+
"first_name",
18+
"last_name",
19+
"email",
20+
"password",
21+
"password_confirm",
1722
}
1823

1924

2025
def test_simple_email_based_user_generated_fields(
21-
settings_with_register_verification,
22-
settings_with_simple_email_based_user,
23-
serializer):
26+
settings_with_register_verification,
27+
settings_with_simple_email_based_user,
28+
serializer,
29+
):
2430
field_names = set(serializer.get_fields())
2531

26-
assert field_names == {'id', 'email', 'password', 'password_confirm'}
32+
assert field_names == {"id", "email", "password", "password_confirm"}
2733

2834

2935
def test_no_password_generated_fields(
30-
settings_with_register_verification,
31-
settings_with_register_no_confirm,
32-
serializer):
36+
settings_with_register_verification, settings_with_register_no_confirm, serializer
37+
):
3338
field_names = set(serializer.get_fields())
3439
assert field_names == {
35-
'id', 'username', 'first_name', 'last_name', 'email', 'password',
40+
"id",
41+
"username",
42+
"first_name",
43+
"last_name",
44+
"email",
45+
"password",
3646
}

0 commit comments

Comments
 (0)