Пример #1
0
 def setUp(self):
     self.longMessage = True  # Print complete error message on failure
     self.maxDiff = None  # View the complete diff when there is a mismatch in a test
     self.interface = TransactionsInterface()
     self.asset_manager_id = 1
     self.asset = generate_asset(asset_manager_id=self.asset_manager_id,
                                 fungible=True)
     self.asset_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.counterparty_book = generate_book(
         asset_manager_id=self.asset_manager_id)
     self.transaction1 = generate_transaction(
         asset_manager_id=self.asset_manager_id,
         asset_id=self.asset.asset_id,
         asset_book_id=self.asset_book.book_id,
         counterparty_book_id=self.counterparty_book.book_id,
         transaction_currency='USD',
         net_affecting_charges=True,
         charge_currency='USD')
     self.transaction2 = generate_transaction(
         asset_manager_id=self.asset_manager_id,
         asset_id=self.asset.asset_id,
         asset_book_id=self.asset_book.book_id,
         counterparty_book_id=self.counterparty_book.book_id,
         transaction_currency='USD',
         net_affecting_charges=True,
         charge_currency='USD')
     self.setup_cache()
     self.interface.new(self.transaction1)
     self.interface.new(self.transaction2)
     self.transaction_id1 = self.transaction1.transaction_id
     self.transaction_id2 = self.transaction2.transaction_id
Пример #2
0
 def setUp(self):
     self.longMessage = True  # Print complete error message on failure
     self.maxDiff = None  # View the complete diff when there is a mismatch in a test
     self.interface = TransactionsInterface()
     self.asset_manager_id = random.randint(1, 2**31-1)
     self.asset = generate_asset(asset_manager_id=self.asset_manager_id, fungible=True)
     self.trader_one_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.trader_two_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.wash_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.setup_cache()
Пример #3
0
 def setUp(self):
     self.longMessage = True  # Print complete error message on failure
     self.maxDiff = None  # View the complete diff when there is a mismatch in a test
     self.asset_manager_id = random.randint(1, 2**31-1)
     self.asset = generate_asset(asset_manager_id=self.asset_manager_id)
     self.asset_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.counterparty_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.transaction = generate_transaction(asset_manager_id=self.asset_manager_id, asset_id=self.asset.asset_id,
                                             asset_book_id=self.asset_book.book_id,
                                             counterparty_book_id=self.counterparty_book.book_id)
     self.transaction_id = self.transaction.transaction_id
     self.setup_cache()
Пример #4
0
 def test_BookConfigByAssetManager(self):
     book = generate_book()
     self.books_interface.new(book)
     book_config = self.books_interface.book_config(asset_manager_id=book.asset_manager_id)
     self.assertEqual(len(book_config.keys()), 3)
     self.assertEqual(len(book_config.get('business_unit')), 1)
     self.assertEqual(len(book_config.get('owner_id')), 1)
     self.assertEqual(len(book_config.get('party_id')), 1)
 def setUp(self):
     self.longMessage = True  # Print complete error message on failure
     self.maxDiff = None  # View the complete diff when there is a mismatch in a test
     self.transactions_interface = TransactionsInterface(environment=STAGE)
     self.assets_interface = AssetsInterface(environment=STAGE)
     self.books_interface = BooksInterface(environment=STAGE)
     self.asset_manager_id = 1
     self.asset = generate_asset(asset_manager_id=self.asset_manager_id)
     self.asset_book = generate_book(asset_manager_id=self.asset_manager_id)
     self.counterparty_book = generate_book(
         asset_manager_id=self.asset_manager_id)
     self.transaction = generate_transaction(
         asset_manager_id=self.asset_manager_id,
         asset_id=self.asset.asset_id,
         asset_book_id=self.asset_book.book_id,
         counterparty_book_id=self.counterparty_book.book_id)
     self.transaction_id = self.transaction.transaction_id
     self.setup_cache()
Пример #6
0
 def test_BooksToCSVStream(self):
     # Books have no children so test this case as well.
     file_desc, temp_filepath = tempfile.mkstemp()
     books = [generate_book() for i in range(5)]
     with open(temp_filepath, 'w') as temp_file:
         objects_to_csv_stream(objects=books, stream=temp_file, clazz=Book)
     # Read the file back out again
     with open(temp_filepath, 'r') as temp_file:
         data = temp_file.readlines()
     self.assertEqual(len(data), 6)  # 5 books + header
     os.close(file_desc)
     os.remove(temp_filepath)
 def test_AllocationWithExplictID(self):
     transaction = generate_transaction(
         asset_manager_id=self.asset_manager_id,
         asset_id=self.asset.asset_id,
         asset_book_id=self.asset_book.book_id,
         counterparty_book_id=self.counterparty_book.book_id,
         quantity=Decimal('100'))
     self.transactions_interface.new(transaction)
     partial_tran_id = transaction.transaction_id[:10]
     allocation_dicts = [{
         'book_id': 'ABC',
         'quantity': Decimal('60'),
         'transaction_id': partial_tran_id + '_ABC'
     }, {
         'book_id': 'XYZ',
         'quantity': Decimal('40'),
         'transaction_id': partial_tran_id + '_XYZ'
     }]
     abc_book = generate_book(asset_manager_id=self.asset_manager_id,
                              book_id='ABC')
     xyz_book = generate_book(asset_manager_id=self.asset_manager_id,
                              book_id='XYZ')
     self.create_transaction_book(abc_book)
     self.create_transaction_book(xyz_book)
     allocations = self.transactions_interface.allocate_transaction(
         asset_manager_id=self.asset_manager_id,
         transaction_id=transaction.transaction_id,
         allocation_type='counterparty',
         allocation_dicts=allocation_dicts)
     self.assertEqual(len(allocations), 2)
     book_ids = sorted(
         [allocation.counterparty_book_id for allocation in allocations])
     self.assertEqual(book_ids, ['ABC', 'XYZ'])
     quantities = sorted(
         [allocation.quantity for allocation in allocations])
     self.assertEqual(quantities, [Decimal('40'), Decimal('60')])
     transaction_ids = sorted(
         [allocation.transaction_id for allocation in allocations])
     self.assertEqual(transaction_ids,
                      [partial_tran_id + '_ABC', partial_tran_id + '_XYZ'])
 def test_Allocations(self):
     transaction = generate_transaction(
         asset_manager_id=self.asset_manager_id,
         asset_id=self.asset.asset_id,
         asset_book_id=self.asset_book.book_id,
         counterparty_book_id=self.counterparty_book.book_id,
         quantity=Decimal('100'))
     transaction.charges['TEST'] = Charge(charge_value=Decimal('10'),
                                          currency='SGD')
     self.transactions_interface.new(transaction)
     allocation_dicts = [{
         'book_id': 'ABC',
         'quantity': Decimal('40')
     }, {
         'book_id': 'XYZ',
         'quantity': Decimal('60')
     }]
     abc_book = generate_book(asset_manager_id=self.asset_manager_id,
                              book_id='ABC')
     xyz_book = generate_book(asset_manager_id=self.asset_manager_id,
                              book_id='XYZ')
     self.create_transaction_book(abc_book)
     self.create_transaction_book(xyz_book)
     allocations = self.transactions_interface.allocate_transaction(
         asset_manager_id=self.asset_manager_id,
         transaction_id=transaction.transaction_id,
         allocation_type='asset_manager',
         allocation_dicts=allocation_dicts)
     self.assertEqual(len(allocations), 2)
     book_ids = sorted(
         [allocation.asset_book_id for allocation in allocations])
     self.assertEqual(book_ids, ['ABC', 'XYZ'])
     quantities = sorted(
         [allocation.quantity for allocation in allocations])
     self.assertEqual(quantities, [Decimal('40'), Decimal('60')])
     charges = sorted([
         allocation.charges.get('TEST').charge_value
         for allocation in allocations
     ])
     self.assertEqual(charges, [Decimal('4'), Decimal('6')])
Пример #9
0
 def setUp(self):
     self.longMessage = True  # Print complete error message on failure
     self.book = generate_book(asset_manager_id=self.asset_manager_id)
     self.book_id = self.book.book_id
Пример #10
0
 def test_InvalidBookType(self):
     with self.assertRaisesRegexp(ValueError, 'Invalid book type Invalid'):
         book = generate_book(book_type='Invalid')