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'})
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'})
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'})
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'})
def prepare_queryset(self, ctx, queryset): related = Related() self.prepare(ctx, related) return related.prepare(queryset)
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)