def test_metodo_add_item(self): cliente = Cliente('José da Silva') pedido = Pedido(cliente) produto = Produto(ean='12345678911') produto2 = Produto(ean='123546') pedido.add_item(produto) pedido.add_item(produto2) assert len(pedido.itens) == 2
def test_nota_fiscal(self): cliente = Cliente('José da Silva') pedido = Pedido(cliente) pedido.add_item(Produto(ean='123', preco=10)) pedido.add_item(Produto(ean='123546', preco=5)) pedido.add_item(Produto(ean='123', preco=10)) nota_fiscal = pedido.nota_fiscal() assert len(nota_fiscal) == 2 assert type(nota_fiscal[0]) == tuple
def test_checkout(self): cliente = Cliente('José da Silva') pedido = Pedido(cliente) pedido.add_item(Produto(ean='123', preco=10)) pedido.add_item(Produto(ean='123546', preco=5)) pedido.add_item(Produto(ean='123', preco=10)) checkout = pedido.checkout('dinheiro') assert len(checkout) == 2 assert checkout[1] == 25
def test_quantidade_produto_no_pedido(self): cliente = Cliente('José da Silva') pedido = Pedido(cliente) pedido.add_item(Produto(ean='123')) pedido.add_item(Produto(ean='123546')) pedido.add_item(Produto(ean='123')) pedido.add_item(Produto(ean='123')) assert pedido.quantidade_produto_no_pedido('123') == 3 assert pedido.quantidade_produto_no_pedido('123546') == 1 assert pedido.quantidade_produto_no_pedido('9999') == 0
def test_checkout_fail2(self): msg_erro = 'Informe um meio de pagamento' with pytest.raises(Exception) as error: pedido = Pedido(Cliente('José da Silva')) pedido.add_item(Produto(ean='123', preco=10)) pedido.checkout() assert str(error.value) == msg_erro
def test_checkout_fail(self): msg_erro = 'Forma de pagamento não aceita' with pytest.raises(Exception) as error: cliente = Cliente('José da Silva') pedido = Pedido(cliente) produto1 = Produto(ean='123', preco=10) pedido.add_item(produto1) pedido.checkout('marcar') assert str(error.value) == msg_erro
def test_valor_total_pagar(self): cliente = Cliente('José da Silva') pedido = Pedido(cliente) pedido.add_item(Produto(ean='123', preco=20)) pedido.add_item(Produto(ean='1234', preco=40)) assert pedido.valor_total_pagar() == 60
def test_instanciar_objeto_somente_ean(self): objeto = Produto(ean='12345678911') assert objeto.ean, '12345678911' assert objeto._preco == 0
def add_estoque(self, ean, preco, quantidade): if not self._produto_exist(ean): if quantidade < 0: quantidade = 0 self._estoque.update( {ean: Produto(ean=ean, preco=preco, quantidade=quantidade)})
def test_str_repr(self): objeto = Produto(ean='123') assert str(objeto) == '123' assert repr(objeto) == 'Produto:123'
def test_setters(self): objeto = Produto(ean='123') assert objeto.ean == '123' assert objeto.preco == 0 objeto.preco = 100 assert objeto.preco == 100
def test_instanciar_objeto_preco_negativo(self): with pytest.raises(ValueError) as error: Produto(ean='12345678911', preco=-1) assert str(error.value) == 'Preço negativo'
def test_setters(self): objeto = Produto(ean='123') assert objeto.ean == '123' assert objeto.preco == 0 # Acessando pelo getter objeto.preco = 100 # Alterando o valor pelo setter assert objeto.preco == 100
def add_estoque(self, ean, preco, quantidade): for i in range(quantidade): self._estoque.append( Produto(ean=ean, preco=preco, quantidade=quantidade))
def test_instanciar_objeto_sem_estoque(self): with pytest.raises(ValueError) as error: Produto(ean='12345678911', preco=10, quantidade=0) assert str(error.value) == 'Sem estoque'
def test_class_declared(self): objeto = Produto() assert isinstance(objeto, Produto)
def comprar(self, ean): if ean in self._estoque and self._estoque[ean].quantidade > 0: self._estoque[ean].quantidade -= 1 produto = Produto(preco=self._estoque[ean].preco, ean=ean) return produto return None