Place order: use session email if not email is provided

This commit is contained in:
Yohan Boniface 2019-03-24 16:55:49 +01:00
parent 3c46100dbc
commit 59783879b6
4 changed files with 20 additions and 2 deletions

View file

@ -250,7 +250,11 @@ async def signing_sheet(request, response, id):
@auth_required @auth_required
async def place_order(request, response, id): async def place_order(request, response, id):
delivery = Delivery.load(id) delivery = Delivery.load(id)
email = request.query.get("email") email = request.query.get("email", None)
if not email:
user = session.user.get(None)
if user:
email = user.email
order = Order() order = Order()
form = request.form form = request.form
for product in delivery.products: for product in delivery.products:

View file

@ -8,7 +8,7 @@ from roll.testing import Client as BaseClient
from copanier import app as copanier_app from copanier import app as copanier_app
from copanier import config as kconfig from copanier import config as kconfig
from copanier import create_token from copanier import create_token
from copanier.models import Delivery, Person from copanier.models import Delivery, Person, Product
def pytest_configure(config): def pytest_configure(config):
@ -69,6 +69,7 @@ def delivery():
from_date=datetime.now() + timedelta(days=10), from_date=datetime.now() + timedelta(days=10),
to_date=datetime.now() + timedelta(days=10), to_date=datetime.now() + timedelta(days=10),
order_before=datetime.now() + timedelta(days=7), order_before=datetime.now() + timedelta(days=7),
products=[Product(name="Lait", ref="123", price=1.5)],
) )

View file

@ -54,6 +54,7 @@ def test_can_create_delivery_with_products():
def test_can_add_product_to_delivery(delivery): def test_can_add_product_to_delivery(delivery):
delivery.products = []
assert not delivery.products assert not delivery.products
delivery.products.append(Product(name="Chocolat", ref="choco", price=10)) delivery.products.append(Product(name="Chocolat", ref="choco", price=10))
assert len(delivery.products) == 1 assert len(delivery.products) == 1

View file

@ -45,3 +45,15 @@ async def test_create_delivery(client):
assert delivery.to_date.year == 2019 assert delivery.to_date.year == 2019
assert delivery.to_date.hour == 20 assert delivery.to_date.hour == 20
assert delivery.to_date.minute == 0 assert delivery.to_date.minute == 0
async def test_place_order_with_session(client, delivery):
delivery.persist()
body = {
"123": "3",
}
resp = await client.post(f"/livraison/{delivery.id}/commander", body=body)
assert resp.status == 302
delivery = list(Delivery.all())[0]
assert delivery.orders["foo@bar.org"]
assert delivery.orders["foo@bar.org"].products["123"].wanted == 3