From 2db8eed58da6d8d0b9125b8367361442e5574e26 Mon Sep 17 00:00:00 2001 From: Aaron Beavers Date: Wed, 20 Jan 2021 13:55:15 -0500 Subject: [PATCH 1/6] Remove tests for create user endpoint and serializer --- .../users/test/test_api/test_basic.py | 15 ----------- .../tdpservice/users/test/test_serializers.py | 25 ------------------- 2 files changed, 40 deletions(-) diff --git a/tdrs-backend/tdpservice/users/test/test_api/test_basic.py b/tdrs-backend/tdpservice/users/test/test_api/test_basic.py index cebe60ebf2..f547cd82d5 100644 --- a/tdrs-backend/tdpservice/users/test/test_api/test_basic.py +++ b/tdrs-backend/tdpservice/users/test/test_api/test_basic.py @@ -6,13 +6,6 @@ User = get_user_model() -@pytest.mark.django_db -@pytest.fixture(scope="function") -def create_test_users(): - """Create users for each group.""" - call_command("generate_test_users") - - @pytest.mark.django_db def test_retrieve_user(api_client, user): """Test user retrieval.""" @@ -37,11 +30,3 @@ def test_cannot_update_user_anonymously(api_client, user): """Test an unauthenticated user cannot update a user.""" response = api_client.patch(f"/v1/users/{user.pk}/", {"first_name": "Jane"}) assert response.status_code == status.HTTP_403_FORBIDDEN - - -@pytest.mark.django_db -def test_create_user(api_client, user_data): - """Test user creation.""" - response = api_client.post("/v1/users/", user_data) - assert response.status_code == status.HTTP_201_CREATED - assert User.objects.filter(username=user_data["username"]).exists() diff --git a/tdrs-backend/tdpservice/users/test/test_serializers.py b/tdrs-backend/tdpservice/users/test/test_serializers.py index d6ae5f7c27..a3f00bb1fc 100644 --- a/tdrs-backend/tdpservice/users/test/test_serializers.py +++ b/tdrs-backend/tdpservice/users/test/test_serializers.py @@ -2,28 +2,3 @@ from django.contrib.auth.hashers import check_password import pytest - -from ..serializers import CreateUserSerializer - - -def test_serializer_with_empty_data(): - """If an empty serialized request is returned it should not be valid.""" - serializer = CreateUserSerializer(data={}) - assert serializer.is_valid() is False - - -@pytest.mark.django_db -def test_serializer_with_valid_data(user_data): - """If a serializer has valid data it will return a valid object.""" - serializer = CreateUserSerializer(data=user_data) - assert serializer.is_valid() is True - - -@pytest.mark.django_db -def test_serializer_hashes_password(user_data): - """The serializer should hash the user's password.""" - serializer = CreateUserSerializer(data=user_data) - assert serializer.is_valid() is True - - user = serializer.save() - assert check_password(user_data["password"], user.password) is True From 8bc7718db842bfd0243b7bde681551f620389d9e Mon Sep 17 00:00:00 2001 From: Aaron Beavers Date: Wed, 20 Jan 2021 13:55:24 -0500 Subject: [PATCH 2/6] remove create user serializer --- tdrs-backend/tdpservice/users/serializers.py | 28 -------------------- 1 file changed, 28 deletions(-) diff --git a/tdrs-backend/tdpservice/users/serializers.py b/tdrs-backend/tdpservice/users/serializers.py index c100a99ed6..8c1f8fd1be 100644 --- a/tdrs-backend/tdpservice/users/serializers.py +++ b/tdrs-backend/tdpservice/users/serializers.py @@ -57,34 +57,6 @@ class Meta: ) read_only_fields = ("username",) - -class CreateUserSerializer(serializers.ModelSerializer): - """Defined class to create the user serializer.""" - - def create(self, validated_data): - """Serialize the user object.""" - # call create_user on user object. Without this - # the password will be stored in plain text. - user = User.objects.create_user(**validated_data) - return user - - class Meta: - """Define meta user serializer attributes.""" - - model = User - fields = ( - "id", - "username", - "password", - "first_name", - "last_name", - "email", - "auth_token", - ) - read_only_fields = ("auth_token",) - extra_kwargs = {"password": {"write_only": True}} - - class UserProfileSerializer(serializers.ModelSerializer): """Serializer used for setting a user's profile.""" From c7d11e55ad04b2bb88abd79f671835fa477d7746 Mon Sep 17 00:00:00 2001 From: Aaron Beavers Date: Wed, 20 Jan 2021 13:57:36 -0500 Subject: [PATCH 3/6] Remove create user serializer import --- tdrs-backend/tdpservice/users/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tdrs-backend/tdpservice/users/views.py b/tdrs-backend/tdpservice/users/views.py index be17eebc57..18bb8c3bd7 100644 --- a/tdrs-backend/tdpservice/users/views.py +++ b/tdrs-backend/tdpservice/users/views.py @@ -10,7 +10,6 @@ from .permissions import IsAdmin, IsUser from django.utils import timezone from .serializers import ( - CreateUserSerializer, UserProfileSerializer, UserSerializer, GroupSerializer From 1e7d23106d1b77826cca51a54f3b598c01cb4a04 Mon Sep 17 00:00:00 2001 From: Aaron Beavers Date: Wed, 20 Jan 2021 13:57:53 -0500 Subject: [PATCH 4/6] Remove create user view --- tdrs-backend/tdpservice/users/views.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tdrs-backend/tdpservice/users/views.py b/tdrs-backend/tdpservice/users/views.py index 18bb8c3bd7..26008ad938 100644 --- a/tdrs-backend/tdpservice/users/views.py +++ b/tdrs-backend/tdpservice/users/views.py @@ -19,7 +19,6 @@ class UserViewSet( - mixins.CreateModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet, @@ -33,7 +32,6 @@ class UserViewSet( def get_permissions(self): """Get permissions for the viewset.""" permission_classes = { - "create": [AllowAny], "retrieve": [IsUser | IsAdmin], "set_profile": [IsUser | IsAdmin], "partial_update": [IsUser | IsAdmin], @@ -45,7 +43,6 @@ def get_permissions(self): def get_serializer_class(self): """Return the serializer class.""" return { - "create": CreateUserSerializer, "set_profile": UserProfileSerializer, }.get(self.action, UserSerializer) From 7b68f797f2bfe550e043dd961248d816338195a6 Mon Sep 17 00:00:00 2001 From: Aaron Beavers Date: Mon, 15 Feb 2021 14:24:31 -0500 Subject: [PATCH 5/6] remove lint --- tdrs-backend/tdpservice/users/test/test_api/test_basic.py | 1 - tdrs-backend/tdpservice/users/test/test_serializers.py | 3 --- tdrs-backend/tdpservice/users/views.py | 1 - 3 files changed, 5 deletions(-) diff --git a/tdrs-backend/tdpservice/users/test/test_api/test_basic.py b/tdrs-backend/tdpservice/users/test/test_api/test_basic.py index f547cd82d5..da96f8ce99 100644 --- a/tdrs-backend/tdpservice/users/test/test_api/test_basic.py +++ b/tdrs-backend/tdpservice/users/test/test_api/test_basic.py @@ -1,6 +1,5 @@ """Basic API User Tests.""" from django.contrib.auth import get_user_model -from django.core.management import call_command import pytest from rest_framework import status diff --git a/tdrs-backend/tdpservice/users/test/test_serializers.py b/tdrs-backend/tdpservice/users/test/test_serializers.py index a3f00bb1fc..31910f3d6a 100644 --- a/tdrs-backend/tdpservice/users/test/test_serializers.py +++ b/tdrs-backend/tdpservice/users/test/test_serializers.py @@ -1,4 +1 @@ """Test user serializers.""" -from django.contrib.auth.hashers import check_password - -import pytest diff --git a/tdrs-backend/tdpservice/users/views.py b/tdrs-backend/tdpservice/users/views.py index 26008ad938..52995531b3 100644 --- a/tdrs-backend/tdpservice/users/views.py +++ b/tdrs-backend/tdpservice/users/views.py @@ -3,7 +3,6 @@ from django.contrib.auth.models import Group from rest_framework import mixins, viewsets from rest_framework.decorators import action -from rest_framework.permissions import AllowAny from rest_framework.response import Response from .models import User From 0f76c0f32ed04c4820ed5b9d99146f239bf52bed Mon Sep 17 00:00:00 2001 From: Carlton Smith Date: Mon, 15 Feb 2021 16:09:20 -0500 Subject: [PATCH 6/6] add test to make sure endpoing is gone --- tdrs-backend/tdpservice/users/test/test_api/test_basic.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tdrs-backend/tdpservice/users/test/test_api/test_basic.py b/tdrs-backend/tdpservice/users/test/test_api/test_basic.py index da96f8ce99..0a3f5a7734 100644 --- a/tdrs-backend/tdpservice/users/test/test_api/test_basic.py +++ b/tdrs-backend/tdpservice/users/test/test_api/test_basic.py @@ -29,3 +29,10 @@ def test_cannot_update_user_anonymously(api_client, user): """Test an unauthenticated user cannot update a user.""" response = api_client.patch(f"/v1/users/{user.pk}/", {"first_name": "Jane"}) assert response.status_code == status.HTTP_403_FORBIDDEN + + +@pytest.mark.django_db +def test_create_user_endpoint_not_present(api_client, user_data): + """Test removed endpoint is no longer there.""" + response = api_client.post("/v1/users/", user_data) + assert response.status_code == status.HTTP_404_NOT_FOUND