fix: resolve errors in SerializerTests
This commit is contained in:
parent
76d1aa9425
commit
fc12d96e83
2 changed files with 17 additions and 11 deletions
|
|
@ -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]
|
||||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in a new issue