def get_tick_message(self, tick):
     meta = self.market_community.get_meta_message(
         u"ask" if isinstance(tick, Ask) else u"bid")
     return meta.impl(
         authentication=(self.market_community.my_member, ),
         distribution=(self.market_community.claim_global_time(), ),
         payload=tick.to_network() + (Ttl.default(), "127.0.0.1", 1234))
Beispiel #2
0
 def setUp(self):
     # Object creation
     self.offer_payload = OfferPayload.Implementation(
         MetaObject(), TraderId('0'), MessageNumber('message_number'),
         OrderNumber(1), Price(63400, 'BTC'), Quantity(30, 'MC'),
         Timeout(1470004447.117), Timestamp(1462224447.117), 'a', 'b',
         Ttl(2), "1.1.1.1", 1)
 def get_offer_sync(self, tick):
     meta = self.market_community.get_meta_message(u"offer-sync")
     candidate = Candidate(
         self.market_community.lookup_ip(TraderId(
             self.market_community.mid)), False)
     return meta.impl(
         authentication=(self.market_community.my_member, ),
         distribution=(self.market_community.claim_global_time(), ),
         destination=(candidate, ),
         payload=tick.to_network() + (Ttl(1), ) + ("127.0.0.1", 1234) +
         (isinstance(tick, Ask), ))
Beispiel #4
0
    def test_decode_payload(self):
        """
        Test decoding of a payload
        """
        message = MockObject()
        meta_msg = self.market_community.get_meta_message(u"ask")

        offer_payload = OfferPayload.Implementation(meta_msg, TraderId('abc'), MessageNumber('3'), OrderNumber(4),
                                                    Price(5, 'BTC'), Quantity(6, 'MC'), Timeout(3600), Timestamp.now(),
                                                    'a', 'b', Ttl(3), "1.2.3.4", 1234)
        message.payload = offer_payload

        packet = encode((3.14, 100))
        placeholder = self.get_placeholder_msg(u"ask")
        self.assertRaises(DropPacket, self.conversion._decode_payload, placeholder, 0, packet, [Price])
        self.assertRaises(DropPacket, self.conversion._decode_payload, placeholder, 0, "a2zz", [Price])
Beispiel #5
0
    def test_encode_decode_offer(self):
        """
        Test encoding and decoding of an offer
        """
        message = MockObject()
        meta_msg = self.market_community.get_meta_message(u"ask")

        offer_payload = OfferPayload.Implementation(meta_msg, TraderId('abc'), MessageNumber('3'), OrderNumber(4),
                                                    Price(5, 'BTC'), Quantity(6, 'MC'), Timeout(3600), Timestamp.now(),
                                                    'a', 'b', Ttl(3), "1.2.3.4", 1234)
        message.payload = offer_payload
        packet, = self.conversion._encode_offer(message)
        self.assertTrue(packet)

        _, decoded = self.conversion._decode_offer(self.get_placeholder_msg(u"ask"), 0, packet)

        self.assertTrue(decoded)
        self.assertEqual(decoded.price, Price(5, 'BTC'))
        self.assertEqual(int(decoded.ttl), 3)
Beispiel #6
0
class TtlTestSuite(unittest.TestCase):
    """Ttl test cases."""
    def setUp(self):
        # Object creation
        self.ttl = Ttl(0)
        self.ttl2 = Ttl(2)
        self.ttl3 = Ttl(2)
        self.ttl4 = Ttl(1)

    def test_init(self):
        # Test for init validation
        with self.assertRaises(ValueError):
            Ttl(-100)
        with self.assertRaises(ValueError):
            Ttl('1')

    def test_default(self):
        # Test for default init
        self.assertEqual(2, int(Ttl.default()))

    def test_conversion(self):
        # Test for conversions
        self.assertEqual(0, int(self.ttl))
        self.assertEqual(2, int(self.ttl2))

    def test_make_hop(self):
        # Test for make hop
        self.assertEqual(2, int(self.ttl2))
        self.ttl2.make_hop()
        self.assertEqual(1, int(self.ttl2))

    def test_is_alive(self):
        # Test for is alive
        self.assertTrue(self.ttl4.is_alive())
        self.ttl4.make_hop()
        self.assertFalse(self.ttl4.is_alive())
Beispiel #7
0
    def test_encode_decode_cancel_order(self):
        """
        Test encoding and decoding of a cancel order
        """
        message = MockObject()
        meta_msg = self.market_community.get_meta_message(u"cancel-order")

        cancel_order_payload = CancelOrderPayload.Implementation(meta_msg, TraderId('abc'), MessageNumber('3'),
                                                                 Timestamp.now(), OrderNumber(4), Ttl(2))
        message.payload = cancel_order_payload
        packet, = self.conversion._encode_cancel_order(message)
        self.assertTrue(packet)

        _, decoded = self.conversion._decode_cancel_order(self.get_placeholder_msg(u"cancel-order"), 0, packet)

        self.assertTrue(decoded)
        self.assertEqual(decoded.order_number, OrderNumber(4))
        self.assertEqual(int(decoded.ttl), 2)
Beispiel #8
0
 def setUp(self):
     # Object creation
     self.cancel_order_payload = CancelOrderPayload.Implementation(
         MetaObject(), TraderId('0'), MessageNumber('message_number'),
         Timestamp.now(), OrderNumber(1), Ttl(2))
Beispiel #9
0
 def setUp(self):
     # Object creation
     self.ttl = Ttl(0)
     self.ttl2 = Ttl(2)
     self.ttl3 = Ttl(2)
     self.ttl4 = Ttl(1)
Beispiel #10
0
 def test_default(self):
     # Test for default init
     self.assertEqual(2, int(Ttl.default()))
Beispiel #11
0
 def test_init(self):
     # Test for init validation
     with self.assertRaises(ValueError):
         Ttl(-100)
     with self.assertRaises(ValueError):
         Ttl('1')