コード例 #1
0
def rate_purchase(tracking_number):
    """Permite calificar una compra"""
    uid = get_jwt_identity()
    if not request.is_json:
        abort(400)
    payload = request.get_json()
    OrderServices.rate_purchase(uid, tracking_number, payload)
    return jsonify(result='success'), 200
コード例 #2
0
def test_new_order_if_order_units_greater_than_product_units_raises_not_enough_units_error(
        get_by_id_mock, get_one_mock, order_data, user_data, product_data,
        payment_method_data):
    product_with_3_units = product_data.get_product_with_3_units()
    get_by_id_mock.return_value = product_with_3_units
    user_schema = UserSchema()
    get_one_mock.return_value = user_schema.load(user_data.valid_user)
    with pytest.raises(NotEnoughUnitsError):
        OrderServices.new_order(user_data.valid_user,
                                order_data.input_order_with_9_units)
コード例 #3
0
def test_new_order_if_user_buys_his_own_product_raises_forbidden_error(
        get_one_mock, product_with_same_user_as_order_buyer_mock, user_data,
        order_data, product_data):
    user_schema = UserSchema()
    get_one_mock.return_value = user_schema.load(user_data.valid_user)
    product_with_same_user_as_order_buyer_mock.return_value = product_data.get_valid_product(
    )
    buyer_with_same_user_as_product_seller = user_data.uid
    with pytest.raises(ForbiddenError):
        OrderServices.new_order(buyer_with_same_user_as_product_seller,
                                order_data.valid_input_order)
コード例 #4
0
def estimate_shipping_cost():
    """Permite saber, con un margen de error, el costo de un
     envío antes de realizarlo. Este servicio será una
      fachada de uno proporcionado por el Shared Server."""
    uid = get_jwt_identity()
    if not request.is_json:
        abort(400)
    estimate_data = request.get_json()
    cost = OrderServices.estimate_shipping_cost(uid, estimate_data)
    return jsonify(estimated_cost=cost), 200
コード例 #5
0
def new_order():
    """Servicio de compra: Este servicio permite realizar la compra
     de un producto que se encuentra publicado. Devuelve un código
     que identifica la compra de forma única y que permite conocer
     el estado de la misma (tracking)"""
    uid = get_jwt_identity()
    if not request.is_json:
        abort(400)
    purchase = request.get_json()
    purchase_id = OrderServices.new_order(uid, purchase)
    return jsonify(order_tracking_number=purchase_id), 200
コード例 #6
0
def get_purchases():
    """Devuelve las compras realizadas por el usuario"""
    uid = get_jwt_identity()
    purchases = OrderServices.get_purchases(uid)
    return jsonify(count=len(purchases), orders=purchases), 200
コード例 #7
0
def get_sales():
    """Devuelve las ventas realizadas por el usuario"""
    uid = get_jwt_identity()
    sales = OrderServices.get_sales(uid)
    return jsonify(count=len(sales), orders=sales), 200
コード例 #8
0
def track_order(tracking_number):
    """Este servicio permitirá conocer el estado de
    una compra a través del código de tracking."""
    uid = get_jwt_identity()
    order = OrderServices.track_order(uid, tracking_number)
    return jsonify(order), 200
コード例 #9
0
def test_get_purchases_if_no_orders_returns_empty_list(get_many_mock,
                                                       user_data):
    get_many_mock.return_value = []
    assert not OrderServices.get_purchases(user_data.uid)
コード例 #10
0
def test_new_order_if_order_units_are_negative_raises_validation_error(
        order_data, user_data):
    with pytest.raises(ValidationError):
        OrderServices.new_order(user_data.valid_user,
                                order_data.negative_units_input_order)
コード例 #11
0
def test_new_order_if_order_data_invalid_schema_raises_validation_error(
        order_data, user_data):
    with pytest.raises(ValidationError):
        OrderServices.new_order(user_data.valid_user,
                                order_data.invalid_input_order)
コード例 #12
0
def test_new_order_if_product_not_found_raises_not_found_error(
        get_by_id_mock, order_data, user_data):
    get_by_id_mock.return_value = None
    with pytest.raises(NotFoundError):
        OrderServices.new_order(user_data.valid_user,
                                order_data.valid_input_order)