def test_subclass_uses_registered_subclass(self): tagged_item = GenericRelatedField({ Note: NoteSerializer(), NoteProxy: NoteProxySerializer(), }, read_only=True) # NoteProxy instance should use the NoteProxySerializer in # preference to the NoteSerializer proxied = NoteProxy.objects.get(pk=self.note.pk) serializer = tagged_item.get_serializer_for_instance(proxied) self.assertIsInstance(serializer, NoteProxySerializer) # But Note instance should use the NoteSerializer serializer = tagged_item.get_serializer_for_instance(self.note) self.assertIsInstance(serializer, NoteSerializer)
def test_subclass_uses_registered_subclass(self): tagged_item = GenericRelatedField( { Note: NoteSerializer(), NoteProxy: NoteProxySerializer(), }, read_only=True) # NoteProxy instance should use the NoteProxySerializer in # preference to the NoteSerializer proxied = NoteProxy.objects.get(pk=self.note.pk) serializer = tagged_item.get_serializer_for_instance(proxied) self.assertIsInstance(serializer, NoteProxySerializer) # But Note instance should use the NoteSerializer serializer = tagged_item.get_serializer_for_instance(self.note) self.assertIsInstance(serializer, NoteSerializer)
def test_subclass_uses_registered_parent(self): tagged_item = GenericRelatedField({ Note: NoteSerializer(), }, read_only=True) # NoteProxy instance should use the NoteSerializer, # since no more specific serializer is registered proxied = NoteProxy.objects.get(pk=self.note.pk) serializer = tagged_item.get_serializer_for_instance(proxied) self.assertIsInstance(serializer, NoteSerializer)
def test_subclass_uses_registered_parent(self): tagged_item = GenericRelatedField({ Note: NoteSerializer(), }, read_only=True) # NoteProxy instance should use the NoteSerializer, # since no more specific serializer is registered proxied = NoteProxy.objects.get(pk=self.note.pk) serializer = tagged_item.get_serializer_for_instance(proxied) self.assertIsInstance(serializer, NoteSerializer)