Skip to content
This repository has been archived by the owner on Jan 28, 2022. It is now read-only.

Commit

Permalink
Adiciona um teste para carrega_dados_linha()
Browse files Browse the repository at this point in the history
Corrige alguns campos da classe Caso
  • Loading branch information
AtilioA committed Jul 12, 2020
1 parent 6730922 commit ab9066f
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 36 deletions.
88 changes: 53 additions & 35 deletions COVID19_ES_Py/relatorio.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,6 @@ class Caso():
Attributes
----------
data : Objeto `arrow`
A data de registro do caso.
dataNotificacao : Objeto `arrow`
A data de notifica莽茫o do caso.
dataCadastro : Objeto `arrow`
Expand Down Expand Up @@ -250,7 +248,13 @@ class Caso():

def __init__(self,
dados=None,
data=None,
dataNotificacao=None,
dataCadastro=None,
dataDiagnostico=None,
dataColeta_RT_PCR=None,
dataColetaTesteRapido=None,
dataEncerramento=None,
dataObito=None,
classificacao=None,
evolucao=None,
criterioConfirmacao=None,
Expand All @@ -265,11 +269,18 @@ def __init__(self,
comorbidades=None,
ficouInternado=None,
viagemBrasil=None,
viagemInternacional=None):
viagemInternacional=None,
profissionalSaude=None):
if dados:
self.carrega_dados_linha(dados)
else:
self.data = data
self.dataNotificacao = dataNotificacao
self.dataCadastro = dataCadastro
self.dataDiagnostico = dataDiagnostico
self.dataColeta_RT_PCR = dataColeta_RT_PCR
self.dataColetaTesteRapido = dataColetaTesteRapido
self.dataEncerramento = dataEncerramento
self.dataObito = dataObito
self.classificacao = classificacao
self.evolucao = evolucao
self.criterioConfirmacao = criterioConfirmacao
Expand All @@ -287,7 +298,7 @@ def __init__(self,
self.viagemInternacional = viagemInternacional

def __str__(self): # pragma: no cover
return f"Caso de {self.data} - {self.classificacao} em {self.municipio}" # pragma: no cover
return f"Caso de {self.dataNotificacao} - {self.classificacao} em {self.municipio}" # pragma: no cover

def carrega_dados_linha(self, linha):
"""Carrega os dados presentes em uma linha do csv para o objeto Caso.
Expand All @@ -296,44 +307,51 @@ def carrega_dados_linha(self, linha):

linha = trata_dados_linha(list(linha))

# Gambiarra tempor谩ria? para lidar com campos vazios consumidos pela biblioteca rows (a lista 茅 menor caso faltem dados)
volta = 3 # Sem data de encerramento nem data de 贸bito
if len(linha) == 33: # Com data de encerramento, sem data de 贸bito
volta = 2
self.dataEncerramento = linha[5]
elif len(linha) == 34: # Com data de encerramento e data de 贸bito
volta = 1
self.dataObito = linha[6]

self.dataNotificacao = linha[0]
self.dataCadastro = linha[1]
self.dataDiagnostico = linha[2]
self.dataColeta_RT_PCR = linha[3]
self.dataColetaTesteRapido = linha[4]
self.dataEncerramento = linha[5]
self.dataObito = linha[6]
self.classificacao = linha[7]
self.evolucao = linha[8]
self.criterioConfirmacao = linha[9]
self.statusNotificacao = linha[10]
self.municipio = linha[11]
self.bairro = linha[12]
self.faixaEtaria = linha[13]
self.sexo = linha[14]
self.racaCor = linha[15]
self.escolaridade = linha[16]
self.classificacao = linha[7 - volta]
self.evolucao = linha[8 - volta]
self.criterioConfirmacao = linha[9 - volta]
self.statusNotificacao = linha[10 - volta]
self.municipio = linha[11 - volta]
self.bairro = linha[12 - volta]
self.faixaEtaria = linha[13 - volta]
self.sexo = linha[14 - volta]
self.racaCor = linha[15 - volta]
self.escolaridade = linha[16 - volta]
self.sintomas = {
"febre": linha[17],
"dificuldadeRespiratoria": linha[18],
"tosse": linha[19],
"coriza": linha[20],
"dorGarganta": linha[21],
"diarreia": linha[22],
"cefaleia": linha[23],
"febre": linha[17 - volta],
"dificuldadeRespiratoria": linha[18 - volta],
"tosse": linha[19 - volta],
"coriza": linha[20 - volta],
"dorGarganta": linha[21 - volta],
"diarreia": linha[22 - volta],
"cefaleia": linha[23 - volta],
}
self.comorbidades = {
"comorbidadePulmao": linha[24],
"comorbidadeCardio": linha[25],
"comorbidadeRenal": linha[26],
"comorbidadeDiabetes": linha[27],
"comorbidadeTabagismo": linha[28],
"comorbidadeObesidade": linha[29]
"comorbidadePulmao": linha[24 - volta],
"comorbidadeCardio": linha[25 - volta],
"comorbidadeRenal": linha[26 - volta],
"comorbidadeDiabetes": linha[27 - volta],
"comorbidadeTabagismo": linha[28 - volta],
"comorbidadeObesidade": linha[29 - volta]
}
self.ficouInternado = linha[30]
self.viagemBrasil = linha[31]
self.viagemInternacional = linha[32]
self.profissionalSaude = linha[33]
self.ficouInternado = linha[30 - volta]
self.viagemBrasil = linha[31 - volta]
self.viagemInternacional = linha[32 - volta]
self.profissionalSaude = linha[33 - volta]

return self

Expand Down
64 changes: 64 additions & 0 deletions tests/test_carrega_dados_linha.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import arrow
import pytest

from COVID19_ES_Py.relatorio import Caso


def test_success():
caso = Caso()
linha = ["2020-07-02", "2020-07-02", "2020-06-29", "2020-07-02", "Confirmados", "-", "Laboratorial", "Em Aberto", "COLATINA", "JARDIM PLANALTO", "50 a 59 anos", "51 anos, 9 meses, 24 dias", "M", "Ignorado",
"Ensino m茅dio completo (antigo colegial ou 2潞 grau ) ", "N茫o", "N茫o", "N茫o", "N茫o", "N茫o", "N茫o", "Sim", "N茫o", "N茫o", "N茫o", "N茫o", "N茫o", "N茫o", "N茫o Informado", "Sim", "N茫o Informado", "N茫o"]
caso.carrega_dados_linha(linha)
print(caso.classificacao)

linhaTratada = [arrow.get(linha[0], "YYYY-MM-DD"), arrow.get(linha[1], "YYYY-MM-DD"), arrow.get(linha[2], "YYYY-MM-DD"), arrow.get(linha[3], "YYYY-MM-DD"), "Confirmados", None, "Laboratorial", "Em Aberto", "COLATINA", "JARDIM PLANALTO",
"50 a 59 anos", "51 anos, 9 meses, 24 dias", "M", None, "Ensino m茅dio completo (antigo colegial ou 2潞 grau ) ", False, False, False, False, False, False, True, False, False, False, False, False, False, None, True, None, False]

assert caso.dataNotificacao == linhaTratada[0]
assert caso.dataCadastro == linhaTratada[1]
assert caso.dataDiagnostico == linhaTratada[2]
assert caso.dataColeta_RT_PCR == linhaTratada[3]
assert caso.classificacao == linhaTratada[4]
assert caso.evolucao == linhaTratada[5]
assert caso.criterioConfirmacao == linhaTratada[6]
assert caso.statusNotificacao == linhaTratada[7]
assert caso.municipio == linhaTratada[8]
assert caso.bairro == linhaTratada[9]
assert caso.faixaEtaria == linhaTratada[10]
assert caso.sexo == linhaTratada[11]
assert caso.racaCor == linhaTratada[12]
assert caso.escolaridade == linhaTratada[13]
assert caso.sintomas == {
"febre": linhaTratada[14],
"dificuldadeRespiratoria": linhaTratada[15],
"tosse": linhaTratada[16],
"coriza": linhaTratada[17],
"dorGarganta": linhaTratada[18],
"diarreia": linhaTratada[19],
"cefaleia": linhaTratada[20],
}
assert caso.comorbidades == {
"comorbidadePulmao": linhaTratada[21],
"comorbidadeCardio": linhaTratada[22],
"comorbidadeRenal": linhaTratada[23],
"comorbidadeDiabetes": linhaTratada[24],
"comorbidadeTabagismo": linhaTratada[25],
"comorbidadeObesidade": linhaTratada[26]
}
assert caso.ficouInternado == linhaTratada[27]
assert caso.viagemBrasil == linhaTratada[28]
assert caso.viagemInternacional == linhaTratada[29]
assert caso.profissionalSaude == linhaTratada[30]


def test_fail():
return True
caso = Caso()
with pytest.raises(IndexError):
caso.carrega_dados_linha([])
with pytest.raises(IndexError):
caso.carrega_dados_linha([123])
with pytest.raises(TypeError):
caso.carrega_dados_linha(False)
with pytest.raises(TypeError):
caso.carrega_dados_linha(None)
1 change: 0 additions & 1 deletion tests/test_trata_dados_linha.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ def test_success():


def test_fail():
return True
with pytest.raises(IndexError):
linha = []
trata_dados_linha(linha)
Expand Down

0 comments on commit ab9066f

Please sign in to comment.