def test_rules_all_categories(): customer = ett.Customer(key=1, name="João da Silva", email="*****@*****.**", cpf="11111111111") order = ett.Order(customer) order.addProduct( ett.Product(key=11, description="Amazon Prime", value=49.50, category="membership")) order.addProduct( ett.Product(key=4, description="Música", value=5.99, category="digital")) order.addProduct( ett.Product(key=6, description="Livro", value=7.99, category="digital", kind="book")) order.addProduct( ett.Product(key=2, description="Caneta", value=2.00, category="physical")) order.addProduct( ett.Product(key=8, description="Livro 1", value=25.00, category="physical", kind="book")) rules = pay.Rules(repo, order) resp = rules.proccess() assert resp.get("memberships") != None assert resp.get("shippingLabels") != None assert resp.get("taxExemptions") != None assert resp.get("vouchers") != None
def test_rules_common_digital_product(): customer = ett.Customer(key=1, name="João da Silva", email="*****@*****.**", cpf="11111111111") order = ett.Order(customer) order.addProduct( ett.Product(key=4, description="Música", value=5.99, category="digital")) rules = pay.Rules(repo, order) resp = rules.proccess() assert resp.get("memberships") == None assert resp.get("shippingLabels") == None assert resp.get("taxExemptions") == None assert resp.get("vouchers") != None
def test_rules_active_membership_success(): customer = ett.Customer(key=1, name="João da Silva", email="*****@*****.**", cpf="11111111111") order = ett.Order(customer) order.addProduct( ett.Product(key=11, description="Amazon Prime", value=49.50, category="membership")) rules = pay.Rules(repo, order) resp = rules.proccess() assert resp.get("memberships") != None assert resp.get("shippingLabels") == None assert resp.get("taxExemptions") == None assert resp.get("vouchers") == None
def test_pay_success(): customer = ett.Customer(key=1, name="João da Silva", email="*****@*****.**", cpf="11111111111") order = ett.Order(customer) order.addProduct( ett.Product(key=2, description="Caneta", value=2.00, category="physical")) data = dict( order=order, payment_method=ett.CreditCard.fetchByHashed("43567890-987654367")) newPay = pay.Payment(repo, data) resp = newPay.pay() assert resp.get("is_paid") == True
def test_pay_fail_payment_status_error(): customer = ett.Customer(key=1, name="João da Silva", email="*****@*****.**", cpf="11111111111") order = ett.Order(customer) order.addProduct( ett.Product(key=2, description="Caneta", value=2.00, category="physical")) data = dict( order=order, payment_method=ett.CreditCard.fetchByHashed("43567890-987654367")) with pytest.raises(Error, match=str(paymentStatusError)): newPay = pay.Payment(repo, data) newPay.pay(None)
def test_rules_physical_book(): customer = ett.Customer(key=1, name="João da Silva", email="*****@*****.**", cpf="11111111111") order = ett.Order(customer) order.addProduct( ett.Product(key=8, description="Livro 1", value=25.00, category="physical", kind="book")) rules = pay.Rules(repo, order) resp = rules.proccess() assert resp.get("memberships") == None assert resp.get("shippingLabels") != None assert resp.get("taxExemptions") != None assert resp.get("vouchers") == None
def __loadProducts(self): produtcs = { 1: ett.Product(key=1, description="Lápis", value=1.00, category="physical"), 2: ett.Product(key=2, description="Caneta", value=2.00, category="physical"), 3: ett.Product(key=3, description="Lapiseira", value=1.50, category="physical"), 4: ett.Product(key=4, description="Música", value=5.99, category="digital"), 5: ett.Product(key=5, description="Álbum", value=30.00, category="digital"), 6: ett.Product(key=6, description="Livro", value=7.99, category="digital", kind="book"), 7: ett.Product(key=7, description="Dvd", value=20.00, category="physical"), 8: ett.Product(key=8, description="Livro 1", value=25.00, category="physical", kind="book"), 9: ett.Product(key=9, description="Livro 2", value=50.00, category="physical", kind="book"), 10: ett.Product(key=10, description="Netflix", value=39.50, category="membership"), 11: ett.Product(key=11, description="Amazon Prime", value=49.50, category="membership"), 12: ett.Product(key=12, description="Disney Plus", value=59.50, category="membership") } return produtcs