From 0ffab50d30b8e1de4d9fba6399a94fa965949583 Mon Sep 17 00:00:00 2001 From: Carlos Ortega Date: Fri, 3 May 2024 17:25:04 -0400 Subject: [PATCH] Code black style update --- rutificador/__init__.py | 2 +- rutificador/main.py | 46 +++++++++++++++++++++++++---------------- tests/tests.py | 22 +++++++++++++------- 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/rutificador/__init__.py b/rutificador/__init__.py index 288ca62..0698351 100644 --- a/rutificador/__init__.py +++ b/rutificador/__init__.py @@ -1,2 +1,2 @@ # pylint: disable=missing-module-docstring -from .main import Rut, RutDigitoVerificador # noqa: F401 +from .main import Rut, RutDigitoVerificador # noqa: F401 diff --git a/rutificador/main.py b/rutificador/main.py index f8b9387..fbf2fa1 100644 --- a/rutificador/main.py +++ b/rutificador/main.py @@ -6,9 +6,11 @@ MODULO_DIGITO_VERIFICADOR: int = 11 RUT_REGEX: str = r"^(\d{1,8}(?:.\d{3})*)(-([0-9kK]))?$" + class RutInvalidoError(Exception): """Lanzada cuando el RUT ingresado es inválido.""" + class RutBase: """Representa el número base de un RUT chileno.""" @@ -49,6 +51,7 @@ def validar_y_normalizar_base(self, base: str) -> str: def __str__(self) -> str: return self.base + class RutDigitoVerificador(RutBase): """Calcula y representa el dígito verificador de un RUT chileno.""" @@ -81,6 +84,7 @@ def calcular_digito_verificador(self) -> str: def __str__(self) -> str: return self.digito_verificador + class Rut: """ Representa un RUT chileno. @@ -128,9 +132,14 @@ def _validar_digito_verificador(self) -> None: """ match = Rut.PATRON_RUT.fullmatch(self.rut_string) digito_verificador_input = match.group(3).lower() if match.group(3) else None - digito_verificador_calculado = RutDigitoVerificador(self.base_string).digito_verificador - - if digito_verificador_input and digito_verificador_input != digito_verificador_calculado: + digito_verificador_calculado = RutDigitoVerificador( + self.base_string + ).digito_verificador + + if ( + digito_verificador_input + and digito_verificador_input != digito_verificador_calculado + ): raise RutInvalidoError( f"El dígito verificador '{digito_verificador_input}' no coincide con " f"el dígito verificador calculado '{digito_verificador_calculado}'." @@ -196,7 +205,7 @@ def validar_lista_ruts(ruts: list[str]) -> dict[str, list[str]]: validos.append(rut_valido) except RutInvalidoError as e: invalidos.append((rut, str(e))) - return {'validos': validos, 'invalidos': invalidos} + return {"validos": validos, "invalidos": invalidos} @staticmethod def _formatear_csv(ruts_formateados: list[str]) -> str: @@ -205,7 +214,7 @@ def _formatear_csv(ruts_formateados: list[str]) -> str: @staticmethod def _formatear_xml(ruts_formateados: list[str]) -> str: - xml_lines:list[str] = [""] + xml_lines: list[str] = [""] for rut in ruts_formateados: xml_lines.append(f" {rut}") xml_lines.append("") @@ -221,7 +230,7 @@ def formatear_lista_ruts( ruts: list[str], separador_miles: bool = False, mayusculas: bool = False, - formato = None, + formato=None, ) -> str: """ Formatea una lista de RUTs según las opciones especificadas. @@ -242,24 +251,25 @@ def formatear_lista_ruts( "json": Rut._formatear_json, } ruts_validos_invalidos: dict[str, list[str]] = Rut.validar_lista_ruts(ruts) - ruts_validos: list[str] = ruts_validos_invalidos['validos'] - ruts_invalidos: list[tuple[str, str]] = ruts_validos_invalidos['invalidos'] + ruts_validos: list[str] = ruts_validos_invalidos["validos"] + ruts_invalidos: list[tuple[str, str]] = ruts_validos_invalidos["invalidos"] - resultado: str = '' + resultado: str = "" if ruts_validos: - ruts_validos_formateados: list[str] = [Rut(rut).formatear(separador_miles, mayusculas) - for rut in ruts_validos] - resultado += 'RUTs válidos:\n' - if formato in ('csv', 'xml', 'json'): + ruts_validos_formateados: list[str] = [ + Rut(rut).formatear(separador_miles, mayusculas) for rut in ruts_validos + ] + resultado += "RUTs válidos:\n" + if formato in ("csv", "xml", "json"): resultado += formato_salida[formato](ruts_validos_formateados) else: - #resultado += '\n'.join(ruts_validos_formateados) - resultado += '\n'.join(ruts_validos_formateados) - resultado += '\n\n' + # resultado += '\n'.join(ruts_validos_formateados) + resultado += "\n".join(ruts_validos_formateados) + resultado += "\n\n" if ruts_invalidos: - resultado += 'RUTs inválidos:\n' + resultado += "RUTs inválidos:\n" for rut, error in ruts_invalidos: - resultado += f'{rut} - {error}\n' + resultado += f"{rut} - {error}\n" return resultado diff --git a/tests/tests.py b/tests/tests.py index 27b2bfc..2c4708e 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -10,6 +10,7 @@ import pytest from rutificador.main import Rut, RutDigitoVerificador, RutBase, RutInvalidoError + # pylint: disable=R0904 class TestRutDigitoVerificador: """ @@ -291,7 +292,7 @@ def test_validate_list_of_valid_rut_strings(self): """ ruts = ["12345678-5", "98765432-5", "11111111-1"] result = Rut.validar_lista_ruts(ruts) - assert result['validos'] == ["12345678-5", "98765432-5", "11111111-1"] + assert result["validos"] == ["12345678-5", "98765432-5", "11111111-1"] # pylint: disable=C0301 def test_validate_list_of_ruts(self): @@ -300,15 +301,20 @@ def test_validate_list_of_ruts(self): invalid RUT strings. """ ruts = ["12345678-9", "98765432-1", "11111111-1", "22222222-2", "33333333-3"] - expected_valid = ['11111111-1', '22222222-2', '33333333-3'] + expected_valid = ["11111111-1", "22222222-2", "33333333-3"] expected_invalid = [ - ('12345678-9', "El dígito verificador '9' no coincide con el dígito verificador calculado '5'."), - ('98765432-1', "El dígito verificador '1' no coincide con el dígito verificador calculado '5'.") - ] + ( + "12345678-9", + "El dígito verificador '9' no coincide con el dígito verificador calculado '5'.", + ), + ( + "98765432-1", + "El dígito verificador '1' no coincide con el dígito verificador calculado '5'.", + ), + ] result = Rut.validar_lista_ruts(ruts) - assert result['validos'] == expected_valid - assert result['invalidos'] == expected_invalid - + assert result["validos"] == expected_valid + assert result["invalidos"] == expected_invalid def test_invalid_rut_string_with_invalid_format(self): """