mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 19:42:37 +02:00
Place order: use session email if not email is provided
This commit is contained in:
parent
3c46100dbc
commit
59783879b6
4 changed files with 20 additions and 2 deletions
|
@ -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:
|
||||||
|
|
|
@ -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)],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue