Replace instance_of OR query with IN statement
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import re
|
||||
import uuid
|
||||
|
||||
import django
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import models
|
||||
from django.db.models import Case, Count, Q, When
|
||||
from django.test import TestCase, TransactionTestCase
|
||||
from django.utils import six
|
||||
|
||||
from polymorphic import query_translate
|
||||
from polymorphic.managers import PolymorphicManager
|
||||
from polymorphic.models import PolymorphicTypeUndefined
|
||||
from polymorphic.tests.models import (
|
||||
@@ -343,6 +344,14 @@ class PolymorphicTests(TransactionTestCase):
|
||||
ordered=False,
|
||||
)
|
||||
|
||||
def test_create_instanceof_q(self):
|
||||
q = query_translate.create_instanceof_q([Model2B])
|
||||
expected = sorted([
|
||||
ContentType.objects.get_for_model(m).pk
|
||||
for m in [Model2B, Model2C, Model2D]
|
||||
])
|
||||
self.assertEqual(dict(q.children), dict(polymorphic_ctype__in=expected))
|
||||
|
||||
def test_base_manager(self):
|
||||
def base_manager(model):
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user