Skip to content

Commit 6897235

Browse files
committed
Add a test for similar/duplicate query grouping
1 parent dfaa44f commit 6897235

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

tests/panels/test_sql.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,63 @@ def test_nested_template_information(self):
507507
self.assertEqual(template_info["context"][0]["content"].strip(), "{{ users }}")
508508
self.assertEqual(template_info["context"][0]["highlight"], True)
509509

510+
def test_similar_and_duplicate_grouping(self):
511+
self.assertEqual(len(self.panel._queries), 0)
512+
513+
User.objects.filter(id=1).count()
514+
User.objects.filter(id=1).count()
515+
User.objects.filter(id=2).count()
516+
User.objects.filter(id__lt=10).count()
517+
User.objects.filter(id__lt=20).count()
518+
User.objects.filter(id__gt=10, id__lt=20).count()
519+
520+
response = self.panel.process_request(self.request)
521+
self.panel.generate_stats(self.request, response)
522+
523+
self.assertEqual(len(self.panel._queries), 6)
524+
525+
queries = self.panel._queries
526+
query = queries[0]
527+
self.assertEqual(query[1]["similar_count"], 3)
528+
self.assertEqual(query[1]["duplicate_count"], 2)
529+
530+
query = queries[1]
531+
self.assertEqual(query[1]["similar_count"], 3)
532+
self.assertEqual(query[1]["duplicate_count"], 2)
533+
534+
query = queries[2]
535+
self.assertEqual(query[1]["similar_count"], 3)
536+
self.assertTrue("duplicate_count" not in query[1])
537+
538+
query = queries[3]
539+
self.assertEqual(query[1]["similar_count"], 2)
540+
self.assertTrue("duplicate_count" not in query[1])
541+
542+
query = queries[4]
543+
self.assertEqual(query[1]["similar_count"], 2)
544+
self.assertTrue("duplicate_count" not in query[1])
545+
546+
query = queries[5]
547+
self.assertTrue("similar_count" not in query[1])
548+
self.assertTrue("duplicate_count" not in query[1])
549+
550+
self.assertEqual(queries[0][1]["similar_color"], queries[1][1]["similar_color"])
551+
self.assertEqual(queries[0][1]["similar_color"], queries[2][1]["similar_color"])
552+
self.assertEqual(
553+
queries[0][1]["duplicate_color"], queries[1][1]["duplicate_color"]
554+
)
555+
self.assertNotEqual(
556+
queries[0][1]["similar_color"], queries[0][1]["duplicate_color"]
557+
)
558+
559+
self.assertEqual(queries[3][1]["similar_color"], queries[4][1]["similar_color"])
560+
self.assertNotEqual(
561+
queries[0][1]["similar_color"], queries[3][1]["similar_color"]
562+
)
563+
self.assertNotEqual(
564+
queries[0][1]["duplicate_color"], queries[3][1]["similar_color"]
565+
)
566+
510567

511568
class SQLPanelMultiDBTestCase(BaseMultiDBTestCase):
512569
panel_id = "SQLPanel"

0 commit comments

Comments
 (0)