Skip to content

Commit

Permalink
run linter on old files
Browse files Browse the repository at this point in the history
  • Loading branch information
laaraujo committed Sep 9, 2024
1 parent 5774fb7 commit 5a298fb
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 47 deletions.
2 changes: 1 addition & 1 deletion src/app/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"django.contrib.staticfiles",
"users",
"rest_framework",
"rest_framework.authtoken", # to avoid AttributeError: type object 'Token' has no attribute 'objects'
"rest_framework.authtoken", # to avoid AttributeError: type object 'Token' has no attribute 'objects'
"drf_spectacular", # docs
"djoser",
]
Expand Down
16 changes: 11 additions & 5 deletions tests/api/users/test_activate.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
import djoser.constants
import djoser.utils
import pytest
from django.contrib.auth.tokens import default_token_generator
import djoser.utils
import djoser.constants


def test__activates_user(client, user_factory):
user = user_factory(is_active=False)
assert user.is_active == False
payload = {
"uid": djoser.utils.encode_uid(user.pk),
"token": default_token_generator.make_token(user)
"token": default_token_generator.make_token(user),
}
r = client.post("/users/activation/", data=payload)
assert r.status_code == 204
user.refresh_from_db()
assert user.is_active


@pytest.mark.parametrize("field, err_msg", [("uid", djoser.constants.Messages.INVALID_UID_ERROR), ("token",djoser.constants.Messages.INVALID_TOKEN_ERROR)])
@pytest.mark.parametrize(
"field, err_msg",
[
("uid", djoser.constants.Messages.INVALID_UID_ERROR),
("token", djoser.constants.Messages.INVALID_TOKEN_ERROR),
],
)
def test__with_invalid_uid_or_token__returns_400(field, err_msg, client, user_factory):
user = user_factory(is_active=False)
assert user.is_active == False
payload = {
"uid": djoser.utils.encode_uid(user.pk),
"token": default_token_generator.make_token(user)
"token": default_token_generator.make_token(user),
}
payload[field] = "invalid_value"
r = client.post("/users/activation/", data=payload)
Expand Down
9 changes: 6 additions & 3 deletions tests/api/users/test_delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,30 @@


def test__with_auth_user__deletes_user(client, user_factory):
pwd = 'test'
pwd = "test"
user = user_factory(password=pwd)
client.force_authenticate(user)
r = client.delete(f"/users/{user.id}/", data={"current_password": pwd})
assert r.status_code == 204
with pytest.raises(User.DoesNotExist):
assert user.refresh_from_db()


def test__with_diff_user__returns_403(client, user, user_factory):
pwd = 'test'
pwd = "test"
diff_user = user_factory(password=pwd)
client.force_authenticate(user)
r = client.delete(f"/users/{diff_user.id}/", data={"current_password": pwd})
assert r.status_code == 403


def test__with_anonymous_user__returns_401(client, user_factory):
pwd = 'test'
pwd = "test"
user = user_factory(password=pwd)
r = client.delete(f"/users/{user.id}/", data={"current_password": pwd})
assert r.status_code == 401


def test__with_invalid_id__returns_404(client, user):
client.force_authenticate(user)
invalid_id = user.id + 1
Expand Down
9 changes: 3 additions & 6 deletions tests/api/users/test_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@
# Unauthenticated - 401
# Filters - 200


def test__with_auth_user__returns_same_user_only(client, user, user_factory):
[user_factory() for _ in range(5)]
client.force_authenticate(user)
r = client.get("/users/")
assert r.status_code == 200
data = r.json()
assert len(data["results"]) == 1
assert data["results"][0] == {
"email": user.email,
"name": user.name,
"id": user.id
}
assert data["results"][0] == {"email": user.email, "name": user.name, "id": user.id}


def test__with_auth_admin_user__returns_all_users(client, admin_user, user_factory):
users = [user_factory() for _ in range(5)]
Expand All @@ -27,4 +25,3 @@ def test__with_auth_admin_user__returns_all_users(client, admin_user, user_facto
def test__with_anonymous_user__returns_401(client):
r = client.get("/users/")
assert r.status_code == 401

11 changes: 5 additions & 6 deletions tests/api/users/test_me.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@

def test__with_authenticated_user__returns_user_data(client, user):
jwt = create_jwt_token(user)
headers = {
"Authorization": f"JWT {jwt}"
}
headers = {"Authorization": f"JWT {jwt}"}
r = client.get("/users/me/", headers=headers)
assert r.status_code == 200
data = r.json()
assert data['email'] == user.email
assert data['name'] == user.name
assert data['id'] == user.id
assert data["email"] == user.email
assert data["name"] == user.name
assert data["id"] == user.id


def test__with_anonymous_user__returns_401(client, user):
r = client.get("/users/me/")
Expand Down
13 changes: 6 additions & 7 deletions tests/api/users/test_register.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@
# Missing required fields - 400

import pytest
from tests.utils import faker
from users.models import User
from django.core import mail
from users.models import User

from tests.utils import faker


def test__creates_user(client):
password = faker.password()
Expand All @@ -13,7 +15,7 @@ def test__creates_user(client):
"email": faker.email(),
"password": password,
"re_password": password,
"name": faker.name()
"name": faker.name(),
}
r = client.post("/users/", data=payload)
assert r.status_code == 201
Expand All @@ -32,13 +34,10 @@ def test__with_missing_fields__returns_400(field, client):
"email": faker.email(),
"password": password,
"re_password": password,
"name": faker.name()
"name": faker.name(),
}
del payload[field]
r = client.post("/users/", data=payload)
assert r.status_code == 400
data = r.json()
assert data[field] == ["This field is required."]



14 changes: 7 additions & 7 deletions tests/api/users/test_resend_activateion_email.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
from django.core import mail


def test__resends_activation_email(client, user_factory):
user = user_factory(is_active=False)
r = client.post("/users/resend_activation/", data={
"email": user.email
})
r = client.post("/users/resend_activation/", data={"email": user.email})
assert r.status_code == 204
assert len(mail.outbox) == 1
assert mail.outbox[0].to == [user.email]


def test__with_invalid_email__returns_400(client):
r = client.post("/users/resend_activation/", data={
"email": "invalid_email@test.com"
})
r = client.post(
"/users/resend_activation/", data={"email": "invalid_email@test.com"}
)
assert r.status_code == 400
assert len(mail.outbox) == 0


def test__with_missing_email__returns_400(client):
r = client.post("/users/resend_activation/")
assert r.status_code == 400
Expand Down
3 changes: 2 additions & 1 deletion tests/api/users/test_reset_password.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from django.core import mail

from tests.utils import faker


def test__with_valid_email__sends_email(client, user):
r = client.post("/users/reset_password/", data={"email": user.email})
assert r.status_code == 204
Expand All @@ -20,4 +22,3 @@ def test__with_invalid_email__returns_400(client):
r = client.post("/users/reset_password/", data={"email": faker.email()})
assert r.status_code == 400
assert len(mail.outbox) == 0

5 changes: 3 additions & 2 deletions tests/api/users/test_reset_password_confirmation.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import djoser.utils
import pytest
from tests.utils import faker
from django.contrib.auth.tokens import default_token_generator
import djoser.utils

from tests.utils import faker


def test__with_valid_uid_and_token__updates_password(client, user):
Expand Down
16 changes: 10 additions & 6 deletions tests/api/users/test_set_password.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import pytest

from tests.utils import faker


def test__with_authenticated_user__changes_password(client, user_factory):
pwd = faker.password()
new_pwd = faker.password()
Expand All @@ -10,7 +12,7 @@ def test__with_authenticated_user__changes_password(client, user_factory):
payload = {
"current_password": pwd,
"new_password": new_pwd,
"re_new_password": new_pwd
"re_new_password": new_pwd,
}
r = client.post("/users/set_password/", data=payload)
assert r.status_code == 204
Expand All @@ -26,7 +28,7 @@ def test__with_anonymous_user__returns_400(client, user_factory):
payload = {
"current_password": pwd,
"new_password": new_pwd,
"re_new_password": new_pwd
"re_new_password": new_pwd,
}
r = client.post("/users/set_password/", data=payload)
assert r.status_code == 401
Expand All @@ -43,7 +45,7 @@ def test__with_incorrect_curr_password__returns_400(client, user_factory):
payload = {
"current_password": "incorrect_password",
"new_password": new_pwd,
"re_new_password": new_pwd
"re_new_password": new_pwd,
}
r = client.post("/users/set_password/", data=payload)
assert r.status_code == 400
Expand All @@ -60,15 +62,17 @@ def test__with_different_re_new_password__returns_400(client, user_factory):
payload = {
"current_password": pwd,
"new_password": new_pwd,
"re_new_password": "diff_re_new_password"
"re_new_password": "diff_re_new_password",
}
r = client.post("/users/set_password/", data=payload)
assert r.status_code == 400
user.refresh_from_db()
assert user.check_password(new_pwd) == False


@pytest.mark.parametrize("field", ["current_password", "new_password", "re_new_password"])
@pytest.mark.parametrize(
"field", ["current_password", "new_password", "re_new_password"]
)
def test__with_missing_fields__returns_400(field, client, user_factory):
pwd = faker.password()
new_pwd = faker.password()
Expand All @@ -78,7 +82,7 @@ def test__with_missing_fields__returns_400(field, client, user_factory):
payload = {
"current_password": pwd,
"new_password": new_pwd,
"re_new_password": new_pwd
"re_new_password": new_pwd,
}
del payload[field]
r = client.post("/users/set_password/", data=payload)
Expand Down
7 changes: 4 additions & 3 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from collections.abc import Callable

import pytest
from django.contrib.auth.hashers import make_password
from model_bakery import baker
from rest_framework.test import APIClient
from users.models import User

from tests.utils import create_jwt_token, faker
from django.contrib.auth.hashers import make_password


def pytest_collection_modifyitems(items):
Expand All @@ -26,8 +26,8 @@ def client() -> APIClient:
@pytest.fixture
def user_factory() -> Callable[..., User]:
def create_user(**kwargs) -> User:
if 'password' in kwargs:
kwargs['password'] = make_password(kwargs['password'])
if "password" in kwargs:
kwargs["password"] = make_password(kwargs["password"])
return baker.make(User, **kwargs)

return create_user
Expand All @@ -37,6 +37,7 @@ def create_user(**kwargs) -> User:
def user(user_factory: Callable[..., User]) -> User:
return user_factory(is_active=True, is_admin=False)


@pytest.fixture
def admin_user(user_factory: Callable[..., User]) -> User:
return user_factory(is_active=True, is_admin=True)
Expand Down

0 comments on commit 5a298fb

Please sign in to comment.