@@ -541,6 +541,77 @@ def test_data(reqmock):
541541 assert type (quote ) == tradeapi .entity .Quote
542542 assert type (api_raw .get_last_quote ('AAPL' )) == dict
543543
544+ # Latest trade
545+ reqmock .get (
546+ 'https://data.alpaca.markets/v2/stocks/AAPL/trades/latest' ,
547+ text = '''
548+ {
549+ "symbol": "AAPL",
550+ "trade": {
551+ "t": "2021-04-20T12:40:34.123456789Z",
552+ "x": "J",
553+ "p": 134.7,
554+ "s": 20,
555+ "c": [
556+ "@",
557+ "T",
558+ "I"
559+ ],
560+ "i": 32,
561+ "z": "C"
562+ }
563+ }
564+ '''
565+ )
566+ latest_trade = api .get_latest_trade ('AAPL' )
567+ assert latest_trade .exchange == "J"
568+ assert latest_trade .price == 134.7
569+ assert latest_trade .size == 20
570+ assert latest_trade .conditions == ["@" , "T" , "I" ]
571+ assert latest_trade .id == 32
572+ assert latest_trade .tape == "C"
573+ assert latest_trade .timestamp .day == 20
574+ assert latest_trade .timestamp .second == 34
575+ assert latest_trade .timestamp .nanosecond == 789
576+ assert type (latest_trade ) == tradeapi .entity_v2 .TradeV2
577+ assert type (api_raw .get_latest_trade ('AAPL' )) == dict
578+
579+ # Latest quote
580+ reqmock .get (
581+ 'https://data.alpaca.markets/v2/stocks/AAPL/quotes/latest' ,
582+ text = '''
583+ {
584+ "symbol": "AAPL",
585+ "quote": {
586+ "t": "2021-04-20T13:01:57.123456789",
587+ "ax": "Q",
588+ "ap": 134.68,
589+ "as": 1,
590+ "bx": "K",
591+ "bp": 134.66,
592+ "bs": 29,
593+ "c": [
594+ "R"
595+ ],
596+ "z": "C"
597+ }
598+ }'''
599+ )
600+
601+ latest_quote = api .get_latest_quote ('AAPL' )
602+ assert latest_quote .ask_exchange == "Q"
603+ assert latest_quote .ask_price == 134.68
604+ assert latest_quote .ask_size == 1
605+ assert latest_quote .bid_exchange == "K"
606+ assert latest_quote .bid_price == 134.66
607+ assert latest_quote .bid_size == 29
608+ assert latest_quote .conditions == ["R" ]
609+ assert latest_quote .tape == "C"
610+ assert latest_quote .timestamp .day == 20
611+ assert latest_quote .timestamp .nanosecond == 789
612+ assert type (latest_quote ) == tradeapi .entity_v2 .QuoteV2
613+ assert type (api_raw .get_latest_quote ('AAPL' )) == dict
614+
544615
545616def test_watchlists (reqmock ):
546617 api = tradeapi .REST ('key-id' , 'secret-key' , api_version = 'v1' )
0 commit comments