def test_collection_serializer():
"""
Test for CollectionSerializer
"""
collection = factories.CollectionFactory()
videos = [factories.VideoFactory(collection=collection) for _ in range(3)]
expected = {
'key': collection.hexkey,
'created_at': DateTimeField().to_representation(collection.created_at),
'title': collection.title,
'description': collection.description,
'videos': serializers.VideoSerializer(videos, many=True).data,
'video_count': len(videos),
'view_lists': [],
'admin_lists': [],
'is_admin': None
}
expected['videos'].sort(key=lambda x: x['key'])
serialized_data = serializers.CollectionSerializer(collection).data
serialized_data['videos'].sort(key=lambda x: x['key'])
assert serialized_data == expected
python类DateTimeField()的实例源码
def test_collection_list_serializer():
"""
Test for CollectionListSerializer
"""
collection = factories.CollectionFactory()
_ = [factories.VideoFactory(collection=collection) for _ in range(3)]
expected = {
'key': collection.hexkey,
'created_at': DateTimeField().to_representation(collection.created_at),
'title': collection.title,
'description': collection.description,
'view_lists': [],
'admin_lists': [],
'video_count': collection.videos.count(),
}
assert serializers.CollectionListSerializer(collection).data == expected
def test_subtitle_serializer():
"""
Test for VideoSubtitleSerializer
"""
subtitle = factories.VideoSubtitleFactory()
expected = {
'id': subtitle.id,
'language': subtitle.language,
'language_name': subtitle.language_name,
's3_object_key': subtitle.s3_object_key,
'bucket_name': subtitle.bucket_name,
'filename': subtitle.filename,
'created_at': DateTimeField().to_representation(subtitle.created_at)
}
assert serializers.VideoSubtitleSerializer(subtitle).data == expected
def test_should_date_time_convert_datetime():
assert_conversion(serializers.DateTimeField, graphene.types.datetime.DateTime)
def test_video_serializer():
"""
Test for VideoSerializer
"""
video = factories.VideoFactory()
video_files = [factories.VideoFileFactory(video=video)]
video_thumbnails = [factories.VideoThumbnailFactory(video=video)]
expected = {
'key': video.hexkey,
'collection_key': video.collection.hexkey,
'collection_title': video.collection.title,
'created_at': DateTimeField().to_representation(video.created_at),
'multiangle': video.multiangle,
'title': video.title,
'description': video.description,
'videofile_set': serializers.VideoFileSerializer(video_files, many=True).data,
'videothumbnail_set': serializers.VideoThumbnailSerializer(video_thumbnails, many=True).data,
'videosubtitle_set': [],
'status': video.status,
'collection_view_lists': [],
'view_lists': [],
'is_private': False,
'is_public': False
}
assert serializers.VideoSerializer(video).data == expected
def __init__(self, allow_extra):
class Model(serializers.Serializer):
id = serializers.IntegerField()
client_name = serializers.CharField(max_length=255)
sort_index = serializers.FloatField()
# client_email = serializers.EmailField(required=False, allow_null=True)
client_phone = serializers.CharField(max_length=255, 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, required=False, allow_null=True)
grecaptcha_response = serializers.CharField(min_length=20, max_length=1000)
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