def holdings(self, aggregation_key=None): holdings_list = get_final_holdings( self.entries, (self.account_types.assets, self.account_types.liabilities), self.price_map, self.date_last ) if aggregation_key: holdings_list = aggregate_holdings_by(holdings_list, aggregation_key) return holdings_list
def test_aggregate_holdings_by(): assert aggregate_holdings_list([]) is None holdings = [ Posting('Assets', A('10 HOOL'), None, None, None, None), Posting('Assets:Test', A('14 HOL'), None, None, None, None), ] assert aggregate_holdings_by(holdings, 'account') == holdings assert aggregate_holdings_by(holdings, 'currency') == holdings assert aggregate_holdings_by(holdings, 'invalid') == holdings holdings = [ Posting('Assets', A('10 HOOL'), None, None, None, None), Posting('Assets', A('14 HOOL'), None, None, None, None), ] assert aggregate_holdings_by(holdings, 'account') == \ [aggregate_holdings_list(holdings)]