MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / test_clone

Method test_clone

projects/Python/tests/test_clone.py:8–48  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

6class TestClone(TestCase):
7
8 def test_clone(self):
9 # Create a new account with some orders
10 account1 = proto.Account(1, "Test", proto.State.good, proto.Balance("USD", 1000.0), proto.Balance("EUR", 100.0))
11 account1.orders.append(proto.Order(1, "EURUSD", proto.OrderSide.buy, proto.OrderType.market, 1.23456, 1000.0))
12 account1.orders.append(proto.Order(2, "EURUSD", proto.OrderSide.sell, proto.OrderType.limit, 1.0, 100.0))
13 account1.orders.append(proto.Order(3, "EURUSD", proto.OrderSide.buy, proto.OrderType.stop, 1.5, 10.0))
14
15 # Clone the account
16 account2 = account1.clone()
17
18 # Clear the source account
19 # noinspection PyUnusedLocal
20 account1 = proto.Account()
21
22 self.assertEqual(account2.id, 1)
23 self.assertEqual(account2.name, "Test")
24 self.assertTrue(account2.state.has_flags(proto.State.good))
25 self.assertEqual(account2.wallet.currency, "USD")
26 self.assertEqual(account2.wallet.amount, 1000.0)
27 self.assertNotEqual(account2.asset, None)
28 self.assertEqual(account2.asset.currency, "EUR")
29 self.assertEqual(account2.asset.amount, 100.0)
30 self.assertEqual(len(account2.orders), 3)
31 self.assertEqual(account2.orders[0].id, 1)
32 self.assertEqual(account2.orders[0].symbol, "EURUSD")
33 self.assertEqual(account2.orders[0].side, proto.OrderSide.buy)
34 self.assertEqual(account2.orders[0].type, proto.OrderType.market)
35 self.assertEqual(account2.orders[0].price, 1.23456)
36 self.assertEqual(account2.orders[0].volume, 1000.0)
37 self.assertEqual(account2.orders[1].id, 2)
38 self.assertEqual(account2.orders[1].symbol, "EURUSD")
39 self.assertEqual(account2.orders[1].side, proto.OrderSide.sell)
40 self.assertEqual(account2.orders[1].type, proto.OrderType.limit)
41 self.assertEqual(account2.orders[1].price, 1.0)
42 self.assertEqual(account2.orders[1].volume, 100.0)
43 self.assertEqual(account2.orders[2].id, 3)
44 self.assertEqual(account2.orders[2].symbol, "EURUSD")
45 self.assertEqual(account2.orders[2].side, proto.OrderSide.buy)
46 self.assertEqual(account2.orders[2].type, proto.OrderType.stop)
47 self.assertEqual(account2.orders[2].price, 1.5)
48 self.assertEqual(account2.orders[2].volume, 10.0)

Callers

nothing calls this directly

Calls 5

cloneMethod · 0.95
AccountMethod · 0.45
BalanceMethod · 0.45
OrderMethod · 0.45
has_flagsMethod · 0.45

Tested by

no test coverage detected