def test_delete_bid_calls_market_method_and_publishes_response(self):
        bid = Bid("b_id", now(), 32, 12, "b_buyer", "b_seller")
        payload = {"data": json.dumps({
                "bid": bid.to_json_string(),
                "transaction_uuid": "trans_id"
            })
        }

        self.market.delete_bid = MagicMock(return_value=bid)
        self.subscriber._delete_bid(payload)
        sleep(.3)
        self.subscriber.market.delete_bid.assert_called_once()
        self.subscriber.redis_db.publish.assert_called_once_with(
            "id/DELETE_BID/RESPONSE",
            json.dumps({"status": "ready", "transaction_uuid": "trans_id"})
        )
 def test_bid_calls_market_method_and_publishes_response(self):
     payload = {"data": json.dumps({
             "buyer": "mykonos",
             "energy": 12,
             "price": 32,
             "transaction_uuid": "trans_id"
         })
     }
     bid = Bid("b_id", now(), 32, 12, "b_buyer", "b_seller")
     self.market.bid = MagicMock(return_value=bid)
     self.subscriber._bid(payload)
     sleep(.3)
     self.subscriber.market.bid.assert_called_once_with(
         buyer="mykonos", energy=12, price=32
     )
     self.subscriber.redis_db.publish.assert_called_once_with(
         "id/BID/RESPONSE", json.dumps({
             "status": "ready", "bid": bid.to_json_string(), "transaction_uuid": "trans_id"
         })
     )
 def test_accept_bid_calls_market_method_and_publishes_response(self):
     bid = Bid("b_id", now(), 12, 13, "b_buyer")
     payload = {"data": json.dumps({
             "seller": "mykonos",
             "energy": 12,
             "bid": bid.to_json_string(),
             "transaction_uuid": "trans_id"
         })
     }
     trade = Trade(id="trade_id", time=now(), offer_bid=bid,
                   seller="trade_seller", buyer="trade_buyer")
     self.market.accept_bid = MagicMock(return_value=trade)
     self.subscriber._accept_bid(payload)
     sleep(.3)
     self.subscriber.market.accept_bid.assert_called_once()
     self.subscriber.redis_db.publish.assert_called_once_with(
         "id/ACCEPT_BID/RESPONSE", json.dumps({
             "status": "ready", "trade": trade.to_json_string(),
             "transaction_uuid": "trans_id"
         })
     )