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)
Esempio n. 2
0
    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)
Esempio n. 4
0
    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)