53 lines
1.4 KiB
Python
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"
|