serializer의 max_length도 테스트해야 할 것 같아서 작성했습니다.
기능상 할 이유가 없을 것 같았지만, 협업을 하면서
다른 팀원이 max_length를 변경하는 경우가 있을 것 같아서 넣었습니다.
실제로 테스트를 실행하는 커맨드는 'python manage.py test app name.directory.file'입니다.
from django.test import TestCase
from ...serializer.user_serializers import UserUpdateSerializer
class TestValidUserUpdateSerializer(TestCase):
def setUp(self):
self.valid_data = {"last_name": "test", "first_name": "name", "email": "test@test.com"}
self.serializer = UserUpdateSerializer
def test_valid_data(self):
serializer = self.serializer(data=self.valid_data)
self.assertTrue(serializer.is_valid())
def test_invalid_email_max_length(self):
invalid_data = self.valid_data.copy()
invalid_data["email"] = "a" * 92 + "@test.com"
serializer = self.serializer(data=invalid_data)
self.assertFalse(serializer.is_valid())
self.assertIn("email", serializer.errors)
self.assertIn("max_length", serializer.errors["email"][0])
print(serializer.errors)
작성하고서 느낀 거지만 serializer의 하나의 field 혹은 여러개의 feild(전부가 아닌)에 대해서 유효성 검사하는 방법이 있나 궁금했습니다.
있다면 찾아서 업데이트 하겠습니다.
'Django > DRF' 카테고리의 다른 글
DRF credentials 메소드 사용법 (0) | 2023.02.21 |
---|---|
DRF json으로 null이 올 경우, required 옵션 설정을 통해 대처하는 방법 (0) | 2023.02.11 |
DRF token-based vs session based authentication (0) | 2023.01.31 |