O programa esta dando o seguinte erro:
Error
Traceback (most recent call last):
File "C:\Users\Usuario\AppData\Local\Programs\Python\Python37-32\lib\unittest\case.py", line 59, in testPartExecutor
yield
File "C:\Users\Usuario\AppData\Local\Programs\Python\Python37-32\lib\unittest\case.py", line 615, in run
testMethod()
File "C:\Users\Usuario\PycharmProjects\testes-python-projeto-inicial\src\leilao\test_avaliador.py", line 19, in test_avalia
avaliador.avalia(leilao)
TypeError: avalia() missing 1 required positional argument: 'leilao'
Comparei o meu código com o das aulas, mas não achei o erro dominio.py
import sys
class Usuario:
def __init__(self, nome):
self.__nome = nome
@property
def nome(self):
return self.__nome
class Lance:
def __init__(self, usuario, valor):
self.usuario = usuario
self.valor = valor
class Leilao:
def __init__(self, descricao):
self.descricao = descricao
self.__lances = []
@property
def lances(self):
return self.__lances
class Avaliador:
def __init__(self):
self.maior_lance = sys.float_info.min
self.menor_lance = sys.float_info.max
def avalia(self, leilao):
for lance in leilao.lances:
if lance.valor > self.maior_lance:
self.maior_lance = lance.valor
if lance.valor < self.menor_lance:
self.menor_lance = lance.valor
principal.py
from src.leilao.dominio import Usuario, Lance, Leilao, Avaliador
gui = Usuario('Gui')
yuri = Usuario('Yuri')
lance_do_yuri = Lance(yuri, 100.0)
lance_do_gui = Lance(gui, 150.0)
leilao = Leilao('Celular')
leilao.lances.append(lance_do_gui)
leilao.lances.append(lance_do_yuri)
for lance in leilao.lances:
print(f'O usuario {lance.usuario.nome} deu um lance de {lance.valor}')
avaliador = Avaliador()
avaliador.avalia(leilao)
print(f'O menor lance foi de {avaliador.menor_lance} e o maior lance foi de {avaliador.maior_lance}')
test_avaliador.py
from unittest import TestCase
from src.leilao.dominio import Leilao, Usuario, Lance, Avaliador
class TestAvaliador(TestCase):
def test_avalia(self):
gui = Usuario("Gui")
yuri = Usuario("Yuri")
lance_do_yuri = Lance(yuri, 100.0)
lance_do_gui = Lance(gui, 150.0)
leilao = Leilao("Celular")
leilao.lances.append(lance_do_yuri)
leilao.lances.append(lance_do_gui)
avaliador = Avaliador
avaliador.avalia(leilao)
menor_valor_esperado = 100.0
maior_valor_esperado = 150.0
self.assertEqual(menor_valor_esperado, avaliador.menor_lance)
self.assertEqual(maior_valor_esperado, avaliador.maior_lance)
Mil desculpas pelo incomodo, mas não achei oque esta errado.