TurTaskWeb/backend/tasks/tests/test_deserializer.py
2023-11-26 11:46:50 +07:00

62 lines
2.3 KiB
Python

from datetime import datetime
from zoneinfo import ZoneInfo
from rest_framework.test import APITestCase
from django.utils import timezone
from tasks.tests.utils import create_test_user
from tasks.serializers import TodoUpdateSerializer
from tasks.models import Todo
from boards.models import Board
class TaskUpdateSerializerTest(APITestCase):
def setUp(self):
self.user = create_test_user()
self.client.force_authenticate(user=self.user)
self.current_time = '2020-08-01T00:00:00Z'
self.end_time = '2020-08-01T00:00:00Z'
self.list_board = Board.objects.get(user=self.user).listboard_set.first()
def test_serializer_create(self):
data = {
'id': '32141cwaNcapufh8jq2conw',
'summary': 'Updated Task',
'description': 'Updated description',
'created': self.current_time,
'updated': self.end_time,
'start_datetime' : self.current_time,
'end_datetie': self.end_time,
'list_board': self.list_board.id,
}
serializer = TodoUpdateSerializer(data=data, user=self.user)
self.assertTrue(serializer.is_valid())
serializer.is_valid()
task = serializer.save()
self.assertIsInstance(task, Todo)
def test_serializer_update(self):
task = Todo.objects.create(title='Original Task', notes='Original description', user=self.user, list_board=self.list_board)
data = {
'id': '32141cwaNcapufh8jq2conw',
'summary': 'Updated Task',
'description': 'Updated description',
'created': self.current_time,
'updated': self.end_time,
'start_datetime' : self.current_time,
'end_datetie': self.end_time,
'list_board': self.list_board.id,
}
serializer = TodoUpdateSerializer(instance=task, data=data)
self.assertTrue(serializer.is_valid())
updated_task = serializer.save()
self.assertEqual(updated_task.title, 'Updated Task')
self.assertEqual(updated_task.notes, 'Updated description')
self.assertEqual(updated_task.start_event,
datetime.strptime(self.current_time,
'%Y-%m-%dT%H:%M:%SZ')
.replace(tzinfo=ZoneInfo(key='UTC')))