def setUp(self): # Object creation self.transaction_id = TransactionId(b'a' * 32) self.transaction = Transaction( self.transaction_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), OrderId(TraderId(b'0' * 20), OrderNumber(2)), OrderId(TraderId(b'1' * 20), OrderNumber(1)), Timestamp(0)) self.proposed_trade = Trade.propose( TraderId(b'0' * 20), OrderId(TraderId(b'0' * 20), OrderNumber(2)), OrderId(TraderId(b'1' * 20), OrderNumber(3)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), Timestamp(0)) self.tick = Tick( OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(5, 'BTC'), AssetAmount(5, 'MC')), Timeout(0), Timestamp(00), True) self.tick2 = Tick( OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(500, 'BTC'), AssetAmount(5, 'MC')), Timeout(0), Timestamp(0), True) self.order_timestamp = Timestamp.now() self.order = Order( OrderId(TraderId(b'0' * 20), OrderNumber(3)), AssetPair(AssetAmount(50, 'BTC'), AssetAmount(40, 'MC')), Timeout(5000), self.order_timestamp, False) self.order.set_verified() self.order2 = Order( OrderId(TraderId(b'0' * 20), OrderNumber(4)), AssetPair(AssetAmount(50, 'BTC'), AssetAmount(10, 'MC')), Timeout(5), Timestamp(int(time.time() * 1000) - 1000 * 1000), True) self.order2.set_verified()
def setUp(self): yield super(MatchingEngineTestSuite, self).setUp() # Object creation self.ask = Ask( OrderId(TraderId(b'2' * 20), OrderNumber(1)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now()) self.bid = Bid( OrderId(TraderId(b'4' * 20), OrderNumber(2)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now()) self.ask_order = Order( OrderId(TraderId(b'5' * 20), OrderNumber(3)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now(), True) self.bid_order = Order( OrderId(TraderId(b'6' * 20), OrderNumber(4)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now(), False) self.order_book = OrderBook() self.matching_engine = MatchingEngine( PriceTimeStrategy(self.order_book)) self.ask_count = 2 self.bid_count = 2
async def setUp(self): super(TestDatabase, self).setUp() path = os.path.join(self.getStateDir(), 'sqlite') if not os.path.exists(path): os.makedirs(path) self.database = MarketDB(self.getStateDir(), 'market') self.order_id1 = OrderId(TraderId(b'3' * 20), OrderNumber(4)) self.order_id2 = OrderId(TraderId(b'4' * 20), OrderNumber(5)) self.order1 = Order( self.order_id1, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), True) self.order2 = Order( self.order_id2, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), False) self.order2.reserve_quantity_for_tick( OrderId(TraderId(b'3' * 20), OrderNumber(4)), 3) self.transaction_id1 = TransactionId(b'a' * 32) self.transaction1 = Transaction( self.transaction_id1, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), OrderId(TraderId(b'0' * 20), OrderNumber(1)), OrderId(TraderId(b'1' * 20), OrderNumber(2)), Timestamp(20000)) self.payment1 = Payment(TraderId(b'0' * 20), self.transaction_id1, AssetAmount(5, 'BTC'), WalletAddress('abc'), WalletAddress('def'), PaymentId("abc"), Timestamp(20000)) self.transaction1.add_payment(self.payment1)
def get_tx_done_block(ask_amount, bid_amount, traded_amount, ask_total_traded, bid_total_traded): ask_pair = AssetPair(AssetAmount(ask_amount, 'BTC'), AssetAmount(ask_amount, 'MB')) bid_pair = AssetPair(AssetAmount(bid_amount, 'BTC'), AssetAmount(bid_amount, 'MB')) ask = Order(OrderId(TraderId(b'0' * 20), OrderNumber(1)), ask_pair, Timeout(3600), Timestamp.now(), True) ask._traded_quantity = ask_total_traded bid = Order(OrderId(TraderId(b'1' * 20), OrderNumber(1)), bid_pair, Timeout(3600), Timestamp.now(), False) bid._traded_quantity = bid_total_traded tx = Transaction( TransactionId(TraderId(b'0' * 20), TransactionNumber(1)), AssetPair(AssetAmount(traded_amount, 'BTC'), AssetAmount(traded_amount, 'MB')), OrderId(TraderId(b'0' * 20), OrderNumber(1)), OrderId(TraderId(b'1' * 20), OrderNumber(1)), Timestamp(0)) tx.transferred_assets.first += AssetAmount(traded_amount, 'BTC') tx.transferred_assets.second += AssetAmount(traded_amount, 'MB') tx_done_block = MarketBlock() tx_done_block.type = b'tx_done' tx_done_block.transaction = { 'ask': ask.to_status_dictionary(), 'bid': bid.to_status_dictionary(), 'tx': tx.to_dictionary(), 'version': MarketCommunity.PROTOCOL_VERSION } tx_done_block.transaction['ask']['address'], tx_done_block.transaction[ 'ask']['port'] = "1.1.1.1", 1234 tx_done_block.transaction['bid']['address'], tx_done_block.transaction[ 'bid']['port'] = "1.1.1.1", 1234 return tx_done_block
def setUp(self): # Object creation self.memory_order_repository = MemoryOrderRepository(b'0' * 20) self.order_id = OrderId(TraderId(b'0' * 20), OrderNumber(1)) self.order = Order(self.order_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), Timeout(0), Timestamp(10), False) self.order2 = Order(self.order_id, AssetPair(AssetAmount(1000, 'BTC'), AssetAmount(30, 'MC')), Timeout(0), Timestamp(10), False)
def setUp(self): order_id = OrderId(TraderId(b'3' * 20), OrderNumber(1)) self.ask_order = Order( order_id, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), True) self.bid_order = Order( order_id, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), False) self.queue = MatchPriorityQueue(self.ask_order)
def setUp(self): # Object creation self.tick = Tick(OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now(), True) self.tick2 = Tick(OrderId(TraderId(b'1' * 20), OrderNumber(2)), AssetPair(AssetAmount(120, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now(), True) self.side = Side()
def setUp(self): BaseTestCase.setUp(self) self.ask = Ask( OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0), True) self.bid = Ask( OrderId(TraderId(b'1' * 20), OrderNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0), False) self.transaction = Transaction( TransactionId(TraderId(b'0' * 20), TransactionNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), OrderId(TraderId(b'0' * 20), OrderNumber(1)), OrderId(TraderId(b'1' * 20), OrderNumber(1)), Timestamp(0)) ask_tx = self.ask.to_block_dict() bid_tx = self.bid.to_block_dict() self.tick_block = MarketBlock() self.tick_block.type = b'ask' self.tick_block.transaction = {'tick': ask_tx} self.cancel_block = MarketBlock() self.cancel_block.type = b'cancel_order' self.cancel_block.transaction = { 'trader_id': 'a' * 20, 'order_number': 1 } self.tx_block = MarketBlock() self.tx_block.type = b'tx_init' self.tx_block.transaction = { 'ask': ask_tx, 'bid': bid_tx, 'tx': self.transaction.to_dictionary() } payment = { 'trader_id': 'a' * 40, 'transaction_number': 3, 'transferred': { 'amount': 3, 'type': 'BTC' }, 'payment_id': 'a', 'address_from': 'a', 'address_to': 'b', 'timestamp': 1234, 'success': True } self.payment_block = MarketBlock() self.payment_block.type = b'tx_payment' self.payment_block.transaction = {'payment': payment}
def setUp(self): yield super(TickEntryTestSuite, self).setUp() # Object creation tick = Tick(OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0), True) tick2 = Tick(OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(63400, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now(), True) self.price_level = PriceLevel(Price(100, 1, 'MB', 'BTC')) self.tick_entry = TickEntry(tick, self.price_level) self.tick_entry2 = TickEntry(tick2, self.price_level)
def update_ticks(self, ask_order_dict, bid_order_dict, traded_quantity): """ Update ticks according to a TrustChain block containing the status of the ask/bid orders. :type ask_order_dict: dict :type bid_order_dict: dict :type traded_quantity: int """ ask_order_id = OrderId(TraderId(unhexlify(ask_order_dict["trader_id"])), OrderNumber(ask_order_dict["order_number"])) bid_order_id = OrderId(TraderId(unhexlify(bid_order_dict["trader_id"])), OrderNumber(bid_order_dict["order_number"])) self._logger.debug("Updating ticks in order book: %s and %s (traded quantity: %s)", str(ask_order_id), str(bid_order_id), str(traded_quantity)) # Update ask tick ask_exists = self.tick_exists(ask_order_id) if ask_exists and ask_order_dict["traded"] >= self.get_tick(ask_order_id).traded: tick = self.get_tick(ask_order_id) tick.traded = ask_order_dict["traded"] if tick.traded >= tick.assets.first.amount: self.remove_tick(tick.order_id) self.completed_orders.add(tick.order_id) elif not ask_exists and ask_order_dict["traded"] < ask_order_dict["assets"]["first"]["amount"] and \ ask_order_id not in self.completed_orders: new_pair = AssetPair.from_dictionary(ask_order_dict["assets"]) ask = Ask(ask_order_id, new_pair, Timeout(ask_order_dict["timeout"]), Timestamp(ask_order_dict["timestamp"]), traded=ask_order_dict["traded"]) self.insert_ask(ask) elif not ask_exists and ask_order_dict["traded"] >= ask_order_dict["assets"]["first"]["amount"]: self.completed_orders.add(ask_order_id) # Update bid tick bid_exists = self.tick_exists(bid_order_id) if bid_exists and bid_order_dict["traded"] >= self.get_tick(bid_order_id).traded: tick = self.get_tick(bid_order_id) tick.traded = bid_order_dict["traded"] if tick.traded >= tick.assets.first.amount: self.remove_tick(tick.order_id) self.completed_orders.add(tick.order_id) elif not bid_exists and bid_order_dict["traded"] < bid_order_dict["assets"]["first"]["amount"] and \ bid_order_id not in self.completed_orders: new_pair = AssetPair.from_dictionary(bid_order_dict["assets"]) bid = Bid(bid_order_id, new_pair, Timeout(bid_order_dict["timeout"]), Timestamp(bid_order_dict["timestamp"]), traded=bid_order_dict["traded"]) self.insert_bid(bid) elif not bid_exists and bid_order_dict["traded"] >= bid_order_dict["assets"]["first"]["amount"]: self.completed_orders.add(bid_order_id)
def setUp(self): # Object creation tick = Tick(OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MC')), Timeout(100), Timestamp.now(), True) tick2 = Tick(OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MC')), Timeout(100), Timestamp.now(), True) self.price_level = PriceLevel(Price(50, 5, 'MC', 'BTC')) self.tick_entry1 = TickEntry(tick, self.price_level) self.tick_entry2 = TickEntry(tick, self.price_level) self.tick_entry3 = TickEntry(tick, self.price_level) self.tick_entry4 = TickEntry(tick, self.price_level) self.tick_entry5 = TickEntry(tick2, self.price_level)
async def tick_entry2(price_level): tick = Tick(OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(63400, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now(), True) tick_entry = TickEntry(tick, price_level) yield tick_entry await tick_entry.shutdown_task_manager()
def test_status(self): """ Test the status of an order """ self.order._verified = False self.assertEqual(self.order.status, "unverified") self.order.set_verified() self.assertEqual(self.order.status, "open") self.order._timeout = Timeout(0) self.assertEqual(self.order.status, "expired") self.order._timeout = Timeout(3600) self.order._traded_quantity = self.order.assets.first.amount self.order._received_quantity = self.order.assets.second.amount self.assertEqual(self.order.status, "completed") self.order._cancelled = True self.assertEqual(self.order.status, "cancelled")
def from_unpack_list(cls, trader_id, timestamp, order_number, asset1_amount, asset1_type, asset2_amount, asset2_type, timeout, traded, recipient_order_number, match_trader_id, matchmaker_trader_id): return MatchPayload(TraderId(trader_id), Timestamp(timestamp), OrderNumber(order_number), AssetPair(AssetAmount(asset1_amount, asset1_type.decode('utf-8')), AssetAmount(asset2_amount, asset2_type.decode('utf-8'))), Timeout(timeout), traded, OrderNumber(recipient_order_number), TraderId(match_trader_id), TraderId(matchmaker_trader_id))
def test_has_acceptable_price(self): """ Test the acceptable price method """ order = Order(OrderId(TraderId(b'0' * 20), OrderNumber(3)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timeout(5000), self.order_timestamp, True) pair = AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')) self.assertTrue(order.has_acceptable_price(pair)) pair = AssetPair(AssetAmount(60, 'BTC'), AssetAmount(15, 'MB')) self.assertFalse(order.has_acceptable_price(pair)) pair = AssetPair(AssetAmount(60, 'BTC'), AssetAmount(60, 'MB')) self.assertTrue(order.has_acceptable_price(pair)) order._is_ask = False pair = AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')) self.assertTrue(order.has_acceptable_price(pair)) pair = AssetPair(AssetAmount(60, 'BTC'), AssetAmount(15, 'MB')) self.assertTrue(order.has_acceptable_price(pair)) pair = AssetPair(AssetAmount(60, 'BTC'), AssetAmount(60, 'MB')) self.assertFalse(order.has_acceptable_price(pair))
def from_database(cls, data, reserved_ticks): """ Create an Order object based on information in the database. """ (trader_id, order_number, asset1_amount, asset1_type, asset2_amount, asset2_type, traded_quantity, timeout, order_timestamp, completed_timestamp, is_ask, cancelled, verified) = data order_id = OrderId(TraderId(bytes(trader_id)), OrderNumber(order_number)) order = cls( order_id, AssetPair(AssetAmount(asset1_amount, str(asset1_type)), AssetAmount(asset2_amount, str(asset2_type))), Timeout(timeout), Timestamp(order_timestamp), bool(is_ask)) order._traded_quantity = traded_quantity order._cancelled = bool(cancelled) order._verified = verified if completed_timestamp: order._completed_timestamp = Timestamp(completed_timestamp) for reserved_order_id, quantity in reserved_ticks: order.reserved_ticks[reserved_order_id] = quantity order._reserved_quantity += quantity return order
def order2(): order_id2 = OrderId(TraderId(b'4' * 20), OrderNumber(5)) order2 = Order(order_id2, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), False) order2.reserve_quantity_for_tick( OrderId(TraderId(b'3' * 20), OrderNumber(4)), 3) return order2
def test_match_order_divided(order_book, strategy, ask): """ Test for match order divided over two ticks """ order_book.insert_ask(ask) ask2 = Ask(OrderId(TraderId(b'1' * 20), OrderNumber(2)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) bid_order2 = Order( OrderId(TraderId(b'9' * 20), OrderNumber(14)), AssetPair(AssetAmount(6000, 'BTC'), AssetAmount(60, 'MB')), Timeout(100), Timestamp.now(), False) order_book.insert_ask(ask2) matching_ticks = strategy.match(bid_order2.order_id, bid_order2.price, bid_order2.available_quantity, False) assert len(matching_ticks) == 2
def from_unpack_list(cls, trader_id, timestamp, order_number, asset1_amount, asset1_type, asset2_amount, asset2_type, timeout, traded, identifier): return OrderStatusResponsePayload( TraderId(trader_id), Timestamp(timestamp), OrderNumber(order_number), AssetPair(AssetAmount(asset1_amount, asset1_type.decode('utf-8')), AssetAmount(asset2_amount, asset2_type.decode('utf-8'))), Timeout(timeout), traded, identifier)
def get_tick_block(return_ask, pair): tick_cls = Ask if return_ask else Bid ask = tick_cls(OrderId(TraderId(b'0' * 20), OrderNumber(1)), pair, Timeout(3600), Timestamp.now(), return_ask) ask_tx = ask.to_block_dict() ask_tx["address"], ask_tx["port"] = "127.0.0.1", 1337 tick_block = MarketBlock() tick_block.type = b'ask' if return_ask else b'bid' tick_block.transaction = {'tick': ask_tx, 'version': MarketCommunity.PROTOCOL_VERSION} return tick_block
def setUp(self): # Object creation self.timestamp_now = Timestamp.now() self.tick = Tick( OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0), True) self.tick2 = Tick( OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0), False) self.order_ask = Order( OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0), True) self.order_bid = Order( OrderId(TraderId(b'0' * 20), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0), False)
def create_ask(self, amount1, amount2): """ Create an ask with a specific price and quantity """ new_ask = Ask( OrderId(TraderId(b'2' * 20), OrderNumber(self.ask_count)), AssetPair(AssetAmount(amount1, 'BTC'), AssetAmount(amount2, 'MB')), Timeout(30), Timestamp.now()) self.ask_count += 1 return new_ask
def create_bid(self, amount1, amount2): """ Create a bid with a specific price and quantity """ new_bid = Bid( OrderId(TraderId(b'3' * 20), OrderNumber(self.bid_count)), AssetPair(AssetAmount(amount1, 'BTC'), AssetAmount(amount2, 'MB')), Timeout(30), Timestamp.now()) self.bid_count += 1 return new_bid
def test_match_order_other_price(order_book, strategy, bid_order): """ Test whether two ticks with different price types are not matched """ ask = Ask(OrderId(TraderId(b'1' * 20), OrderNumber(4)), AssetPair(AssetAmount(3000, 'A'), AssetAmount(3000, 'MB')), Timeout(100), Timestamp.now()) order_book.insert_ask(ask) assert not strategy.match(bid_order.order_id, bid_order.price, bid_order.available_quantity, False)
async def test_cancel_order_not_found(self): """ Test whether a 404 is returned when we try to cancel an order that does not exist """ self.nodes[0].overlay.order_manager.create_ask_order( AssetPair(AssetAmount(3, 'DUM1'), AssetAmount(4, 'DUM2')), Timeout(3600)) self.should_check_equality = False await self.do_request('orders/1234/cancel', request_type='POST', expected_code=404)
async def test_cancel_order_not_found(self): """ Test whether a 404 is returned when we try to cancel an order that does not exist """ self.nodes[0].get_overlay( MarketCommunity).order_manager.create_ask_order( AssetPair(AssetAmount(3, 'DUM1'), AssetAmount(4, 'DUM2')), Timeout(3600)) await self.make_request(self.nodes[0], 'orders/1234/cancel', 'POST', expected_status=404)
async def setUp(self): super(AbstractTestOrderBook, self).setUp() # Object creation self.ask = Ask(OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.invalid_ask = Ask(OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0)) self.ask2 = Ask(OrderId(TraderId(b'1' * 20), OrderNumber(1)), AssetPair(AssetAmount(400, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.bid = Bid(OrderId(TraderId(b'2' * 20), OrderNumber(1)), AssetPair(AssetAmount(200, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.invalid_bid = Bid(OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0)) self.bid2 = Bid(OrderId(TraderId(b'3' * 20), OrderNumber(1)), AssetPair(AssetAmount(300, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.trade = Trade.propose(TraderId(b'0' * 20), OrderId(TraderId(b'0' * 20), OrderNumber(1)), OrderId(TraderId(b'0' * 20), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447117)) self.order_book = OrderBook()
async def test_cancel_order_invalid(self): """ Test whether an error is returned when we try to cancel an order that has expired """ order = self.market_community.order_manager.create_ask_order( AssetPair(AssetAmount(3, 'DUM1'), AssetAmount(4, 'DUM2')), Timeout(0)) order.set_verified() self.market_community.order_manager.order_repository.update(order) await self.make_request(self.nodes[0], 'orders/1/cancel', 'POST', expected_status=400)
async def test_cancel_order_invalid(self): """ Test whether an error is returned when we try to cancel an order that has expired """ order = self.nodes[0].overlay.order_manager.create_ask_order( AssetPair(AssetAmount(3, 'DUM1'), AssetAmount(4, 'DUM2')), Timeout(0)) order.set_verified() self.nodes[0].overlay.order_manager.order_repository.update(order) self.should_check_equality = False await self.do_request('orders/1/cancel', request_type='POST', expected_code=400)
async def test_get_orders(self): """ Test whether the API returns the right orders when we perform a request """ self.nodes[0].overlay.order_manager.create_ask_order( AssetPair(AssetAmount(3, 'DUM1'), AssetAmount(4, 'DUM2')), Timeout(3600)) self.should_check_equality = False json_response = await self.do_request('orders', expected_code=200) self.assertIn('orders', json_response) self.assertEqual(len(json_response['orders']), 1)