Beispiel #1
0
    def test_sell(self, node_param):
        if node_param == "non_appbase":
            bts = self.bts
        else:
            bts = self.appbase
        bts.txbuffer.clear()
        m = Market(u'BEX:BBD', dpay_instance=bts)
        tx = m.sell(5, 0.1, account="test")
        self.assertEqual((tx["operations"][0][0]), "limit_order_create")
        op = tx["operations"][0][1]
        self.assertIn("test", op["owner"])
        self.assertEqual(str(Amount('0.500 BBD', dpay_instance=bts)),
                         op["min_to_receive"])
        self.assertEqual(str(Amount('0.100 BEX', dpay_instance=bts)),
                         op["amount_to_sell"])

        p = Price(5, u"BBD:BEX")
        tx = m.sell(p, 0.1, account="test")
        op = tx["operations"][0][1]
        self.assertEqual(str(Amount('0.500 BBD', dpay_instance=bts)),
                         op["min_to_receive"])
        self.assertEqual(str(Amount('0.100 BEX', dpay_instance=bts)),
                         op["amount_to_sell"])

        p = Price(5, u"BBD:BEX", dpay_instance=bts)
        a = Amount(0.1, "BEX", dpay_instance=bts)
        tx = m.sell(p, a, account="test")
        op = tx["operations"][0][1]
        self.assertEqual(str(Amount('0.500 BBD', dpay_instance=bts)),
                         op["min_to_receive"])
        self.assertEqual(str(Amount('0.100 BEX', dpay_instance=bts)),
                         op["amount_to_sell"])
Beispiel #2
0
    def test_ne(self):
        p1 = Price(10.0, "BEX/BBD")
        p2 = Price(5.0, "BEX/BBD")

        self.assertTrue(p1 != p2)
        self.assertTrue(p1 == p1)
        self.assertTrue(p1 != 5)
        self.assertTrue(p1 == 10)
Beispiel #3
0
    def test_leeq(self):
        p1 = Price(10.0, "BEX/BBD")
        p2 = Price(5.0, "BEX/BBD")

        self.assertTrue(p1 >= p2)
        self.assertTrue(p2 <= p1)
        self.assertTrue(p1 >= 5)
        self.assertTrue(p2 <= 10)
Beispiel #4
0
    def test_ltge(self):
        p1 = Price(10.0, "BEX/BBD")
        p2 = Price(5.0, "BEX/BBD")

        self.assertTrue(p1 > p2)
        self.assertTrue(p2 < p1)
        self.assertTrue(p1 > 5)
        self.assertTrue(p2 < 10)
Beispiel #5
0
    def test_div(self):
        p1 = Price(10.0, "BEX/BBD")
        p2 = Price(5.0, "BEX/VESTS")

        # 10 BEX/BBD / 5 BEX/VESTS = 2 VESTS/BBD
        p3 = p1 / p2
        p4 = p3.as_base("VESTS")
        self.assertEqual(p4["base"]["symbol"], "VESTS")
        self.assertEqual(p4["quote"]["symbol"], "BBD")
        # 10 BEX/BBD * 0.2 VESTS/BEX = 2 VESTS/BBD = 0.5 BBD/VESTS
        self.assertEqual(float(p4), 2)
Beispiel #6
0
    def test_div2(self):
        p1 = Price(10.0, "BEX/BBD")
        p2 = Price(5.0, "BEX/BBD")

        # 10 BEX/BBD / 5 BEX/VESTS = 2 VESTS/BBD
        p3 = p1 / p2
        self.assertTrue(isinstance(p3, (float, int)))
        self.assertEqual(float(p3), 2.0)
        p3 = p1 / 5
        self.assertEqual(float(p3), 2.0)
        p3 = p1 / Amount("1 BBD")
        self.assertEqual(float(p3), 0.1)
        p3 = p1
        p3 /= p2
        self.assertEqual(float(p3), 2.0)
        p3 = p1
        p3 /= 5
        self.assertEqual(float(p3), 2.0)
Beispiel #7
0
 def test_price(self, node_param):
     if node_param == "instance":
         set_shared_dpay_instance(self.bts)
         o = Price(10.0, "BEX/BBD")
         self.assertIn(o.dpay.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Price(10.0,
                   "BEX/BBD",
                   dpay_instance=DPay(node="https://abc.d",
                                      autoconnect=False,
                                      num_retries=1))
     else:
         set_shared_dpay_instance(
             DPay(node="https://abc.d", autoconnect=False, num_retries=1))
         stm = self.bts
         o = Price(10.0, "BEX/BBD", dpay_instance=stm)
         self.assertIn(o.dpay.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Price(10.0, "BEX/BBD")
Beispiel #8
0
    def test_multiplication(self):
        p1 = Price(10.0, "BEX/BBD")
        p2 = Price(5.0, "VESTS/BEX")
        p3 = p1 * p2
        p4 = p3.as_base("BBD")
        p4_2 = p3.as_quote("VESTS")

        self.assertEqual(p4["quote"]["symbol"], "VESTS")
        self.assertEqual(p4["base"]["symbol"], "BBD")
        # 10 BEX/BBD * 0.2 VESTS/BEX = 50 VESTS/BBD = 0.02 BBD/VESTS
        self.assertEqual(float(p4), 0.02)
        self.assertEqual(p4_2["quote"]["symbol"], "VESTS")
        self.assertEqual(p4_2["base"]["symbol"], "BBD")
        self.assertEqual(float(p4_2), 0.02)
        p3 = p1 * 5
        self.assertEqual(float(p3), 50)

        # Inline multiplication
        p5 = Price(10.0, "BEX/BBD")
        p5 *= p2
        p4 = p5.as_base("BBD")
        self.assertEqual(p4["quote"]["symbol"], "VESTS")
        self.assertEqual(p4["base"]["symbol"], "BBD")
        # 10 BEX/BBD * 0.2 VESTS/BEX = 2 VESTS/BBD = 0.02 BBD/VESTS
        self.assertEqual(float(p4), 0.02)
        p6 = Price(10.0, "BEX/BBD")
        p6 *= 5
        self.assertEqual(float(p6), 50)
Beispiel #9
0
    def test_init(self):
        # self.assertEqual(1, 1)

        Price("0.315 BEX/BBD")
        Price(1.0, "BEX/BBD")
        Price(0.315, base="BEX", quote="BBD")
        Price(0.315, base=Asset("BEX"), quote=Asset("BBD"))
        Price({
            "base": {
                "amount": 1,
                "asset_id": "BBD"
            },
            "quote": {
                "amount": 10,
                "asset_id": "BEX"
            }
        })
        Price("", quote="10 BBD", base="1 BEX")
        Price("10 BBD", "1 BEX")
        Price(Amount("10 BBD"), Amount("1 BEX"))