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
|
from .models import Task, SubTask, AssignedTask
|
||||||
|
|
||||||
class SubTaskSerializer(serializers.ModelSerializer):
|
class SubTaskSerializer(serializers.ModelSerializer):
|
||||||
|
task = serializers.CharField(source='task.id')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SubTask
|
model = SubTask
|
||||||
fields = ['id', 'title', 'status']
|
fields = ['id', 'title', 'status', 'task']
|
||||||
|
|
||||||
class AssignedTaskSerializer(serializers.ModelSerializer):
|
class AssignedTaskSerializer(serializers.ModelSerializer):
|
||||||
|
user_id = serializers.CharField(source='user.id', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = AssignedTask
|
model = AssignedTask
|
||||||
fields = ['user_id']
|
fields = ['user_id']
|
||||||
|
|
||||||
class TaskSerializer(serializers.ModelSerializer):
|
class TaskSerializer(serializers.ModelSerializer):
|
||||||
assignees = serializers.SerializerMethodField()
|
|
||||||
subtasks = SubTaskSerializer(many=True, read_only=True)
|
subtasks = SubTaskSerializer(many=True, read_only=True)
|
||||||
|
assignees = AssignedTaskSerializer(source='assigned_tasks', many=True, read_only=True)
|
||||||
|
|
||||||
def get_assignees(self, obj):
|
def get_assignees(self, obj):
|
||||||
return list(obj.assigned_tasks.all().values('user_id'))
|
return list(obj.assigned_tasks.all().values('user_id'))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Task
|
model = Task
|
||||||
fields = ['id', 'title', 'description', 'category', 'priority', 'status', 'date',
|
fields = ['id', 'title', 'description', 'category', 'priority', 'status', 'date', 'creator', 'created_at', 'subtasks', 'assignees']
|
||||||
'creator', 'created_at', 'subtasks', 'assignees']
|
read_only_fields = ['id', 'creator', 'created_at']
|
||||||
|
|
||||||
renderer_classes = [CamelCaseJSONRenderer]
|
renderer_classes = [CamelCaseJSONRenderer]
|
||||||
parser_classes = [CamelCaseJSONParser]
|
parser_classes = [CamelCaseJSONParser]
|
||||||
|
|
@ -24,6 +24,7 @@ class SerializerTests(TestCase):
|
||||||
date=self.test_date,
|
date=self.test_date,
|
||||||
creator=self.user
|
creator=self.user
|
||||||
)
|
)
|
||||||
|
|
||||||
self.subtask1 = SubTask.objects.create(task=self.task, title='SubTask 1', status=True)
|
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.subtask2 = SubTask.objects.create(task=self.task, title='SubTask 2', status=False)
|
||||||
self.assigned_user = User.objects.create(email='assigned@example.com')
|
self.assigned_user = User.objects.create(email='assigned@example.com')
|
||||||
|
|
@ -31,12 +32,12 @@ class SerializerTests(TestCase):
|
||||||
|
|
||||||
def test_subtask_serializer(self):
|
def test_subtask_serializer(self):
|
||||||
serializer = SubTaskSerializer(self.subtask1)
|
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)
|
self.assertEqual(serializer.data, expected_data)
|
||||||
|
|
||||||
def test_assigned_task_serializer(self):
|
def test_assigned_task_serializer(self):
|
||||||
serializer = AssignedTaskSerializer(self.assigned_task)
|
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)
|
self.assertEqual(serializer.data, expected_data)
|
||||||
|
|
||||||
def test_task_serializer(self):
|
def test_task_serializer(self):
|
||||||
|
|
@ -52,13 +53,14 @@ class SerializerTests(TestCase):
|
||||||
'creator': self.user.id,
|
'creator': self.user.id,
|
||||||
'created_at': self.task.created_at.isoformat().replace('+00:00', 'Z'),
|
'created_at': self.task.created_at.isoformat().replace('+00:00', 'Z'),
|
||||||
'subtasks': [
|
'subtasks': [
|
||||||
{'id': str(self.subtask1.id), 'title': 'SubTask 1', 'status': True},
|
{'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}
|
{'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)
|
self.assertEqual(serializer.data, expected_data)
|
||||||
|
|
||||||
def test_task_serializer_create_validation(self):
|
def test_task_serializer_create_validation(self):
|
||||||
data = {
|
data = {
|
||||||
'title': 'New Task',
|
'title': 'New Task',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue