Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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)
Exemple #6
0
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
Exemple #7
0
 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