quando rodo este teste:
def test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance(): marston = Usuario("Marston", 100.0)
leilao = Leilao('Celular')
marston.propoe_lance(Leilao, 50.0)
assert marston.carteira == 50.0
isso acontece:
C:\Users\Lucas\Documents\testes-python-projeto-inicial\venv\Scripts\python.exe "C:\Users\Lucas\Nova pasta\PyCharm Community Edition 2020.3\plugins\python-ce\helpers\pycharm\_jb_pytest_runner.py" --target test_Usuario.py::test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance
Testing started at 16:57 ... Launching pytest with arguments test_Usuario.py::test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance in C:\Users\Lucas\Documents\testes-python-projeto-inicial\tests
============================= test session starts ============================= platform win32 -- Python 3.9.1, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- C:\Users\Lucas\Documents\testes-python-projeto-inicial\venv\Scripts\python.exe cachedir: .pytest_cache rootdir: C:\Users\Lucas\Documents\testes-python-projeto-inicial\tests collecting ... collected 1 item
test_Usuario.py::test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance FAILED [100%] test_Usuario.py:9 (test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance) def test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance(): marston = Usuario("Marston", 100.0)
leilao = Leilao('Celular')
marston.propoe_lance(Leilao, 50.0)
test_Usuario.py:15:
self = <src.leilao.dominio.Usuario object at 0x000001EF0B5FCD60> leilao = <class 'src.leilao.dominio.Leilao'>, valor = 50.0
def propoe_lance(self, leilao, valor):
if valor > self.__carteira:
raise ValueError("Não pode propor um lance com o valor maior que o valor da carteira")
lance = Lance(self, valor)
leilao.propoe(lance)
E TypeError: propoe() missing 1 required positional argument: 'lance'
..\src\leilao\dominio.py:15: TypeError
================================== FAILURES =================================== _ test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance _
def test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance():
marston = Usuario("Marston", 100.0)
leilao = Leilao('Celular')
marston.propoe_lance(Leilao, 50.0)
test_Usuario.py:15:
self = <src.leilao.dominio.Usuario object at 0x000001EF0B5FCD60> leilao = <class 'src.leilao.dominio.Leilao'>, valor = 50.0
def propoe_lance(self, leilao, valor):
if valor > self.__carteira:
raise ValueError("Não pode propor um lance com o valor maior que o valor da carteira")
lance = Lance(self, valor)
leilao.propoe(lance)
E TypeError: propoe() missing 1 required positional argument: 'lance'
..\src\leilao\dominio.py:15: TypeError =========================== short test summary info =========================== FAILED test_Usuario.py::test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance ============================== 1 failed in 3.62s ==============================
Process finished with exit code 1
Assertion failed
Assertion failed
esse é o meu dominio.py
def carteira(self):
return self.__carteira
class Lance:
def __init__(self, usuario, valor):
self.usuario = usuario
self.valor = valor
class Leilao:
def __init__(self, descricao):
self.descricao = descricao
self.__lances = []
self.maior_lance = sys.float_info.min
self.menor_lance = sys.float_info.max
def propoe(self, lance: Lance): #Teremos o método propoe() e por meio do if, um lance será válido se a lista de leilões estiver vazia ou se o usuário do último lance for diferente do anterior. Agora, além disso, o lance deverá ser válido também, ou seja, e (and) se o valor dele for maior do que o valor do lance do último usuário.
if not self.__lances or self.__lances[-1].usuario != lance.usuario and lance.valor > self.__lances[-1].valor:
if lance.valor > self.maior_lance:
self.maior_lance = lance.valor
if lance.valor < self.menor_lance:
self.menor_lance = lance.valor
self.__lances.append(lance)
else:
raise ValueError("Erro ao propor lance")
@property
def lances(self):
return self.__lances[:]