mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 11:32:38 +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
|
||||
async def place_order(request, response, 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()
|
||||
form = request.form
|
||||
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 config as kconfig
|
||||
from copanier import create_token
|
||||
from copanier.models import Delivery, Person
|
||||
from copanier.models import Delivery, Person, Product
|
||||
|
||||
|
||||
def pytest_configure(config):
|
||||
|
@ -69,6 +69,7 @@ def delivery():
|
|||
from_date=datetime.now() + timedelta(days=10),
|
||||
to_date=datetime.now() + timedelta(days=10),
|
||||
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):
|
||||
delivery.products = []
|
||||
assert not delivery.products
|
||||
delivery.products.append(Product(name="Chocolat", ref="choco", price=10))
|
||||
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.hour == 20
|
||||
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