Skip to content

Commit

Permalink
formatando os arquivos
Browse files Browse the repository at this point in the history
  • Loading branch information
alphabraga committed Nov 7, 2024
1 parent 5f30edb commit 6abfab6
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 22 deletions.
2 changes: 1 addition & 1 deletion brutils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
# IBGE Imports
from brutils.ibge.uf import (
convert_code_to_uf,
convert_text_to_uf,
convert_text_to_uf,
)

# Legal Process Imports
Expand Down
15 changes: 9 additions & 6 deletions brutils/ibge/uf.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from brutils.data.enums.uf import CODE_TO_UF, UF
from unidecode import unidecode

from brutils.data.enums.uf import CODE_TO_UF, UF


def convert_code_to_uf(code): # type: (str) -> str | None
"""
Converts a given IBGE code (2-digit string) to its corresponding UF (state abbreviation).
Expand Down Expand Up @@ -31,18 +33,19 @@ def convert_code_to_uf(code): # type: (str) -> str | None

return result

def convert_text_to_uf(state_name): # type: (str) -> str | None

def convert_text_to_uf(state_name): # type: (str) -> str | None
"""
Converts a given Brazilian state full name to its corresponding UF code.
This function takes the full name of a Brazilian state and returns the corresponding
2-letter UF code. It handles all Brazilian states and the Federal District.
This function takes the full name of a Brazilian state and returns the corresponding
2-letter UF code. It handles all Brazilian states and the Federal District.
Args:
state_name (str): The full name of the state to be converted.
Returns:
str or None: The UF code corresponding to the full state name,
str or None: The UF code corresponding to the full state name,
or None if the full state name is invalid.
Example:
Expand All @@ -58,6 +61,6 @@ def convert_text_to_uf(state_name): # type: (str) -> str | None
None
"""

federal_units = {unidecode(i.value.upper()): i.name for i in UF}
federal_units = {unidecode(i.value.upper()): i.name for i in UF}

return federal_units.get(unidecode(state_name.upper()), None)
44 changes: 29 additions & 15 deletions tests/ibge/test_uf.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,33 @@ def test_convert_code_to_uf(self):

def test_convert_text_to_uf(self):
# Testes para nomes válidos
self.assertEqual(convert_text_to_uf('São Paulo'), "SP")
self.assertEqual(convert_text_to_uf('Rio de Janeiro'), "RJ")
self.assertEqual(convert_text_to_uf('Minas Gerais'), "MG")
self.assertEqual(convert_text_to_uf('Distrito Federal'), "DF")
self.assertEqual(convert_text_to_uf('são paulo'), "SP") # Teste com minúsculas
self.assertEqual(convert_text_to_uf('riO de janeiRo'), "RJ") # Teste com misturas de maiúsculas e minúsculas
self.assertEqual(convert_text_to_uf('minas gerais'), "MG") # Teste com minúsculas
self.assertEqual(convert_text_to_uf('sao paulo'), "SP") # Teste sem acento

self.assertEqual(convert_text_to_uf("São Paulo"), "SP")
self.assertEqual(convert_text_to_uf("Rio de Janeiro"), "RJ")
self.assertEqual(convert_text_to_uf("Minas Gerais"), "MG")
self.assertEqual(convert_text_to_uf("Distrito Federal"), "DF")
self.assertEqual(
convert_text_to_uf("são paulo"), "SP"
) # Teste com minúsculas
self.assertEqual(
convert_text_to_uf("riO de janeiRo"), "RJ"
) # Teste com misturas de maiúsculas e minúsculas
self.assertEqual(
convert_text_to_uf("minas gerais"), "MG"
) # Teste com minúsculas
self.assertEqual(
convert_text_to_uf("sao paulo"), "SP"
) # Teste sem acento

# Testes para nomes inválidos
self.assertIsNone(convert_text_to_uf('Estado Inexistente')) # Nome não existe
self.assertIsNone(convert_text_to_uf('')) # Nome vazio
self.assertIsNone(convert_text_to_uf('123')) # Nome com números
self.assertIsNone(convert_text_to_uf('São Paulo SP')) # Nome com sigla incluída
self.assertIsNone(convert_text_to_uf('A')) # Nome com letra não mapeada
self.assertIsNone(convert_text_to_uf('ZZZ')) # Nome com mais de 2 letras
self.assertIsNone(
convert_text_to_uf("Estado Inexistente")
) # Nome não existe
self.assertIsNone(convert_text_to_uf("")) # Nome vazio
self.assertIsNone(convert_text_to_uf("123")) # Nome com números
self.assertIsNone(
convert_text_to_uf("São Paulo SP")
) # Nome com sigla incluída
self.assertIsNone(convert_text_to_uf("A")) # Nome com letra não mapeada
self.assertIsNone(
convert_text_to_uf("ZZZ")
) # Nome com mais de 2 letras

0 comments on commit 6abfab6

Please sign in to comment.