Skip to content

Commit

Permalink
Inclui mais testes para o utils
Browse files Browse the repository at this point in the history
  • Loading branch information
leogregianin committed Jan 27, 2022
1 parent 3976e45 commit 18b051e
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 6 deletions.
11 changes: 8 additions & 3 deletions pynfe/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,14 @@


# @memoize
def so_numeros(texto):
"""Retorna o texto informado mas somente os numeros"""
return "".join(filter(str.isdigit, str(texto)))
def so_numeros(texto) -> str:
"""
Retorna o texto informado mas somente os numeros
:param texto: String ou Inteiro a ser analisada
:return: String somente com números
"""
return ''.join(filter(str.isdigit, str(texto)))


# @memoize
Expand Down
44 changes: 41 additions & 3 deletions tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
obter_codigo_por_municipio,
obter_municipio_por_codigo,
obter_uf_por_codigo,
formatar_decimal,
remover_acentos
)
from lxml import etree
from pynfe.utils.descompactar import DescompactaGzip


class UtilsTestCase(unittest.TestCase):
Expand All @@ -20,15 +23,18 @@ class UtilsTestCase(unittest.TestCase):
def test_so_numeros_none(self):
self.assertEqual(so_numeros(None), "")

def test_so_numeros_float(self):
def test_so_numeros_valor_int(self):
self.assertEqual(so_numeros(223), "223")

def test_so_numeros_numeric(self):
def test_so_numeros_valor_string(self):
self.assertEqual(so_numeros("223"), "223")

def test_so_numeros_alphanumeric(self):
def test_so_numeros_com_letras_e_numeros(self):
self.assertEqual(so_numeros("aa223bb"), "223")

def test_so_numeros_somente_com_letras(self):
self.assertEqual(so_numeros("aabbccdd"), "")

# obter_pais_por_codigo
def test_obter_pais_por_codigo_brasil(self):
self.assertEqual(obter_pais_por_codigo("1058"), "Brasil")
Expand Down Expand Up @@ -183,6 +189,22 @@ def test_obter_uf_por_codigo_df_53(self):
def test_obter_uf_por_codigo_an_91(self):
self.assertEqual(obter_uf_por_codigo("91"), 'AN')

# formatar_decimal
def test_formatar_decimal_1(self):
self.assertEqual(formatar_decimal(1), '1.00')

def test_formatar_decimal_1_0(self):
self.assertEqual(formatar_decimal(1.0), '1.00')

def test_formatar_decimal_1_00(self):
self.assertEqual(formatar_decimal(1.00), '1.00')

def test_formatar_decimal_1_01(self):
self.assertEqual(formatar_decimal(1.01), '1.01')

def test_formatar_decimal_1_011(self):
self.assertEqual(formatar_decimal(1.011), '1.011')

# remover_acentos
def test_remover_acentos_com_acento(self):
self.assertEqual(remover_acentos("á"), "a")
Expand All @@ -199,6 +221,22 @@ def test_remover_acentos_com_acento(self):
self.assertEqual(remover_acentos("ã"), "a")
self.assertEqual(remover_acentos("õ"), "o")

self.assertEqual(remover_acentos("a"), "a")
self.assertEqual(remover_acentos("b"), "b")
self.assertEqual(remover_acentos("c"), "c")


class DescompactaGzipUtils(unittest.TestCase):

def test_descompacta_string_gzip(self):
gzip_str = 'H4sIAAAAAAAACrPJS0u1K0ktLklVKKgEsm30QQIABhWzIhYAAAA='
esperado = '<nfe>teste pynfe</nfe>'

descompacta_gzip = DescompactaGzip.descompacta(gzip_str)
resultado_str = etree.tostring(descompacta_gzip).decode('utf-8')

self.assertEqual(resultado_str, esperado)


if __name__ == '__main__':
unittest.main()

0 comments on commit 18b051e

Please sign in to comment.