MCPcopy
hub / github.com/django/django / test_ticket2306

Method test_ticket2306

tests/queries/tests.py:226–263  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

224 )
225
226 def test_ticket2306(self):
227 # Checking that no join types are "left outer" joins.
228 query = Item.objects.filter(tags=self.t2).query
229 self.assertNotIn(LOUTER, [x.join_type for x in query.alias_map.values()])
230
231 self.assertSequenceEqual(
232 Item.objects.filter(Q(tags=self.t1)).order_by("name"),
233 [self.i1, self.i2],
234 )
235 self.assertSequenceEqual(
236 Item.objects.filter(Q(tags=self.t1)).filter(Q(tags=self.t2)),
237 [self.i1],
238 )
239 self.assertSequenceEqual(
240 Item.objects.filter(Q(tags=self.t1)).filter(
241 Q(creator__name="fred") | Q(tags=self.t2)
242 ),
243 [self.i1],
244 )
245
246 # Each filter call is processed "at once" against a single table, so
247 # this is different from the previous example as it tries to find tags
248 # that are two things at once (rather than two tags).
249 self.assertSequenceEqual(
250 Item.objects.filter(Q(tags=self.t1) & Q(tags=self.t2)), []
251 )
252 self.assertSequenceEqual(
253 Item.objects.filter(
254 Q(tags=self.t1), Q(creator__name="fred") | Q(tags=self.t2)
255 ),
256 [],
257 )
258
259 qs = Author.objects.filter(ranking__rank=2, ranking__id=self.rank1.id)
260 self.assertSequenceEqual(list(qs), [self.a2])
261 self.assertEqual(2, qs.query.count_active_tables(), 2)
262 qs = Author.objects.filter(ranking__rank=2).filter(ranking__id=self.rank1.id)
263 self.assertEqual(qs.query.count_active_tables(), 3)
264
265 def test_ticket4464(self):
266 self.assertSequenceEqual(

Callers

nothing calls this directly

Calls 5

QClass · 0.90
order_byMethod · 0.80
count_active_tablesMethod · 0.80
filterMethod · 0.45
valuesMethod · 0.45

Tested by

no test coverage detected