Пример #1
0
def test_reservation_duration():
    start_time = datetime.utcnow()
    end_time = datetime.utcnow()
    customer_id = 5
    num_of_persons = 4
    comment = "This is a reservation for duration test"
    status = ReservationStatus.confirmed
    new_reservation = Reservation(start_time=start_time,
                                  end_time=end_time,
                                  customer_id=customer_id,
                                  num_of_persons=num_of_persons,
                                  comment=comment,
                                  status=status)
    assert new_reservation.duration() == end_time - start_time
Пример #2
0
    def post(self):
        """ Create new reservation """
        """
        @todo #434:30min Continue the implementation of CreateReservation. 
         Add authentication and refactor using CrudAPIView also edit and 
         delete methods for Reservations. Tests for these are skipped.
         Created reservation should be returned as a JSON object
        """
        form = ReservationForm(request.form)
        try:
            if form.validate():
                reservation = Reservation(
                    start_time=request.form["start_time"],
                    end_time=request.form["end_time"],
                    num_of_persons=request.form["num_of_persons"],
                    comment=request.form["comment"],
                    status=request.form["status"]
                )
                DB.session.add(reservation)
                DB.session.commit()
                return jsonify(status="success"), HTTPStatus.CREATED

            return jsonify(
                status="error",
                errors=form.errors
            ), HTTPStatus.BAD_REQUEST

        except Exception as error:
            return jsonify(
                status="error",
                errors=error
            ), HTTPStatus.BAD_REQUEST
Пример #3
0
def create():
    """ Create new reservation """
    """
    @todo #380:30min Continue. When we use the form.validate() function the
     status (enum: timeless/restaurants/models.py) is displaying the
     following error: 'status': ['Invalid Choice: could not coerce', 'Not a
     valid choice']. Removes the commented if to see the error. Also refactor
     the function using genericViews, as explained in puzzles #134 and #137.
    """
    form = ReservationForm(request.form)
    try:
        """if request.method == "POST" and form.validate():"""
        if request.method == "POST":
            reservation = Reservation(
                start_time=request.form["start_time"],
                end_time=request.form["end_time"],
                num_of_persons=request.form["num_of_persons"],
                comment=request.form["comment"],
                status=request.form["status"]
            )
            DB.session.add(reservation)
            DB.session.commit()
            return redirect(url_for("reservations.list"))
        else:
            flash("Error: ", form.errors)
    except Exception as error:
        flash("Error: ", error)

    return render_template("reservations/create_edit.html", error=form.errors,
                            action="create", form=form)
Пример #4
0
def test_delete_reservation(client, db_session):
    id = 1
    reservation = Reservation(id=id,
                              start_time=datetime.utcnow(),
                              end_time=datetime.utcnow(),
                              num_of_persons=2,
                              status=ReservationStatus.confirmed,
                              comment="test comment")
    db_session.add(reservation)
    db_session.commit()
    response = client.post(url_for('reservations.delete', id=id))
    assert response.location.endswith(
        url_for("reservations.list_reservations"))
    assert Reservation.query.filter_by(id=id).count() == 0
Пример #5
0
def test_edit():
    start_time = datetime.datetime
    end_time = datetime.datetime
    customer = Customer(id=1,
                        first_name="First",
                        last_name="Last",
                        phone_number="555")
    num_of_persons = 4
    comment = "My comment"
    status = 2
    new_reservation = Reservation(id=1,
                                  start_time=start_time,
                                  end_time=end_time,
                                  customer_id=customer.id,
                                  num_of_persons=num_of_persons,
                                  comment=comment,
                                  status=status)
    view = views.edit(id=new_reservation.id)
    assert "<h1>Reservation management - Edit</h1>" in view
Пример #6
0
def test_new_reservation():
    start_time = datetime.utcnow()
    end_time = datetime.utcnow()
    customer_id = 1
    num_of_persons = 4
    comment = "My comment"
    status = ReservationStatus.confirmed
    new_reservation = Reservation(start_time=start_time,
                                  end_time=end_time,
                                  customer_id=customer_id,
                                  num_of_persons=num_of_persons,
                                  comment=comment,
                                  status=status)
    assert (new_reservation.start_time == start_time
            and new_reservation.end_time == end_time
            and new_reservation.customer_id == customer_id
            and new_reservation.num_of_persons == num_of_persons
            and new_reservation.comment == comment
            and new_reservation.status == status)