コード例 #1
0
    def test_update_position(self):
        input_file = join(get_current_directory(), 'samples',
                          'Jones Holding 2017.12.20.xlsx')
        jones_holding, row_in_error = read_file(input_file, read_line_jones)

        input_file = join(get_current_directory(), 'samples',
                          '12229 local appraisal 20180103.xlsx')
        geneva_holding, row_in_error = read_file(input_file, read_line)

        self.assertEqual(len(geneva_holding), 88)
        update_position(geneva_holding, jones_holding)
        self.verify_geneva_position1(geneva_holding[1])
        self.verify_geneva_position2(geneva_holding[4])
        self.verify_geneva_position3(geneva_holding[87])
コード例 #2
0
    def test_update_amortized_cost(self):
        input_file = join(get_current_directory(), 'samples', 'new_12229.xlsx')
        trustee_holding, row_in_error = read_file(input_file,
                                                  read_line_trustee,
                                                  starting_row=2)

        input_file = join(get_current_directory(), 'samples',
                          '12229_local_appraisal_sample5.xlsx')
        geneva_holding, row_in_error = read_file(input_file, read_line)

        self.assertEqual(len(geneva_holding), 88)
        update_amortized_cost(geneva_holding, trustee_holding)
        self.verify_geneva_position1(geneva_holding[1])
        self.verify_geneva_position2(geneva_holding[6])
        self.verify_geneva_position3(geneva_holding[87])
コード例 #3
0
ファイル: test_geneva.py プロジェクト: vcgato29/trustee
 def test_read_file4(self):
     file = join(get_current_directory(), 'samples',
                 '12732_local_appraisal_sample4.xlsx')
     holding, row_in_error = read_file(file, read_line)
     self.assertEqual(len(row_in_error), 0)
     self.assertEqual(len(holding), 3)
     self.assertEqual(len(filter_maturity(holding)), 1)
コード例 #4
0
ファイル: test_geneva.py プロジェクト: vcgato29/trustee
 def test_read_file3(self):
     file = join(get_current_directory(), 'samples',
                 '12229_local_appraisal_sample3.xlsx')
     holding, row_in_error = read_file(file, read_line)
     self.assertEqual(len(row_in_error), 0)
     self.assertEqual(len(holding), 6)
     self.assertEqual(len(filter_maturity(holding)), 2)
     self.verify_position5(filter_maturity(holding))
コード例 #5
0
    def test_read_line_jones(self):
        input_file = join(get_current_directory(), 'samples',
                          'Jones Holding 2017.12.20.xlsx')
        holding, row_in_error = read_file(input_file, read_line_jones)

        self.assertEqual(len(holding), 105)
        self.verify_jones_position1(holding[0])
        self.verify_jones_position2(holding[4])
        self.verify_jones_position3(holding[104])
コード例 #6
0
    def test_read_line_trustee(self):
        input_file = join(get_current_directory(), 'samples', 'new_12229.xlsx')
        holding, row_in_error = read_file(input_file,
                                          read_line_trustee,
                                          starting_row=2)

        self.assertEqual(len(holding), 85)
        self.verify_trustee_position1(holding[0])
        self.verify_trustee_position2(holding[3])
        self.verify_trustee_position3(holding[84])
コード例 #7
0
ファイル: test_transaction.py プロジェクト: vcgato29/trustee
 def test_read_transaction(self):
     filename = join(get_current_directory(), 'samples', 'new_nav_sample2.xls')
     wb = open_workbook(filename=filename)
     ws = wb.sheet_by_index(0)
     port_values = {}
     read_transaction(ws, port_values)
     transactions = port_values['bond_transactions']
     self.assertEqual(len(transactions), 3)
     self.verify_transaction1(transactions[0])
     self.verify_transaction2(transactions[1])
     self.verify_transaction3(transactions[2])
コード例 #8
0
ファイル: test_transaction.py プロジェクト: vcgato29/trustee
 def test_read_bond_section(self):
     filename = join(get_current_directory(), 'samples', 'new_nav_sample2.xls')
     wb = open_workbook(filename=filename)
     ws = wb.sheet_by_index(0)
     port_values = {}
     port_values['portfolio_id'] = '12229'
     row = read_bond_section(ws, 26, 'buy', port_values)
     self.assertEqual(row, 41)   # row# of the equities section begins
     transactions = port_values['bond_transactions']
     self.assertEqual(len(transactions), 2)
     self.verify_transaction1(transactions[0])
     self.verify_transaction2(transactions[1])
コード例 #9
0
 def test_read_holding(self):
     filename = join(get_current_directory(), 'samples', 'nav_sample1.xls')
     wb = open_workbook(filename=filename)
     ws = wb.sheet_by_name('Portfolio Val.')
     port_values = {}
     read_holding(ws, port_values)
     bond_holding = port_values['bond']
     self.assertEqual(port_values['portfolio_id'], '12229')
     self.assertEqual(len(bond_holding), 37)
     self.verify_bond_position1(bond_holding[0])
     self.verify_bond_position2(bond_holding[16])
     self.verify_bond_position3(bond_holding[24])
     self.verify_bond_position4(bond_holding[36])
コード例 #10
0
 def test_read_section(self):
     filename = join(get_current_directory(), 'samples', 'nav_sample1.xls')
     wb = open_workbook(filename=filename)
     ws = wb.sheet_by_name('Portfolio Val.')
     row = 61  # the bond section starts at A62
     port_values = {}
     currency = 'USD'
     fields = [
         'par_amount', 'is_listed', 'listed_location', 'fx_on_trade_day',
         'coupon_rate', 'coupon_start_date', 'maturity_date',
         'average_cost', 'amortized_cost', 'book_cost', 'interest_bought',
         'amortized_value', 'accrued_interest', 'amortized_gain_loss',
         'fx_gain_loss', 'fund_percentage'
     ]
     row = read_section(ws, row, fields, 'bond', currency, port_values)
     self.assertEqual(row, 133)  # reading stops at A134
     bond_holding = port_values['bond']
     self.assertEqual(len(bond_holding), 25)
     self.verify_bond_position1(bond_holding[0])
     self.verify_bond_position2(bond_holding[16])
     self.verify_bond_position3(bond_holding[24])
コード例 #11
0
    def test_read_sub_section(self):
        filename = join(get_current_directory(), 'samples', 'nav_sample1.xls')
        wb = open_workbook(filename=filename)
        ws = wb.sheet_by_name('Portfolio Val.')
        row = 70  # the bond sub section starts at A71
        accounting_treatment = 'HTM'
        fields = [
            'par_amount', 'is_listed', 'listed_location', 'fx_on_trade_day',
            'coupon_rate', 'coupon_start_date', 'maturity_date',
            'average_cost', 'amortized_cost', 'book_cost', 'interest_bought',
            'amortized_value', 'accrued_interest', 'amortized_gain_loss',
            'fx_gain_loss', 'fund_percentage'
        ]
        asset_class = 'bond'
        currency = 'USD'
        bond_holding = []

        row = read_sub_section(ws, row, accounting_treatment, fields,
                               asset_class, currency, bond_holding)
        self.assertEqual(row, 102)
        self.assertEqual(len(bond_holding), 17)
        self.verify_bond_position1(bond_holding[0])
        self.verify_bond_position2(bond_holding[16])
コード例 #12
0
        ])

        for position in holding:
            if is_cash_position(position):
                continue

            # print(position['InvestID'])
            row = [
                'CD023', '4',
                get_ISIN_from_investID(position['InvestID']), '',
                position['Maturity to Last Year End'],
                position['Maturity to Last Year End']
            ]

            file_writer.writerow(row)


if __name__ == '__main__':
    import logging.config
    logging.config.fileConfig('logging.config', disable_existing_loggers=False)

    input_file = join(get_current_directory(), 'samples',
                      'Jones Holding 2017.12.20.xlsx')
    jones_holding, row_in_error = read_file(input_file, read_line_jones)

    holding = get_holding_from_files()
    update_position(holding, jones_holding)
    write_upload_csv(holding)

    consolidated_holding = consolidate_security(holding)
    write_upload_csv_maturity(consolidated_holding)
コード例 #13
0
ファイル: sftp.py プロジェクト: vcgato29/trustee
# 	the upload file path.
#

import time, os
from os.path import join
from subprocess import run, TimeoutExpired, CalledProcessError
from trustee.utility import get_current_directory
import logging

logger = logging.getLogger(__name__)

# initialized only once when this module is first imported by others
if not 'config' in globals():
    import configparser
    config = configparser.ConfigParser()
    config.read(join(get_current_directory(), 'sftp.config'))


def upload(file_list):
    """
	Call winscp.com to execute the sftp upload job.
	"""
    winscp_script, winscp_log = create_winscp_files(file_list)
    try:
        args = [get_winscp_path(), '/script={0}'.format(winscp_script), \
          '/log={0}'.format(winscp_log)]

        result = run(args, timeout=get_timeout(), check=True)
    except TimeoutExpired:
        logger.error('upload(): timeout {0} expired'.format(get_timeout()))
    except CalledProcessError:
コード例 #14
0
ファイル: sftp.py プロジェクト: vcgato29/trustee
def get_winscp_script_directory():
    return join(get_current_directory(), 'winscp_script')
コード例 #15
0
ファイル: test_transaction.py プロジェクト: vcgato29/trustee
 def test_get_portfolio_id(self):
     filename = join(get_current_directory(), 'samples', 'new_nav_sample2.xls')
     wb = open_workbook(filename=filename)
     ws = wb.sheet_by_index(0)
     self.assertEqual(get_portfolio_id(ws), ('12229', 6))
コード例 #16
0
ファイル: test_transaction.py プロジェクト: vcgato29/trustee
 def test_get_report_name(self):
     filename = join(get_current_directory(), 'samples', 'new_nav_sample2.xls')
     wb = open_workbook(filename=filename)
     ws = wb.sheet_by_index(0)
     self.assertEqual(get_report_name(ws), 'SECURITIES TRANSACTION IMPLEMENTED')
コード例 #17
0
ファイル: sftp.py プロジェクト: vcgato29/trustee
def get_winscp_log_directory():
    return join(get_current_directory(), 'winscp_log')