def test_venda_cartao_indisp_valor_abaixo_vinte(self): """ Cenário: Venda com cartão indisponível para valores abaixo de 20,00. Dado que o valor da venda é de 10,00 E o valor mínimo de vendas para cartão é de 20,00 Quando informo que o meio de pagamento é cartão de crédito OU informo que o meio de pagamento é cartão de débito Então a venda não é registrada E é exibida na tela a mensagem "Meio de pagamento inválido! Para valores inferiores a 20 reais somente dinheiro." """ # criando o produto cocacola = Produto(codigo=13, nome='Coca-cola', preco=5.00) fanta = Produto(codigo=14, nome='Fanta', preco=5.00) # preparando o estoque estoque = Estoque() estoque.add_produto(produto=cocacola, quantidade=50) estoque.add_produto(produto=fanta, quantidade=40) # preparando a venda venda = Venda(lim_compra_cartao=20.00) venda.add_item(produto=cocacola, qtd=1, estoque=estoque) venda.add_item(produto=fanta, qtd=1, estoque=estoque) # meio de pagamento with pytest.raises(MeioPagamentoInvalidoError) as expt_credito: Pagamento(venda.calcular_total(), Pagamento.CARTAO_CREDITO) with pytest.raises(MeioPagamentoInvalidoError) as expt_debito: Pagamento(venda.calcular_total(), Pagamento.CARTAO_DEBITO) msg_esperada = 'Meio de pagamento inválido! Para valores inferiores a 20 reais somente dinheiro.' # asserções do teste assert venda.foi_registrada() is False assert venda.calcular_total() == 10 assert msg_esperada in (str(expt_credito.value) and str(expt_debito.value))