Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Authentication bug fix #303

Merged
merged 2 commits into from
Oct 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion project/backend/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def test_get_user_detail_authenticated(self):
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['id'], self.user.id)
self.assertEqual(response.data['email'], self.user.email)
self.assertEqual(response.data['username'], self.user.username)
# self.assertEqual(response.data['username'], self.user.username)
self.assertEqual(response.data['first_name'], self.user.first_name)
self.assertEqual(response.data['last_name'], self.user.last_name)

Expand Down
20 changes: 10 additions & 10 deletions project/backend/database/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
from rest_framework.response import Response
from rest_framework import status
from rest_framework.validators import UniqueValidator
from django.contrib.auth.password_validation import validate_password
# from django.contrib.auth.password_validation import validate_password

from .models import *

# Serializer to get User details using Django Token Authentication
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ["id", "email", "first_name", "last_name", "username"]
fields = ["id", "email", "first_name", "last_name"]
# Serializer to get BasicUser details
class BasicUserSerializer(serializers.ModelSerializer):
class Meta:
Expand All @@ -24,27 +24,27 @@ class RegisterSerializer(serializers.ModelSerializer):
required=True,
validators=[UniqueValidator(queryset=User.objects.all())]
)
password = serializers.CharField(write_only=True, required=True, validators=[validate_password])
password2 = serializers.CharField(write_only=True, required=True)
password = serializers.CharField(write_only=True, required=True)
# password2 = serializers.CharField(write_only=True, required=True)

class Meta:
model = User
fields = ('username', 'password', 'password2', 'email', 'first_name', 'last_name')
fields = ('password', 'email', 'first_name', 'last_name')
extra_kwargs = {
'first_name': {'required': True},
'last_name': {'required': True}
}

def validate(self, attrs):
if attrs['password'] != attrs['password2']:
raise serializers.ValidationError({"password": "Password fields didn't match."})
# def validate(self, attrs):
# if attrs['password'] != attrs['password2']:
# raise serializers.ValidationError({"password": "Password fields didn't match."})

return attrs
# return attrs

# This method will be used when generic create api called
def create(self, validated_data):
user = User.objects.create(
username=validated_data['username'],
username=validated_data['email'],
email=validated_data['email'],
first_name=validated_data['first_name'],
last_name=validated_data['last_name']
Expand Down
22 changes: 10 additions & 12 deletions project/backend/database/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def test_basic_user_create(self):
# Testing the creation of a new basic user

user = User.objects.create(
username="testuser",
username="test@example.com",
email="test@example.com",
first_name="User",
last_name="Test",
Expand All @@ -32,7 +32,7 @@ def test_basic_user_create(self):

def test_basic_user_str(self):
user = User.objects.create(
username="testuser",
username="test@example.com",
email="test@example.com",
first_name="User",
last_name="Test",
Expand All @@ -45,9 +45,7 @@ def test_basic_user_str(self):
class RegisterSerializerTestCase(TestCase):
def setUp(self):
self.data = {
"username": "testuser",
"password": "testpassword",
"password2": "testpassword",
"email": "test@example.com",
"first_name": "User",
"last_name": "Test",
Expand All @@ -63,12 +61,12 @@ def test_validate_true(self):
serializer = RegisterSerializer(data=self.data)
self.assertTrue(serializer.is_valid())

def test_validate_false(self):
# Testing the validate function for invalid credentials
data = self.data
data["password2"] = "wrong"
serializer = RegisterSerializer(data=data)
self.assertFalse(serializer.is_valid())
# def test_validate_false(self):
# # Testing the validate function for invalid credentials
# data = self.data
# data["password2"] = "wrong"
# serializer = RegisterSerializer(data=data)
# self.assertFalse(serializer.is_valid())

def test_create(self):
# Testing the create function
Expand All @@ -77,7 +75,7 @@ def test_create(self):

user = serializer.create(serializer.validated_data)
self.assertIsInstance(user, User)
self.assertEqual(user.username, self.data["username"])
# self.assertEqual(user.username, self.data["username"])
self.assertEqual(user.email, self.data["email"])
self.assertEqual(user.first_name, self.data["first_name"])
self.assertEqual(user.last_name, self.data["last_name"])
Expand All @@ -98,7 +96,7 @@ def test_user_serializer_fields(self):
last_name="Test",
)
serializer = UserSerializer(user)
expected_fields = set(["id", "email", "first_name", "last_name", "username"])
expected_fields = set(["id", "email", "first_name", "last_name"])
self.assertEqual(set(serializer.data.keys()), expected_fields)


Expand Down