예제 #1
0
 def test_pt_real(self):
     ''' Verifica se a formatação de real em pt_br está correta '''
     fmt = NumberFormatter.format(53.481, {
         "format": 'real',
         "str_locale": 'pt_br'
     })
     self.assertEqual(fmt, "53")
예제 #2
0
 def test_pt_inteiro(self):
     ''' Verifica se a formatação de inteiro em pt_br está correta '''
     fmt = NumberFormatter.format(2019, {
         "format": 'inteiro',
         "str_locale": 'pt_br'
     })
     self.assertEqual(fmt, "2.019")
예제 #3
0
 def test_pt_percentual(self):
     ''' Verifica se a formatação de percentual em pt_br está correta '''
     fmt = NumberFormatter.format(53.481, {
         "format": 'porcentagem',
         "str_locale": 'pt_br'
     })
     self.assertEqual(fmt, "53,5<span>%</span>")
예제 #4
0
 def test_dinheiro_pt_no_precision(self):
     ''' Verifica se a formatação de dinheiro com precisão em pt_br está correta '''
     fmt = NumberFormatter.format(53481.583, {
         "format": 'monetario',
         "str_locale": 'pt_br',
         "precision": 1
     })
     self.assertEqual(fmt, "<span>R$</span>53.481,6")
예제 #5
0
 def get_formatted_value(structure, data_collection):
     ''' Gets the formatted value '''
     if (structure['base_object'] in data_collection
             and data_collection[structure['base_object']] is not None):
         fmt_arg = data_collection[structure['base_object']][
             structure['named_prop']]
         if 'format' in structure:
             fmt_arg = NumberFormatter.format(fmt_arg, structure)
         return fmt_arg
     return "N/D"
예제 #6
0
 def test_pt_collapsed(self):
     ''' Verifica se a formatação de número colapsado em pt_br está correta '''
     fmt = NumberFormatter.format(
         53481, {
             "format": 'real',
             "collapse": {
                 "format": "real"
             },
             "str_locale": 'pt_br'
         })
     self.assertEqual(fmt, "53,5<span>mil</span>")
예제 #7
0
 def test_pt_collapsed_no_tags(self):
     ''' Verifica se a formatação de número colapsado em pt_br está correta '''
     fmt = NumberFormatter.format(
         53481, {
             "format": 'real',
             "collapse": {
                 "format": "real",
                 "uiTags": False
             },
             "str_locale": 'pt_br'
         })
     self.assertEqual(fmt, "53,5mil")
예제 #8
0
    def run_formatters(each_obj_struct, each_obj):
        ''' Runs formatters from config '''
        for each_fmt in each_obj_struct:
            args = {'format': each_fmt['format']}
            if 'precision' in each_fmt:
                args['precision'] = each_fmt['precision']
            if 'multiplier' in each_fmt:
                args['multiplier'] = int(each_fmt['multiplier'])
            else:
                args['multiplier'] = 1
            if 'collapse' in each_fmt:
                args['collapse'] = each_fmt['collapse']
            else:
                args['collapse'] = None
            if 'default' in each_fmt:
                args['default'] = each_fmt['default']

            # Creates formatted column by applying number format method
            # in the declared named_prop
            each_obj['dataset'][each_fmt['prop']] = [
                NumberFormatter.format(row[each_fmt['named_prop']], args)
                for index, row in each_obj['dataset'].iterrows()
            ]
        return each_obj
예제 #9
0
 def test_no_valor_with_no_default(self):
     ''' Verifica se retorna '-' quando não há nem valor nem default '''
     fmt = NumberFormatter.format(None, {})
     self.assertEqual(fmt, "-")
예제 #10
0
 def test_valor_with_no_format(self):
     ''' Verifica se retorna o próprio valor quando não há definição de formato '''
     fmt = NumberFormatter.format(99, {})
     self.assertEqual(fmt, 99)
예제 #11
0
 def test_no_valor_with_default(self):
     ''' Verifica se retorna default quando não há valor '''
     fmt = NumberFormatter.format(None, {"default": "N/A"})
     self.assertEqual(fmt, "N/A")