@@ -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
511568class SQLPanelMultiDBTestCase (BaseMultiDBTestCase ):
512569 panel_id = "SQLPanel"
0 commit comments