Skip to content

Commit

Permalink
feat: adiciona cobraça extra por churrasco
Browse files Browse the repository at this point in the history
  • Loading branch information
fernandohtr committed Dec 12, 2023
1 parent 0d9c8c1 commit 8250611
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/gerador_relatorio.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
'p': 10,
'g': 14,
'ovo': 2,
'churrasco': 2,
}


Expand Down Expand Up @@ -84,11 +85,18 @@ def _remove_acentos(texto: str) -> str:
def _converte_valor(pedido: tuple) -> str:
tamanho = pedido[2]
tem_ovo = VALORES_MARMITA.get('ovo') if _verifica_se_tem_ovo(pedido[4]) else 0
return VALORES_MARMITA.get(tamanho.strip()[0].lower()) + tem_ovo
tem_churrasco = VALORES_MARMITA.get('churrasco') if _verifica_se_tem_churrasco(pedido[4]) else 0
return VALORES_MARMITA.get(tamanho.strip()[0].lower()) + tem_ovo + tem_churrasco


def _verifica_se_tem_ovo(comida: str) -> bool:
regex = r'\W[Oo][Vv][Oo]'
regex = r'(?<!\w)[Oo][Vv][Oo]'
match = re.search(regex, comida)
return bool(match)


def _verifica_se_tem_churrasco(comida: str) -> bool:
regex = r'(?<!\w)[Cc]hurrasco'
match = re.search(regex, comida)
return bool(match)

Expand Down
18 changes: 18 additions & 0 deletions src/tests/test_gerador_relatorio.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,18 @@ def test_converte_valor(self):
self.assertEqual(14, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Grande', '1', '')))
self.assertEqual(10, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Pequeno', '1', '')))

def test_converte_valor_com_extras(self):
self.assertEqual(18, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Grande', '1', 'churrasco e ovo')))
self.assertEqual(14, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Pequeno', '1', 'ovo e churrasco')))

def test_converte_valor_com_ovo(self):
self.assertEqual(16, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Grande', '1', ' beterraba,oVo, mandioca')))
self.assertEqual(12, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Pequeno', '1', ':ovo, beterraba, mandioca')))

def test_converte_valor_com_churrasco(self):
self.assertEqual(16, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Grande', '1', ' beterraba,churrasco, mandioca')))
self.assertEqual(12, gerador_relatorio._converte_valor(('6/30/21', 'Caterpie:', 'Pequeno', '1', ':Churrasco, beterraba, mandioca')))

def test_sanitiza_dados_com_erro_de_padrão(self):
pedidos_mes = [('6/30/21', 'Ca.terpie:', 'Grande', '2', ': tropeiro, arroz, batatinha ensopada')]
dados_sanitizados = gerador_relatorio.sanitiza_dados(pedidos_mes)
Expand Down Expand Up @@ -59,6 +67,16 @@ def test_verifica_se_tem_ovo_nao_encontra_ovo(self):
nao_tem_ovo = gerador_relatorio._verifica_se_tem_ovo(pedido_comida)
self.assertFalse(nao_tem_ovo)

def test_verifica_se_tem_churrasco_encontra_ovo(self):
pedido_comida = ': tropeiro, arroz, batatinha ensopada, churrasco, beterraba, mandioca, ovo'
tem_churrasco = gerador_relatorio._verifica_se_tem_churrasco(pedido_comida)
self.assertTrue(tem_churrasco)

def test_verifica_se_tem_churrasco_nao_encontra_churrasco(self):
pedido_comida = ': tropeiro, arroz, batatinha ensopada, ovo, beterraba, mandioca'
nao_tem_churrasco = gerador_relatorio._verifica_se_tem_churrasco(pedido_comida)
self.assertFalse(nao_tem_churrasco)


if __name__ == '__main__':
unittest.main()

0 comments on commit 8250611

Please sign in to comment.