Commit c2cbe4a6 by Simon Chen

Update the instructor API to provide just one profile image property

parent ad6c69d2
...@@ -247,7 +247,7 @@ class PositionSerializer(serializers.ModelSerializer): ...@@ -247,7 +247,7 @@ class PositionSerializer(serializers.ModelSerializer):
class PersonSerializer(serializers.ModelSerializer): class PersonSerializer(serializers.ModelSerializer):
"""Serializer for the ``Person`` model.""" """Serializer for the ``Person`` model."""
position = PositionSerializer(required=False) position = PositionSerializer(required=False)
profile_image = StdImageSerializerField(required=False) profile_image = serializers.CharField(read_only=True, source='get_profile_image_url')
works = serializers.SlugRelatedField(many=True, read_only=True, slug_field='value', source='person_works') works = serializers.SlugRelatedField(many=True, read_only=True, slug_field='value', source='person_works')
urls = serializers.SerializerMethodField() urls = serializers.SerializerMethodField()
email = serializers.EmailField(required=True) email = serializers.EmailField(required=True)
...@@ -261,7 +261,7 @@ class PersonSerializer(serializers.ModelSerializer): ...@@ -261,7 +261,7 @@ class PersonSerializer(serializers.ModelSerializer):
class Meta(object): class Meta(object):
model = Person model = Person
fields = ( fields = (
'uuid', 'given_name', 'family_name', 'bio', 'profile_image_url', 'slug', 'position', 'profile_image', 'uuid', 'given_name', 'family_name', 'bio', 'slug', 'position', 'profile_image',
'partner', 'works', 'urls', 'email' 'partner', 'works', 'urls', 'email'
) )
extra_kwargs = { extra_kwargs = {
......
...@@ -1104,35 +1104,38 @@ class SeatSerializerTests(TestCase): ...@@ -1104,35 +1104,38 @@ class SeatSerializerTests(TestCase):
class PersonSerializerTests(TestCase): class PersonSerializerTests(TestCase):
def test_data(self): def setUp(self):
request = make_request() request = make_request()
context = {'request': request} self.context = {'request': request}
image_field = StdImageSerializerField()
image_field._context = context # pylint: disable=protected-access
position = PositionFactory() position = PositionFactory()
person = position.person self.person = position.person
serializer = PersonSerializer(person, context=context) self.expected = {
'uuid': str(self.person.uuid),
expected = { 'given_name': self.person.given_name,
'uuid': str(person.uuid), 'family_name': self.person.family_name,
'given_name': person.given_name, 'bio': self.person.bio,
'family_name': person.family_name, 'profile_image': self.person.profile_image_url,
'bio': person.bio,
'profile_image_url': person.profile_image_url,
'profile_image': image_field.to_representation(person.profile_image),
'position': PositionSerializer(position).data, 'position': PositionSerializer(position).data,
'works': [work.value for work in person.person_works.all()], 'works': [work.value for work in self.person.person_works.all()],
'urls': { 'urls': {
'facebook': None, 'facebook': None,
'twitter': None, 'twitter': None,
'blog': None 'blog': None
}, },
'slug': person.slug, 'slug': self.person.slug,
'email': person.email, 'email': self.person.email,
} }
self.assertDictEqual(serializer.data, expected) def test_data(self):
serializer = PersonSerializer(self.person, context=self.context)
self.assertDictEqual(serializer.data, self.expected)
def test_profile_image_url_override(self):
self.person.profile_image_url = None
self.expected['profile_image'] = self.person.profile_image.url
serializer = PersonSerializer(self.person, context=self.context)
self.assertDictEqual(serializer.data, self.expected)
class PositionSerializerTests(TestCase): class PositionSerializerTests(TestCase):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment