Skip to content

Commit

Permalink
corrigido bug na enderecobr::padronizar_enderecos() com cep invalido
Browse files Browse the repository at this point in the history
  • Loading branch information
dhersz committed Jan 15, 2025
1 parent b793c1f commit f0c4ab6
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 4 deletions.
7 changes: 5 additions & 2 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

## Correção de bugs

- corrigido bug na `padronizar_enderecos()` (quando chamada via
- Corrigido bug na `padronizar_enderecos()` (quando chamada via
`enderecobr::padronizar_enderecos()`) em que a função resultava num erro quando,
internamente, a `padronizar_numeros()` lançava um warning. relacionado ao [issue
internamente, a `padronizar_numeros()` lançava um warning. Relacionado ao [issue
#38](https://github.com/ipeagit/enderecobr/issues/38).
- Corrigido bug na `padronizar_enderecos()` (quando chamada via
`enderecobr::padronizar_enderecos()`) em que a função resultava num erro quando,
internamente, a `padronizar_ceps()` identificava um CEP inválido.

## Novas funcionalidades

Expand Down
8 changes: 6 additions & 2 deletions R/padronizar_ceps.R
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@ erro_cep_com_letra <- function(possui_letras) {

chamada_upstream <- tryCatch(sys.call(-10), error = function(cnd) NULL)
if (!is.null(chamada_upstream)) {
funcao_upstream <- as.name(chamada_upstream[[1]])
funcao_upstream <- as.character(chamada_upstream[[1]])
funcao_upstream <- setdiff(funcao_upstream, c("::", "enderecobr"))

if (funcao_upstream == "padronizar_enderecos") n_caller_env <- 8
}

Expand Down Expand Up @@ -138,7 +140,9 @@ erro_cep_com_digitos_demais <- function(possui_digitos_demais) {

chamada_upstream <- tryCatch(sys.call(-10), error = function(cnd) NULL)
if (!is.null(chamada_upstream)) {
funcao_upstream <- as.name(chamada_upstream[[1]])
funcao_upstream <- as.character(chamada_upstream[[1]])
funcao_upstream <- setdiff(funcao_upstream, c("::", "enderecobr"))

if (funcao_upstream == "padronizar_enderecos") n_caller_env <- 8
}

Expand Down
18 changes: 18 additions & 0 deletions tests/testthat/_snaps/padronizar_enderecos.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,15 @@
! CEP não deve conter mais que 8 dígitos.
i O elemento com índice 1 possui mais que 8 dígitos após padronização.

---

Code
enderecobr::padronizar_enderecos(ends, correspondencia_campos(cep = "cep"))
Condition <erro_endbr_cep_com_digitos_demais>
Error in `enderecobr::padronizar_enderecos()`:
! CEP não deve conter mais que 8 dígitos.
i O elemento com índice 1 possui mais que 8 dígitos após padronização.

---

Code
Expand All @@ -52,6 +61,15 @@
! CEP não deve conter letras.
i O elemento com índice 1 possui letras.

---

Code
enderecobr::padronizar_enderecos(ends, correspondencia_campos(cep = "cep"))
Condition <erro_endbr_cep_com_letra>
Error in `enderecobr::padronizar_enderecos()`:
! CEP não deve conter letras.
i O elemento com índice 1 possui letras.

# printa mensagens de progresso quando verboso

Code
Expand Down
14 changes: 14 additions & 0 deletions tests/testthat/test-padronizar_enderecos.R
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,22 @@ test_that("erro de nome do nome de log ausente eh atribuido a pad enderecos", {
})

test_that("erros relacionados ao cep sao atribuidos a pad enderecos", {
# funciona também quando a função é chamada via namespace explícito
# i.e. enderecobr::padronizar_enderecos()
# relacionado ao issue #38 (https://github.com/ipeaGIT/enderecobr/issues/38)

ends <- data.frame(cep = "222100600")

expect_snapshot(
tester(ends, correspondencia_campos(cep = "cep")),
error = TRUE,
cnd_class = TRUE
)
expect_snapshot(
enderecobr::padronizar_enderecos(ends, correspondencia_campos(cep = "cep")),
error = TRUE,
cnd_class = TRUE
)

ends <- data.frame(cep = "botafogo")

Expand All @@ -157,6 +166,11 @@ test_that("erros relacionados ao cep sao atribuidos a pad enderecos", {
error = TRUE,
cnd_class = TRUE
)
expect_snapshot(
enderecobr::padronizar_enderecos(ends, correspondencia_campos(cep = "cep")),
error = TRUE,
cnd_class = TRUE
)
})

test_that("printa mensagens de progresso quando verboso", {
Expand Down

0 comments on commit f0c4ab6

Please sign in to comment.