transparencia-mg / age7

https://transparencia-mg.github.io/age7/
1 stars 2 forks source link

Lançar erro com frictionless para recurso com zero linhas #15

Open fjuniorr opened 2 years ago

fjuniorr commented 2 years ago

Durante a execução do make test tivemos o erro

-- Error (test_dm_favorecido.R:33:3): Anonimização prêmios lotéricos -----------
Error in `bmerge(i, x, leftcols, rightcols, roll, rollends, nomatch, mult, 
    ops, verbose = verbose)`: Incompatible join types: x.id_unidade_orc (logical) and i.id_unidade_orc (integer)
Backtrace:
 1. base::unlist(map(2002:2022, get_id_favorecido_premios_lotericos)) test_dm_favorecido.R:33:2
 2. purrr::map(2002:2022, get_id_favorecido_premios_lotericos)
 3. .f(.x[[i]], ...)
 5. data.table:::`[.data.table`(dm_unidade_orc, ft_despesa, on = "id_unidade_orc") test_dm_favorecido.R:24:4
 6. data.table:::bmerge(...)

que na verdade era decorrente de arquivos com linhas vazias (identificado via logs/full_extract.txt e encaminhado para avaliação pelo NUCC).

No PR dtamg-py#11 a gente adicionou uma mensagem de erro se a consulta SQL retornasse zero linhas. No PR dtamg-py#15 a gente substituiu o erro por warning.

Tenho dúvidas de qual seria a melhor abordagem.

O erro de hoje parece indicar que talvez um erro seja mais adequado, mas antes de tomarmos essa decisão vale a pena descobrir se a gente consegue fazer com que o frictionless lance um erro de validação para esse caso, que não aconteceu (eg. dm_unidade_orc foi considerado válido mesmo tendo zero linhas).

Alguns pontos para pesquisa são: