fix: resolve errors in SerializerTests

This commit is contained in:
Chneemann 2025-04-07 08:31:14 +02:00
parent 76d1aa9425
commit fc12d96e83
2 changed files with 17 additions and 11 deletions

View file

@ -4,26 +4,30 @@ from djangorestframework_camel_case.parser import CamelCaseJSONParser
from .models import Task, SubTask, AssignedTask
class SubTaskSerializer(serializers.ModelSerializer):
task = serializers.CharField(source='task.id')
class Meta:
model = SubTask
fields = ['id', 'title', 'status']
fields = ['id', 'title', 'status', 'task']
class AssignedTaskSerializer(serializers.ModelSerializer):
user_id = serializers.CharField(source='user.id', read_only=True)
class Meta:
model = AssignedTask
fields = ['user_id']
class TaskSerializer(serializers.ModelSerializer):
assignees = serializers.SerializerMethodField()
subtasks = SubTaskSerializer(many=True, read_only=True)
assignees = AssignedTaskSerializer(source='assigned_tasks', many=True, read_only=True)
def get_assignees(self, obj):
return list(obj.assigned_tasks.all().values('user_id'))
class Meta:
model = Task
fields = ['id', 'title', 'description', 'category', 'priority', 'status', 'date',
'creator', 'created_at', 'subtasks', 'assignees']
fields = ['id', 'title', 'description', 'category', 'priority', 'status', 'date', 'creator', 'created_at', 'subtasks', 'assignees']
read_only_fields = ['id', 'creator', 'created_at']
renderer_classes = [CamelCaseJSONRenderer]
parser_classes = [CamelCaseJSONParser]

View file

@ -24,6 +24,7 @@ class SerializerTests(TestCase):
date=self.test_date,
creator=self.user
)
self.subtask1 = SubTask.objects.create(task=self.task, title='SubTask 1', status=True)
self.subtask2 = SubTask.objects.create(task=self.task, title='SubTask 2', status=False)
self.assigned_user = User.objects.create(email='assigned@example.com')
@ -31,12 +32,12 @@ class SerializerTests(TestCase):
def test_subtask_serializer(self):
serializer = SubTaskSerializer(self.subtask1)
expected_data = {'id': str(self.subtask1.id), 'title': 'SubTask 1', 'status': True}
expected_data = {'id': str(self.subtask1.id), 'title': 'SubTask 1', 'status': True, 'task': str(self.task.id)}
self.assertEqual(serializer.data, expected_data)
def test_assigned_task_serializer(self):
serializer = AssignedTaskSerializer(self.assigned_task)
expected_data = {'user_id': self.assigned_user.id}
expected_data = {'user_id': str(self.assigned_user.id)}
self.assertEqual(serializer.data, expected_data)
def test_task_serializer(self):
@ -52,11 +53,12 @@ class SerializerTests(TestCase):
'creator': self.user.id,
'created_at': self.task.created_at.isoformat().replace('+00:00', 'Z'),
'subtasks': [
{'id': str(self.subtask1.id), 'title': 'SubTask 1', 'status': True},
{'id': str(self.subtask2.id), 'title': 'SubTask 2', 'status': False}
{'id': str(self.subtask1.id), 'title': 'SubTask 1', 'status': True, 'task': str(self.task.id)},
{'id': str(self.subtask2.id), 'title': 'SubTask 2', 'status': False, 'task': str(self.task.id)}
],
'assignees': [{'user_id': self.assigned_user.id}]
'assignees': [{'user_id': str(self.assigned_user.id)}]
}
self.assertEqual(serializer.data, expected_data)
def test_task_serializer_create_validation(self):