lemon_markets_case_study/tests/database_test.py

53 lines
1.4 KiB
Python

from datetime import datetime
import app.database as database
from app.types import Order, OrderSide, OrderType
def test_store_order(db_connection):
order = Order(
id="",
created_at=datetime.now(),
side=OrderSide.BUY,
type=OrderType.LIMIT,
instrument="123456789123",
limit_price=123.00,
quantity=1,
)
database.insert_order(db_connection, order)
record = db_connection.execute(
"SELECT * FROM orders where id = :id", {"id": order.id_}
).fetchone()
assert record[0] == order.id_
assert record[1] == order.side.value
assert record[2] == order.type_.value
assert record[3] == order.instrument
assert record[4] == str(order.limit_price)
assert record[5] == order.quantity
assert record[6] == order.created_at
assert record[7] == "pending"
def test_mark_order_as(db_connection):
order = Order(
id="",
created_at=datetime.now(),
side=OrderSide.BUY,
type=OrderType.LIMIT,
instrument="123456789123",
limit_price=123.00,
quantity=1,
)
database.insert_order(db_connection, order)
database.mark_order_as(db_connection, order.id_, "failed")
record = db_connection.execute(
"SELECT status FROM orders where id = :id", {"id": order.id_}
).fetchone()
assert record[0] == "failed"