@@ -15,17 +15,16 @@ def account(session):
1515 return Account .get_accounts (session )[0 ]
1616
1717
18- @pytest .fixture ( scope = 'session' )
18+ @pytest .fixture
1919def cert_session (get_cert_credentials ):
2020 usr , pwd = get_cert_credentials
2121 session = CertificationSession (usr , pwd )
2222 yield session
2323 session .destroy ()
2424
2525
26- @pytest .fixture (scope = 'session' )
27- def cert_account (cert_session ):
28- return Account .get_account (cert_session , '5WZ97189' )
26+ def test_cert_accounts (cert_session ):
27+ assert Account .get_accounts (cert_session ) != []
2928
3029
3130def test_get_account (session , account ):
@@ -75,14 +74,14 @@ def test_get_effective_margin_requirements(session, account):
7574
7675@pytest .fixture (scope = 'session' )
7776def new_order (session ):
78- symbol = Equity .get_equity (session , 'SPY ' )
77+ symbol = Equity .get_equity (session , 'NVDA ' )
7978 leg = symbol .build_leg (Decimal (1 ), OrderAction .BUY_TO_OPEN )
8079
8180 return NewOrder (
8281 time_in_force = OrderTimeInForce .DAY ,
8382 order_type = OrderType .LIMIT ,
8483 legs = [leg ],
85- price = Decimal (42 ), # if this fills the US has crumbled
84+ price = Decimal (10 ), # if this fills the US has crumbled
8685 price_effect = PriceEffect .DEBIT
8786 )
8887
@@ -104,7 +103,7 @@ def test_get_order(session, account, placed_order):
104103
105104def test_replace_and_delete_order (session , account , new_order , placed_order ):
106105 modified_order = new_order .model_copy ()
107- modified_order .price = Decimal (40 )
106+ modified_order .price = Decimal (11 )
108107 replaced = account .replace_order (session , placed_order .id , modified_order )
109108 sleep (3 )
110109 account .delete_order (session , replaced .id )
@@ -114,25 +113,17 @@ def test_get_order_history(session, account):
114113 account .get_order_history (session , page_offset = 0 )
115114
116115
116+ def test_get_complex_order_history (session , account ):
117+ account .get_complex_order_history (session , page_offset = 0 )
118+
119+
117120def test_get_live_orders (session , account ):
118121 account .get_live_orders (session )
119122
120123
121- def test_place_oco_order (cert_session , cert_account ):
122- session = cert_session
123- account = cert_account
124- # first, buy share of SPY to set up the OCO order
125- symbol = Equity .get_equity (session , 'SPY' )
126- opening = symbol .build_leg (Decimal (1 ), OrderAction .BUY_TO_OPEN )
127- resp1 = account .place_order (session , NewOrder (
128- time_in_force = OrderTimeInForce .DAY ,
129- order_type = OrderType .LIMIT ,
130- legs = [opening ],
131- price = Decimal ('2.5' ), # should fill immediately for cert account
132- price_effect = PriceEffect .DEBIT
133- ), dry_run = False )
134- assert resp1 .order .status != OrderStatus .REJECTED
135-
124+ def test_place_oco_order (session , account ):
125+ # account must have a share of NVDA for this to work
126+ symbol = Equity .get_equity (session , 'NVDA' )
136127 closing = symbol .build_leg (Decimal (1 ), OrderAction .SELL_TO_CLOSE )
137128 oco = NewComplexOrder (
138129 orders = [
@@ -159,9 +150,7 @@ def test_place_oco_order(cert_session, cert_account):
159150 account .delete_complex_order (session , resp2 .complex_order .id )
160151
161152
162- def test_place_otoco_order (cert_session , cert_account ):
163- session = cert_session
164- account = cert_account
153+ def test_place_otoco_order (session , account ):
165154 symbol = Equity .get_equity (session , 'AAPL' )
166155 opening = symbol .build_leg (Decimal (1 ), OrderAction .BUY_TO_OPEN )
167156 closing = symbol .build_leg (Decimal (1 ), OrderAction .SELL_TO_CLOSE )
@@ -170,15 +159,15 @@ def test_place_otoco_order(cert_session, cert_account):
170159 time_in_force = OrderTimeInForce .DAY ,
171160 order_type = OrderType .LIMIT ,
172161 legs = [opening ],
173- price = Decimal ('250 ' ), # won't fill
162+ price = Decimal ('100 ' ), # won't fill
174163 price_effect = PriceEffect .DEBIT
175164 ),
176165 orders = [
177166 NewOrder (
178167 time_in_force = OrderTimeInForce .GTC ,
179168 order_type = OrderType .LIMIT ,
180169 legs = [closing ],
181- price = Decimal ('2500 ' ), # won't fill
170+ price = Decimal ('400 ' ), # won't fill
182171 price_effect = PriceEffect .CREDIT
183172 ),
184173 NewOrder (
@@ -193,3 +182,8 @@ def test_place_otoco_order(cert_session, cert_account):
193182 resp = account .place_complex_order (session , otoco , dry_run = False )
194183 sleep (3 )
195184 account .delete_complex_order (session , resp .complex_order .id )
185+
186+
187+ def test_get_live_complex_orders (session , account ):
188+ orders = account .get_live_complex_orders (session )
189+ assert orders != []
0 commit comments