Olá caros colegas do forum, estou com um probleminha preciso de ajuda. Dos 8 testes, apenas um esta retornando o erro citado acima.
def test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance():
robson = Usuario('Robson', 100)
leilao = Leilao('Celular')
robson.propoe_lance(leilao, 50)
assert robson.carteira == 50
O código do arquivo 'dominio'.
import sys
class Usuario:
def __init__(self, nome, carteira):
self.__nome = nome
self.__carteira = carteira
def propoe_lance(self, leilao, valor):
lance = Lance(self, valor)
leilao.prope(lance)
self.__carteira -= valor
@property
def nome(self):
return self.__nome
@property
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):
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('\033[1;35mErro ao propor lance.\033[m')
@property
def lances(self):
return self.__lances[:]
Segue erro retornado.
self = <TDD_com_python_testes_automatizados.Teste_Automatizado_TDD_com_python.dominio.Usuario object at 0x7f9a0e854bb0>
leilao = <TDD_com_python_testes_automatizados.Teste_Automatizado_TDD_com_python.dominio.Leilao object at 0x7f9a0e854cd0>, valor = 50
def propoe_lance(self, leilao, valor):
lance = Lance(self, valor)
> leilao.prope(lance)
E AttributeError: 'Leilao' object has no attribute 'prope'
Teste_Automatizado_TDD_com_python/dominio.py:10: AttributeError
========================================================= short test summary info =========================================================
FAILED tests/test_usuario.py::test_deve_subtrair_valor_da_carteira_do_usuario_quando_este_propor_um_lance - AttributeError: 'Leilao' obj...
======================================================= 1 failed, 7 passed in 0.09s =======================================================