Files
pydantic/benchmarks/test_drf.py
T
François Voron e478278474 Documentation: rename benchmark django-restful-framework -> django-rest-framework (#1119)
* Rename django-rest-framework benchmark

* Add change file for #1119

* Rename django-rest-framework in existing benchmarks results
2019-12-20 11:31:16 +00:00

54 lines
2.2 KiB
Python

import django
from django.conf import settings
settings.configure(
INSTALLED_APPS=['django.contrib.auth', 'django.contrib.contenttypes']
)
django.setup()
from rest_framework import __version__, serializers
class TestDRF:
package = 'django-rest-framework'
version = __version__
def __init__(self, allow_extra):
class Model(serializers.Serializer):
id = serializers.IntegerField()
client_name = serializers.CharField(max_length=255, trim_whitespace=False)
sort_index = serializers.FloatField()
# client_email = serializers.EmailField(required=False, allow_null=True)
client_phone = serializers.CharField(max_length=255, trim_whitespace=False, required=False, allow_null=True)
class Location(serializers.Serializer):
latitude = serializers.FloatField(required=False, allow_null=True)
longitude = serializers.FloatField(required=False, allow_null=True)
location = Location(required=False, allow_null=True)
contractor = serializers.IntegerField(required=False, allow_null=True, min_value=0)
upstream_http_referrer = serializers.CharField(
max_length=1023, trim_whitespace=False, required=False, allow_null=True
)
grecaptcha_response = serializers.CharField(min_length=20, max_length=1000, trim_whitespace=False)
last_updated = serializers.DateTimeField(required=False, allow_null=True)
class Skill(serializers.Serializer):
subject = serializers.CharField()
subject_id = serializers.IntegerField()
category = serializers.CharField()
qual_level = serializers.CharField()
qual_level_id = serializers.IntegerField()
qual_level_ranking = serializers.FloatField(default=0)
skills = serializers.ListField(child=Skill())
self.allow_extra = allow_extra # unused
self.serializer = Model
def validate(self, data):
s = self.serializer(data=data)
if s.is_valid():
return True, dict(s.data)
else:
return False, dict(s.errors)