@@ -507,6 +507,63 @@ def test_nested_template_information(self):
507
507
self .assertEqual (template_info ["context" ][0 ]["content" ].strip (), "{{ users }}" )
508
508
self .assertEqual (template_info ["context" ][0 ]["highlight" ], True )
509
509
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
+
510
567
511
568
class SQLPanelMultiDBTestCase (BaseMultiDBTestCase ):
512
569
panel_id = "SQLPanel"
0 commit comments