def setUp(self): # criando usuários self.gui = Usuario('Gui', 500.0) # propondo lances self.lance_do_gui = Lance(self.gui, 150.0) # criando leilao self.leilao = Leilao('Celular')
def setUp( self ): #método padrão do unittest para criar algum cenário, ele é invocado antes de rodar os testes e ele é sempre executado novamente a cada teste, é feito de forma isolada #boa prática é deixar apenas todos os atributos que são usados em TODOS OS TESTES, pois, caso tenha 4 atributos e só use 1, pode deixar esta parte do código menos perfomática self.gui = Usuario('Gui', 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular')
def setUp(self): self.gui = Usuario('Gui', 500) self.yuri = Usuario('Yuri', 500) self.lance_yuri = Lance(self.yuri, 200.0) self.lance_gui = Lance(self.gui, 100.0) self.leilao = Leilao('Celular')
def setUp(self): self.esio = Usuario("Esio",500.0) self.gustavo = Usuario("Gustavo", 500.0) self.lance_do_esio = Lance(self.esio, 100.0) self.lance_do_gustavo = Lance(self.gustavo, 150.0) self.leilao = Leilao("Carro")
def setUp(self): self.gabriel = Usuario("Gabriel", 500.0) self.gustavo = Usuario("Gustavo", 500.0) self.lance_gabriel = Lance(self.gabriel, 200.0) self.lance_gustavo = Lance(self.gustavo, 100.0) self.leilao = Leilao("leilao de celular")
def setUp(self): self.usuario1 = Usuario('Usuario1') self.usuario2 = Usuario('Usuario2') self.usuario3 = Usuario('Usuario3') self.lance_do_usuario1 = Lance(self.usuario1, 100.0) self.lance_do_usuario2 = Lance(self.usuario2, 150.0) self.lance_do_usuario3 = Lance(self.usuario3, 200.0) self.leilao = Leilao('Celular')
def setUp(self): # criação de um cenário único para os teste rodarem self.dudu = Usuario('Eduardo', 300.0) self.fer = Usuario('Fernando', 300.0) self.amor = Usuario('Aline', 300.0) self.lance_amor = Lance(self.amor, 100.0) self.lance_fer = Lance(self.fer, 150.0) self.lance_dudu = Lance(self.dudu, 200.0) self.leilao = Leilao('celular')
def setUp(self): self.leo = Usuario("Leo", 500.0) self.vini = Usuario("Vini", 1500.0) self.joice = Usuario("Joice", 100.0) self.lance_vini = Lance(self.vini, 1300.0) self.lance_leo = Lance(self.leo, 300.0) self.lance_joice = Lance(self.joice, 30.0) self.leilao = Leilao("Iphone XS")
def setUp(self): self.primeiro_usuario = Usuario("Gui", 100.00) self.segundo_usuario = Usuario("Pedro", 150.00) self.terceiro_usuario = Usuario("Vini", 80.00) self.lance_do_pedro = Lance(self.segundo_usuario, 100.00) self.lance_do_gui = Lance(self.primeiro_usuario, 150.00) self.lance_do_vini = Lance(self.terceiro_usuario, 80.00) self.leilao = Leilao("Celular")
def setUp(self): self.valor_carteira = 1000.0 self.menor_valor_esperado = 100.0 self.maior_valor_esperado = 150.0 self.usuario_bruno = Usuario('bruno', self.valor_carteira) self.lance_do_bruno = Lance(self.usuario_bruno, self.menor_valor_esperado) self.lance_da_bruna = Lance(Usuario('bruna', self.valor_carteira), self.maior_valor_esperado) self.leilao = Leilao('Video Game')
def criaCenario(self, must_reverse: bool = False, must_createOnlyOne: bool = False, cenarios_adicionais: list = []): cenarios = self.list_cenarios(must_createOnlyOne, cenarios_adicionais) cenarios.sort(key=lambda tup: tup[1], reverse=must_reverse) self.leilao = Leilao('Celular') for key, value in cenarios: usuario = Usuario(key, 500.0) #lance = Lance(usuario, value) usuario.propoe_lance(self.leilao, value)
def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance( self): self.setUp() lance = Lance(self.gui, 150.0) leilao = Leilao('celular') leilao.propoe(lance) menor_valor_esperado = 150.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, leilao.menor_lance) self.assertEqual(maior_valor_esperado, leilao.maior_lance)
def deve_permitir_propor_lance_quando_o_valor_e_menor_que_o_valor_da_careira(): vini = Usuario('Vini', 100.0) leilao = Leilao('Celular') vini.propoe_lance(leilao, 1.0) assert vini.carteira == 99.0
def deve_subatratir_valor_da_carteira_do_usuario_quando_este_propor_um_lance(): vini = Usuario('Vini', 100.0) leilao = Leilao('Celular') vini.propoe_lance(leilao, 50.0) assert vini.carteira == 50.0
def test_deve_permitir_propor_lance_quando_o_valor_eh_igual_ao_valor_da_carteira( vini, leilao): vini = Usuario("vini", 100.0) leilao = Leilao("Celular") vini.propoe_lance(leilao, 100.0) assert vini.carteira == 0.0
def teste_nao_para_permitir_lance_maior_que_o_valor_na_carteira(mando, leilao): with pytest.raises(LanceInvalido): corruscont = Leilao("Cidades") mando.propoeLance(leilao, 200) assert mando.carteira == 100
def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionado_em_ordem_crescente(self): gui = Usuario('Gui') yuri = Usuario('Yuri') lance_do_yuri = Lance(yuri, 100.0) lance_do_gui = Lance(gui, 150.0) leilao = Leilao('Leilao de 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)
def gera_lance_unico_leilao(leilao=None, nome_apostador="Fabio", valor=150): nome = Usuario(nome_apostador, 500) lance_do_apostador = Lance(nome, valor) if leilao is None: leilao = Leilao('Celular') leilao.realizar_lance(lance_do_apostador) else: leilao.realizar_lance(lance_do_apostador) return leilao
def gera_lances_leilao(): math = Usuario("Math", 500) ana = Usuario("Ana", 750) joao = Usuario("Joao", 480) lance_da_ana = Lance(ana, 100) lance_do_joao = Lance(joao, 150) lance_do_math = Lance(math, 200) leilao = Leilao('Churrasqueira') leilao.realizar_lance(lance_da_ana) leilao.realizar_lance(lance_do_joao) leilao.realizar_lance(lance_do_math) return leilao
def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances(self): yuri = Usuario('Yuri') lance_do_yuri = Lance(yuri, 100.0) vini = Usuario('Vini') lance_do_vini = Lance(vini, 200.0) leilao = Leilao('Celular') leilao.lances.append(lance_do_yuri) leilao.lances.append(self.lance_do_gui) leilao.lances.append(lance_do_vini) avaliador = Avaliador() avaliador.avalia(leilao) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, avaliador.menor_lance) self.assertEqual(maior_valor_esperado, avaliador.maior_lance)
def leilao(): return Leilao('Celular')
class TestLeilao(TestCase): def setUp(self): self.gabriel = Usuario("Gabriel", 500.0) self.gustavo = Usuario("Gustavo", 500.0) self.lance_gabriel = Lance(self.gabriel, 200.0) self.lance_gustavo = Lance(self.gustavo, 100.0) self.leilao = Leilao("leilao de celular") def test_quando_lances_em_ordem_crescente_deve_retornar_maior_e_menor_lance( self): self.leilao.dar_lance(self.lance_gustavo) self.leilao.dar_lance(self.lance_gabriel) maior_valor_esperado = 200.0 menor_valor_esperado = 100.0 self.assertEqual(self.leilao.menor_lance, menor_valor_esperado) self.assertEqual(self.leilao.maior_lance, maior_valor_esperado) def test_quando_lances_em_ordem_decrescente_nao_deve_permitir_lance(self): with self.assertRaises(LanceInvalido): self.leilao.dar_lance(self.lance_gabriel) self.leilao.dar_lance(self.lance_gustavo) def test_quando_houver_apenas_um_lance_deve_retornar_o_mesmo_valor_para_maior_e_menor_lances( self): self.leilao.dar_lance(self.lance_gabriel) maior_valor_esperado = 200.0 menor_valor_esperado = 200.0 self.assertEqual(self.leilao.menor_lance, menor_valor_esperado) self.assertEqual(self.leilao.maior_lance, maior_valor_esperado) def test_quando_houver_mais_de_dois_lances_deve_retornar_maior_e_menor_lance( self): karol = Usuario("Karoline", 500.0) lance_karol = Lance(karol, 150.0) self.leilao.dar_lance(self.lance_gustavo) self.leilao.dar_lance(lance_karol) self.leilao.dar_lance(self.lance_gabriel) maior_valor_esperado = 200.0 menor_valor_esperado = 100.0 self.assertEqual(self.leilao.menor_lance, menor_valor_esperado) self.assertEqual(self.leilao.maior_lance, maior_valor_esperado) def test_quando_nao_houver_lances_deve_permitir_dar_lance(self): self.leilao.dar_lance(self.lance_gabriel) quantidade_de_lances = len(self.leilao.lances) self.assertEqual(1, quantidade_de_lances) def test_quando_usuarios_diferentes_propoem_lance_em_sequencia_deve_permitir_dar_lance( self): self.leilao.dar_lance(self.lance_gustavo) self.leilao.dar_lance(self.lance_gabriel) quantidade_de_lances = len(self.leilao.lances) self.assertEqual(2, quantidade_de_lances) def test_quando_o_mesmo_usuario_propoe_lances_seguidos_deve_barrar_o_lance( self): segundo_lance_do_gabriel = Lance(self.gabriel, 300) with self.assertRaises(LanceInvalido): self.leilao.dar_lance(self.lance_gabriel) self.leilao.dar_lance(segundo_lance_do_gabriel)
def setUp(self): self.gui = Usuario('Gui', 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular')
class TestLeilao(TestCase): #esse metodo é sempre invocado antes dos métodos(isola = garante que um teste não influencia o outro) def setUp(self): self.gui = Usuario('Gui', 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular') #deixar de forma clara def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente(self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_permitir_propor_um_lance_em_ordem_decrescente(self): with self.assertRaises(LanceInvalido): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_o_leilao_estiver_um_lance(self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(150.0, self.leilao.maior_lance) self.assertEqual(150.0, self.leilao.menor_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_valores(self): yuri = Usuario('Yuri', 500.0) vini = Usuario('Vini', 500.0) lance_do_vini = Lance(vini, 200.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_vini) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lances(self): self.leilao.propoe(self.lance_do_gui) quantidade_de_lances_recebidos = len(self.leilao.lances) self.assertEqual(1, quantidade_de_lances_recebidos) def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente(self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 200.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) quantidade_de_lances_recebidos = len(self.leilao.lances) self.assertEqual(2,quantidade_de_lances_recebidos) def test_nao_deve_pertmitir_propor_lance_caso_o_usuario_seja_o_mesmo(self): lance_do_gui200 = Lance(self.gui, 200.0) #try: with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_gui200)
from src.leilao.dominio import Usuario, Lance, Leilao, Avaliador gui = Usuario('Gui') albert = Usuario('Albert') lance_do_albert = Lance(albert, 100.0) lance_do_gui = Lance(gui, 150.0) leilao = Leilao('Celular') leilao.lances.append(lance_do_gui) leilao.lances.append(lance_do_albert) 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'Menor lance: {avaliador.menor_lance} e maior lance: {avaliador.maior_lance}')
class TesteLeilao(TestCase): def setUp(self): self.gui = Usuario('Gui', 500.0) self.yuri = Usuario('Yuri', 500.0) self.lance_do_yuri = Lance(self.yuri, 100.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular') def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicioandos_em_ordem_crescente(self): self.leilao.propoe(self.lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.assertEqual(100.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self): with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(self.lance_do_yuri) def test_deve_retornar_o_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_um_lance(self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(150.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_leilao_tiver_tres_lances(self): vini = Usuario('Vini', 500.0) lance_do_vini = Lance(vini, 200.0) self.leilao.propoe(self.lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_vini) self.assertEqual(100.0, self.leilao.menor_lance) self.assertEqual(200.0, self.leilao.maior_lance) def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lances(self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(1, len(self.leilao)) def test_deve_permitir_propor_lance_caso_o_ultimo_usuario_seja_diferente(self): self.leilao.propoe(self.lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.assertEqual(2, len(self.leilao)) def test_nao_deve_permitir_propor_lance_caso_o_ultimo_usuario_seja_igual(self): segundo_lance = Lance(self.gui, 200.0) with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(segundo_lance)
class TestLeilao(TestCase): # cenarios que se repetem def setUp(self): # metodo que cria cenários sem precisar invocá-lo em tds os testes self.sicrano = Usuario('Sicrano', 5000.0) self.lance_sicrano = Lance(self.sicrano, 1500.0) self.leilao = Leilao('Quadro') # padrões nomenclatura: # test_quando_adicionados_em_ordem_crescente_deve_retornar_maior_e_menor_valor_de_lance(self): def test_deve_retornar_maior_e_menor_valor_de_lance_quando_adicionados_em_ordem_crescente(self): fulano = Usuario('Fulano', 5000.0) lance_fulano = Lance(fulano, 1000.0) self.leilao.propoe(lance_fulano) self.leilao.propoe(self.lance_sicrano) menor_valor_esperado = 1000.0 maior_valor_esperado = 1500.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_nao_deve_permitir_proposicao_de_lance_em_ordem_decrescente(self): with self.assertRaises(LanceInvalido): fulano = Usuario('Fulano', 5000.0) lance_fulano = Lance(fulano, 1000.0) self.leilao.propoe(self.lance_sicrano) self.leilao.propoe(lance_fulano) def test_deve_retornar_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_lance(self): self.leilao.propoe(self.lance_sicrano) self.assertEqual(1500.0, self.leilao.menor_lance) self.assertEqual(1500.0, self.leilao.maior_lance) def test_deve_retornar_maior_e_menor_valor_quando_leilao_tiver_tres_lances(self): fulano = Usuario('Fulano', 5000.0) beltrano = Usuario('Beltrano', 5000.0) lance_fulano = Lance(fulano, 1000.0) lance_beltrano = Lance(beltrano, 2000.0) self.leilao.propoe(lance_fulano) self.leilao.propoe(self.lance_sicrano) self.leilao.propoe(lance_beltrano) menor_valor_esperado = 1000.0 maior_valor_esperado = 2000.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) # se o leilao nao tiver lances, deve permitir propor um lance def test_deve_permitir_proposicao_de_lance_caso_leilao_nao_tenha_lances(self): self.leilao.propoe(self.lance_sicrano) quantidade_lances_recebidos = len(self.leilao.lances) self.assertEqual(1, quantidade_lances_recebidos) # se o último usuário for diferente, deve permitir propor um lance def test_deve_permitir_proposicao_de_lance_caso_usuario_seja_diferente(self): fulano = Usuario('Fulano', 5000.0) lance_fulano = Lance(fulano, 2000.0) self.leilao.propoe(self.lance_sicrano) self.leilao.propoe(lance_fulano) quantidade_lances_recebidos = len(self.leilao.lances) self.assertEqual(2, quantidade_lances_recebidos) # se o último usuário for o mesmo, não deve permitir propor um lance def test_nao_deve_permitir_proposicao_de_lance_caso_usuario_consecutivo_seja_igual(self): lance_sicrano2000 = Lance(self.sicrano, 2000.0) with self.assertRaises(LanceInvalido): # try/except Value Error self.leilao.propoe(lance_sicrano2000) self.leilao.propoe(self.lance_sicrano)
def setUp(self): # metodo que cria cenários sem precisar invocá-lo em tds os testes self.sicrano = Usuario('Sicrano', 5000.0) self.lance_sicrano = Lance(self.sicrano, 1500.0) self.leilao = Leilao('Quadro')
class TestLeilao(TestCase): # test_quando_adicionados_em_ordem_crescente_deve_retornar_o_maior_e_o_menor_valor_de_um_lance def setUp(self): self.gui = Usuario('Gui', 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular') def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self): with self.assertRaises(LanceInvalido): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance( self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(150.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) vini = Usuario('Vini', 500.0) lance_do_vini = Lance(vini, 200.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_vini) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lances( self): self.leilao.propoe(self.lance_do_gui) quantidade_de_lances_recebido = len(self.leilao.lances) self.assertEqual(1, quantidade_de_lances_recebido) def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 200.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) quantidade_de_lances_recebido = len(self.leilao.lances) self.assertEqual(2, quantidade_de_lances_recebido) def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self): lance_do_gui200 = Lance(self.gui, 200.0) with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_gui200)
class TestLeilao(TestCase): def setUp( self ): #método padrão do unittest para criar algum cenário, ele é invocado antes de rodar os testes e ele é sempre executado novamente a cada teste, é feito de forma isolada #boa prática é deixar apenas todos os atributos que são usados em TODOS OS TESTES, pois, caso tenha 4 atributos e só use 1, pode deixar esta parte do código menos perfomática self.gui = Usuario('Gui', 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular') def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_nao_deve_permitir_propor_um_lance_em_ordem_descrescente(self): with self.assertRaises(LanceInvalido): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance( self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(150.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances( self): vini = Usuario('Vini', 500.0) lance_do_vini = Lance(vini, 200.0) yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_vini) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) # Se o leilão não tiver lances, deve permitir propor um lance def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lances( self): self.leilao.propoe(self.lance_do_gui) quantidade_de_lances_esperado = 1 quantidade_de_lances_recebido = len(self.leilao.lances) self.assertEqual(quantidade_de_lances_esperado, quantidade_de_lances_recebido) # Se o último usuário for diferente, deve permitir propor o lance def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 200.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) quantidade_de_lances_esperado = 2 quantidade_de_lances_recebido = len(self.leilao.lances) self.assertEqual(quantidade_de_lances_esperado, quantidade_de_lances_recebido) # Se o último usuário for o mesmo, não deve permitir propor o lance def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self): lance_do_gui200 = Lance(self.gui, 200.0) with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_gui200)