Example #1
0
    def test_prepare(self):
        field = AttributeField(attribute='foo.bar.baz', type=int)

        related = Related()
        field.prepare(mock_context(), related)

        self.assertEqual(related._select, {'foo__bar'})
Example #2
0
    def test_prepare_with_use_prefetch(self):
        field = AttributeField(attribute='foo.bar.baz',
                               type=int,
                               use_prefetch=True)

        related = Related()
        field.prepare(mock_context(), related)

        self.assertEqual(related._prefetch, {'foo__bar'})
Example #3
0
    def test_prepare(self):
        class MockResource(ModelResource):
            model_class = Mock()
            fields = [
                AttributeField(attribute='bar.baz', type=int),
            ]

        field = SubModelResourceField(attribute='foo',
                                      resource_class=MockResource)

        related = Related()
        field.prepare(mock_context(), related)

        self.assertEqual(related._select, {'foo', 'foo__bar'})
Example #4
0
    def test_prepare(self):
        class MockResource(ModelResource):
            model_class = mock_orm.Model
            fields = [AttributeField('bar.baz', type=int)]

        class MockQuerySetResource(QuerySetResource):
            resource_class = MockResource

        field = RelatedManagerField(attribute='foo',
                                    resource_class=MockQuerySetResource)

        related = Related()
        field.prepare(mock_context(), related)

        self.assertEqual(related._prefetch, {'foo', 'foo__bar'})
Example #5
0
 def prepare_queryset(self, ctx, queryset):
     related = Related()
     self.prepare(ctx, related)
     return related.prepare(queryset)
Example #6
0
 def _prefetch_related(self, qs):
     related = Related()
     ctx = APIContext('', None, None)
     self.resource_class.prepare(ctx, related)
     self.prefetch_related(related)
     return related.prepare(qs)