Beispiel #1
0
 def test_rank_count(self):
     ''' Verifica se retorna corretamente uma agregação RANK_COUNT '''
     vlr = 'vl_indicador'
     agr = 'rank_count'
     result = QueryBuilder.get_agr_string(agr, vlr)
     expected = 'RANK() OVER(ORDER BY COUNT(vl_indicador) DESC) AS agr_rank_count_vl_indicador'
     self.assertEqual(result, expected)
Beispiel #2
0
 def test_bypass(self):
     ''' Verifica se retorna None quando a agregação está na
         lista de ignore '''
     vlr = 'vl_indicador'
     agr = 'DISTINCT'
     result = QueryBuilder.get_agr_string(agr, vlr)
     self.assertEqual(result, None)
Beispiel #3
0
 def test_rank_dense_sum(self):
     ''' Verifica se retorna corretamente uma agregação RANK_DENSE_SUM '''
     vlr = 'vl_indicador'
     agr = 'rank_dense_sum'
     result = QueryBuilder.get_agr_string(agr, vlr)
     expected = ('DENSE_RANK() OVER(ORDER BY SUM(vl_indicador) DESC) AS '
                 'agr_rank_dense_sum_vl_indicador')
     self.assertEqual(result, expected)
Beispiel #4
0
 def test_as_is(self):
     ''' Verifica se retorna corretamente uma agregação que
         está na lista as_is '''
     vlr = 'vl_indicador'
     agr = 'sum'
     expected = 'sum(vl_indicador) AS agr_sum_vl_indicador'
     result = QueryBuilder.get_agr_string(agr, vlr)
     self.assertEqual(result, expected)
Beispiel #5
0
 def test_custom(self):
     ''' Verifica se retorna corretamente uma agregação que
         não está na lista as_is '''
     vlr = 'vl_indicador'
     agr = 'pct_count'
     result = QueryBuilder.get_agr_string(agr, vlr)
     expected = ('COUNT(vl_indicador) * 100 / SUM(COUNT(vl_indicador)) '
                 'OVER() AS agr_pct_count_vl_indicador')
     self.assertEqual(result, expected)
Beispiel #6
0
 def build_generic_agr_array(agregacao=None):
     ''' Prepara agregação sem campo definido '''
     if agregacao is None or not agregacao:
         return []
     result = []
     for each_aggr in agregacao:
         agr_string = QueryBuilder.get_agr_string(each_aggr, '*')
         if agr_string is not None:
             result.append(agr_string)
     return result
Beispiel #7
0
 def build_agr_array(valor=None, agregacao=None):
     ''' Combina a agregação com o campo de valor, para juntar nos campos da query '''
     if agregacao is None or not agregacao:
         return []
     result = []
     for each_aggr in agregacao:
         agr_string = QueryBuilder.get_agr_string(each_aggr, valor)
         if agr_string is not None:
             result.append(agr_string)
     return result
Beispiel #8
0
 def get_agr_string(agregacao, valor):
     ''' Proxy for Query Builder function call '''
     return QueryBuilder.get_agr_string(agregacao, valor)
Beispiel #9
0
 def get_agr_string(agregacao, valor):
     """ Proxy for Query Builder function call """
     return QueryBuilder.get_agr_string(agregacao, valor)