mirror of
https://github.com/Alexander-D-Karpov/akarpov
synced 2024-11-22 14:26:34 +03:00
added full tests for user's api
This commit is contained in:
parent
f6f15d3979
commit
403fb8ffa5
|
@ -25,7 +25,7 @@ def validate_token(self, token):
|
|||
|
||||
class UserPublicInfoSerializer(serializers.ModelSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="api:users:user_retrieve_username_api", lookup_field="username"
|
||||
view_name="api:users:get", lookup_field="username"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import pytest
|
||||
from django.urls import reverse_lazy
|
||||
from pytest_lambda import lambda_fixture, static_fixture
|
||||
from rest_framework import status
|
||||
|
@ -27,3 +28,74 @@ def test_return_err_if_data_is_invalid(
|
|||
assert response.status_code == status.HTTP_400_BAD_REQUEST
|
||||
user.refresh_from_db()
|
||||
assert not user.check_password(new_password)
|
||||
|
||||
|
||||
class TestUserListRetrieve:
|
||||
url = static_fixture(reverse_lazy("api:users:list"))
|
||||
url_retrieve = static_fixture(
|
||||
reverse_lazy("api:users:get", kwargs={"username": "TestUser"})
|
||||
)
|
||||
user = lambda_fixture(
|
||||
lambda user_factory: user_factory(password="P@ssw0rd", username="TestUser")
|
||||
)
|
||||
|
||||
def test_user_list_site_users(self, api_user_client, url, user):
|
||||
response = api_user_client.get(url)
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["count"] == 1
|
||||
assert response.json()["results"][0]["username"] == user.username
|
||||
|
||||
def test_user_retrieve_by_username(self, api_user_client, url_retrieve, user):
|
||||
response = api_user_client.get(url_retrieve)
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["username"] == user.username
|
||||
assert response.json()["id"] == user.id
|
||||
|
||||
def test_user_retrieve_by_id(self, api_user_client, user):
|
||||
response = api_user_client.get(
|
||||
reverse_lazy("api:users:get_by_id", kwargs={"pk": user.id})
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["username"] == user.username
|
||||
assert response.json()["id"] == user.id
|
||||
|
||||
|
||||
class TestUserSelfRetrieve:
|
||||
url = static_fixture(reverse_lazy("api:users:self"))
|
||||
user = lambda_fixture(lambda user_factory: user_factory(password="P@ssw0rd"))
|
||||
|
||||
def test_user_self_retrieve(self, api_user_client, url, user):
|
||||
response = api_user_client.get(url)
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["username"] == user.username
|
||||
assert response.json()["id"] == user.id
|
||||
|
||||
def test_user_self_update_put(self, api_user_client, url, user):
|
||||
response = api_user_client.put(url, {"username": "NewUsername"})
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["username"] == "NewUsername"
|
||||
assert response.json()["id"] == user.id
|
||||
user.refresh_from_db()
|
||||
assert user.username == "NewUsername"
|
||||
|
||||
def test_user_self_update_patch(self, api_user_client, url, user):
|
||||
response = api_user_client.patch(url, {"username": "NewUsername"})
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["username"] == "NewUsername"
|
||||
assert response.json()["id"] == user.id
|
||||
user.refresh_from_db()
|
||||
assert user.username == "NewUsername"
|
||||
|
||||
def test_user_self_delete(self, api_user_client, url, user):
|
||||
response = api_user_client.delete(url)
|
||||
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert response.content == b""
|
||||
with pytest.raises(user.DoesNotExist):
|
||||
user.refresh_from_db()
|
||||
|
|
Loading…
Reference in New Issue
Block a user