|
5 | 5 | from rest_framework import serializers |
6 | 6 | from rest_framework.test import APIRequestFactory |
7 | 7 |
|
| 8 | +from adrf.fields import SerializerMethodField |
8 | 9 | from adrf.serializers import ModelSerializer, Serializer |
9 | 10 |
|
10 | 11 | from .models import Order, User |
@@ -254,3 +255,39 @@ async def test_order_serializer_valid(self): |
254 | 255 | assert await sync_to_async(serializer.is_valid)() |
255 | 256 | assert await serializer.adata == data |
256 | 257 | assert serializer.errors == {} |
| 258 | + |
| 259 | + |
| 260 | +class TestSerializerWithSerializerMethodField(TestCase): |
| 261 | + def test_sync_serializer_valid(self): |
| 262 | + class SimpleSerializer(Serializer): |
| 263 | + username = serializers.CharField() |
| 264 | + age = SerializerMethodField() |
| 265 | + |
| 266 | + def get_age(self, obj): |
| 267 | + return 1900 |
| 268 | + |
| 269 | + data = { |
| 270 | + "username": "test", |
| 271 | + } |
| 272 | + data_with_age = {"age": 1900, **data} |
| 273 | + serializer = SimpleSerializer(data=data) |
| 274 | + assert serializer.is_valid() |
| 275 | + assert serializer.data == data_with_age |
| 276 | + assert serializer.errors == {} |
| 277 | + |
| 278 | + async def test_async_serializer_valid(self): |
| 279 | + class SimpleAsyncSerializer(Serializer): |
| 280 | + username = serializers.CharField() |
| 281 | + age = SerializerMethodField() |
| 282 | + |
| 283 | + async def get_age(self, obj): |
| 284 | + return 1900 |
| 285 | + |
| 286 | + data = { |
| 287 | + "username": "test", |
| 288 | + } |
| 289 | + data_with_age = {"age": 1900, **data} |
| 290 | + serializer = SimpleAsyncSerializer(data=data) |
| 291 | + assert serializer.is_valid() |
| 292 | + assert await serializer.adata == data_with_age |
| 293 | + assert serializer.errors == {} |
0 commit comments