예제 #1
0
def test_make_order():

    uid, token = next(token_gen)
    cart_id = new_cart(token)
    item_items = [next(item_gen)]

    # make order success
    res = make_order(uid, token, cart_id, item_items)
    assert res.status_code == 200
    order_id = res.json()["order_id"]
    assert len(order_id) > 0

    # verify query return the same order
    orders = json_get("/orders", token).json()
    assert len(orders) == 1
    q_order = orders[0]
    assert q_order["id"] == order_id
    assert q_order["items"] == item_items

    # verify order info correct
    _price = lambda i: item_store[i]["price"]
    assert q_order["total"] == sum(
        _price(item["item_id"]) * item["count"] for item in q_order["items"])

    # test only one order can be made
    res2 = make_order(uid, token, cart_id, item_items)
    assert res2.status_code == 403
    assert res2.json() == {
        "code": "ORDER_OUT_OF_LIMIT",
        "message": u"每个用户只能下一单"
    }
예제 #2
0
def test_make_order():

    uid, token = next(token_gen)
    cart_id = new_cart(token)
    food_items = [next(food_gen)]

    # make order success
    res = make_order(uid, token, cart_id, food_items)
    assert res.status_code == 200
    order_id = res.json()["id"]
    assert len(order_id) > 0

    # verify query return the same order
    orders = json_get("/orders", token).json()
    assert len(orders) == 1
    q_order = orders[0]
    assert q_order["id"] == order_id
    assert q_order["items"] == food_items

    # verify order info correct
    _price = lambda i: food_store[i]["price"]
    assert q_order["total"] == sum(
        _price(item["food_id"]) * item["count"] for item in q_order["items"])

    # test only one order can be made
    res2 = make_order(uid, token, cart_id, food_items)
    assert res2.status_code == 403
    assert res2.json() == {"code": "ORDER_OUT_OF_LIMIT",
                           "message": u"每个用户只能下一单"}
예제 #3
0
def test_make_order_cart_not_owned_error():
    uid, token1 = next(token_gen)
    cart_id1 = new_cart(token1)
    _, token2 = next(token_gen)

    res = make_order(uid, token2, cart_id1, [next(food_gen)])
    assert res.status_code == 401
    assert res.json() == {"code": "NOT_AUTHORIZED_TO_ACCESS_CART",
                          "message": u"无权限访问指定的篮子"}
예제 #4
0
def test_pay_order_not_owned_error():
    uid, token1 = next(token_gen)
    cart_id1 = new_cart(token1)
    _, token2 = next(token_gen)

    res = make_order(uid, token1, cart_id1, [next(item_gen)])
    assert res.status_code == 200
    order_id1 = res.json()["order_id"]

    res = pay_order(uid, token2, order_id1)
    assert res.status_code == 401
    assert res.json() == {"code": "NOT_AUTHORIZED_TO_ACCESS_ORDER",
                          "message": u"无权限访问指定的订单"}
예제 #5
0
def test_pay_order_balance_insufficient():

    uid, token = next(balance_insufficient_token_gen)
    cart_id = new_cart(token)
    item_items = [next(item_gen)]

    # make order success
    res = make_order(uid, token, cart_id, item_items)
    assert res.status_code == 200
    order_id = res.json()["order_id"]
    assert len(order_id) > 0

    res = pay_order(uid, token, order_id)
    assert res.status_code == 403
    assert res.json() == {"code": "BALANCE_INSUFFICIENT",
                          "message": u"余额不足"}
예제 #6
0
def test_pay_order():

    uid, token = next(balance_ok_token_gen)
    cart_id = new_cart(token)
    item_items = [next(item_gen)]

    # make order success
    res = make_order(uid, token, cart_id, item_items)
    assert res.status_code == 200
    order_id = res.json()["order_id"]
    assert len(order_id) > 0

    res = pay_order(uid, token, order_id)
    assert res.status_code == 200

    # test only one payment can be made
    res = pay_order(uid, token, order_id)
    assert res.status_code == 403
    assert res.json() == {"code": "ORDER_PAID",
                          "message": u"订单已支付"}