def test_PublisherSerializer(self): publisher = PublisherFactory.build() serializer = PublisherSerializer( publisher, context={'request': self.request_dummy}) assert serializer.data['org_id'] == publisher.org_id,\ """ 'publisher.type' should be serialized to a field called 'type' """ assert serializer.data['org_abbreviate'] == publisher.org_abbreviate,\ """ 'publisher.source_url' should be serialized to a field called 'source_url' """ assert serializer.data['org_name'] == publisher.org_name,\ """ 'publisher.org_name' should be serialized to a field called 'org_name' """ assert serializer.data['datasets'] == [],\ """ 'publisher.datasets' should be serialized to a field called 'datasets' """ assert serializer.data['activity_count'] == 0,\ """ 'publisher.activity_count' should be serialized to a field called 'activity_count' """ required_fields = ('url', 'org_id', 'org_abbreviate', 'org_name', 'datasets', 'activities', 'activity_count') assertion_msg = "the field '{0}' should be in the serialized dataset" for field in required_fields: assert field in serializer.data, assertion_msg.format(field)
class OrganisationAdminGroupSerializer(serializers.ModelSerializer): publisher = PublisherSerializer() class Meta: model = OrganisationAdminGroup fields = ( 'name', 'publisher', )
def test_publisher_activities_link(self): '''Tests if PublisherSerializer returs proper link for its activities ''' publisher = PublisherFactory() serializer = PublisherSerializer( publisher, context={'request': self.request_dummy}) url = self.request_dummy.build_absolute_uri( reverse('activities:activity-list')) endpoint_url = (url + '?reporting_organisation_identifier=' + publisher.publisher_iati_id) assert serializer.data['activities'] == endpoint_url
def dataset_publisher(self): publisher = get_child_attr(self.record, 'publisher') if publisher: self.add_field( 'publisher', JSONRenderer().render( PublisherSerializer(fields=[ 'iati_id', 'publisher_iati_id', 'display_name', 'name', 'activity_count' ], instance=publisher).data).decode()) self.add_field('publisher_iati_id', publisher.publisher_iati_id) self.add_field('publisher_name', publisher.name) self.add_field('publisher_display_name', publisher.display_name)