mirror of
https://github.com/Alexander-D-Karpov/akarpov
synced 2024-11-23 00:56:35 +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):
|
class UserPublicInfoSerializer(serializers.ModelSerializer):
|
||||||
url = serializers.HyperlinkedIdentityField(
|
url = serializers.HyperlinkedIdentityField(
|
||||||
view_name="api:users:user_retrieve_username_api", lookup_field="username"
|
view_name="api:users:get", lookup_field="username"
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import pytest
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from pytest_lambda import lambda_fixture, static_fixture
|
from pytest_lambda import lambda_fixture, static_fixture
|
||||||
from rest_framework import status
|
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
|
assert response.status_code == status.HTTP_400_BAD_REQUEST
|
||||||
user.refresh_from_db()
|
user.refresh_from_db()
|
||||||
assert not user.check_password(new_password)
|
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