add tests

This commit is contained in:
Frederik Jaeckel 2023-03-10 23:44:02 +01:00
parent e51932e732
commit 2460e421a7
3 changed files with 200 additions and 120 deletions

View file

@ -207,6 +207,7 @@ class EvaluationLine(ModelSQL, ModelView):
) )
cursor.execute(*query) cursor.execute(*query)
balances = cursor.fetchall() balances = cursor.fetchall()
for balance in balances: for balance in balances:
(id_currency, bal1) = balance (id_currency, bal1) = balance

View file

@ -3,9 +3,12 @@
# The COPYRIGHT file at the top level of this repository contains the # The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms. # full copyright notices and license terms.
cashbook_types = ['cashbooks', 'cashbooks_gldiff', 'cashbooks_glperc', 'cashbooks_glvalue'] cashbook_types = ['cashbooks', 'cashbooks_gldiff', 'cashbooks_glperc',
category_types = ['categories', 'category_gldiff', 'category_glvalue', 'category_glperc'] 'cashbooks_glvalue', 'cashbooks_glyield']
booktype_types = ['types', 'types_gldiff', 'types_glvalue', 'types_glperc'] category_types = ['categories', 'category_gldiff', 'category_glvalue',
'category_glperc', 'category_glyield']
booktype_types = ['types', 'types_gldiff', 'types_glvalue',
'types_glperc', 'types_glyield']
template_view_line = '<field name="balance" fill="%(fill)s" empty="0" string="%(string)s"/>' template_view_line = '<field name="balance" fill="%(fill)s" empty="0" string="%(string)s"/>'

View file

@ -29,27 +29,14 @@ class ReportTestCase(CashbookInvestmentTestCase):
pool = Pool() pool = Pool()
Book = pool.get('cashbook.book') Book = pool.get('cashbook.book')
Line = pool.get('cashbook.line') Line = pool.get('cashbook.line')
BookType = pool.get('cashbook.type')
ResUser = pool.get('res.user') ResUser = pool.get('res.user')
user_admin, = ResUser.search([]) user_admin, = ResUser.search([])
company = self.prep_company() company = self.prep_company()
asset_cfg = self.prep_yield_config( type_cash = self.prep_type()
fee = 'Fee',
dividend = 'Dividend',
gainloss = 'Gain-Loss',
company = company)
type_cash, = BookType.search([('name', '=', 'Cash')])
type_bank = self.prep_type(name='Bank', short='BK') type_bank = self.prep_type(name='Bank', short='BK')
type_asset = self.prep_type(name='Asset', short='A')
BookType.write(*[
[type_asset],
{
'feature': 'asset',
}])
ResUser.write(*[ ResUser.write(*[
[user_admin], [user_admin],
{ {
@ -60,10 +47,6 @@ class ReportTestCase(CashbookInvestmentTestCase):
sequ_id = self.prep_sequence().id sequ_id = self.prep_sequence().id
category = self.prep_category(cattype='in') category = self.prep_category(cattype='in')
asset = self.prep_asset_item(
company=company,
product = self.prep_asset_product(name='Product 1'))
self.assertEqual(asset.symbol, 'usd/u')
(usd, euro) = self.prep_2nd_currency(company) (usd, euro) = self.prep_2nd_currency(company)
party = self.prep_party() party = self.prep_party()
@ -133,43 +116,9 @@ class ReportTestCase(CashbookInvestmentTestCase):
'category': category.id, 'category': category.id,
'party': party.id, 'party': party.id,
}])], }])],
}, {
'name': 'Book 4 - Asset',
'btype': type_asset.id,
'asset': asset.id,
'quantity_uom': asset.uom.id,
'company': company.id,
'currency': euro.id,
'number_sequ': sequ_id,
'start_date': date(2022, 4, 1),
'lines': [('create', [{
'date': date(2022, 5, 1),
'description': 'Buy Shares',
'bookingtype': 'in',
'amount': Decimal('100.0'),
'quantity': Decimal('1.0'),
'category': category.id,
'party': party.id,
}, {
'date': date(2022, 5, 5),
'description': 'Fee',
'bookingtype': 'out',
'amount': Decimal('2.5'),
'quantity': Decimal('0.0'),
'category': asset_cfg.fee_category.id,
'party': party.id,
}, {
'date': date(2022, 5, 3),
'description': 'Dividend',
'bookingtype': 'in',
'amount': Decimal('5.0'),
'quantity': Decimal('0.0'),
'category': asset_cfg.dividend_category.id,
'party': party.id,
}])],
}]) }])
Line.wfcheck([line for book in books for line in book.lines]) Line.wfcheck([line for book in books for line in book.lines])
self.assertEqual(len(books), 4) self.assertEqual(len(books), 3)
self.assertEqual(books[0].name, 'Book 1') self.assertEqual(books[0].name, 'Book 1')
self.assertEqual(books[0].btype.rec_name, 'CAS - Cash') self.assertEqual(books[0].btype.rec_name, 'CAS - Cash')
self.assertEqual(len(books[0].lines), 2) self.assertEqual(len(books[0].lines), 2)
@ -184,11 +133,6 @@ class ReportTestCase(CashbookInvestmentTestCase):
self.assertEqual(books[2].btype.rec_name, 'BK - Bank') self.assertEqual(books[2].btype.rec_name, 'BK - Bank')
self.assertEqual(len(books[2].lines), 2) self.assertEqual(len(books[2].lines), 2)
self.assertEqual(books[2].balance, Decimal('23.0')) self.assertEqual(books[2].balance, Decimal('23.0'))
self.assertEqual(books[3].name, 'Book 4 - Asset')
self.assertEqual(books[3].btype.rec_name, 'A - Asset')
self.assertEqual(len(books[3].lines), 3)
self.assertEqual(books[3].balance, Decimal('102.5'))
return books return books
@with_transaction() @with_transaction()
@ -229,8 +173,10 @@ class ReportTestCase(CashbookInvestmentTestCase):
usd, = Currency.search([('code', '=', 'usd')]) usd, = Currency.search([('code', '=', 'usd')])
self.assertEqual(usd.cashbook_hasbookings, True) self.assertEqual(usd.cashbook_hasbookings, True)
Lines.wfedit(books[0].lines)
Lines.delete(books[0].lines) Lines.delete(books[0].lines)
self.assertEqual(usd.cashbook_hasbookings, True) self.assertEqual(usd.cashbook_hasbookings, True)
Lines.wfedit(books[1].lines)
Lines.delete(books[1].lines) Lines.delete(books[1].lines)
self.assertEqual(usd.cashbook_hasbookings, False) self.assertEqual(usd.cashbook_hasbookings, False)
@ -325,15 +271,13 @@ class ReportTestCase(CashbookInvestmentTestCase):
'dtype': 'types', 'dtype': 'types',
'types': [('add', [x.id for x in Type.search([])])], 'types': [('add', [x.id for x in Type.search([])])],
}]) }])
self.assertEqual(len(evaluation2.types), 3) self.assertEqual(len(evaluation2.types), 2)
self.assertEqual(evaluation2.currency.rec_name, 'Euro') self.assertEqual(evaluation2.currency.rec_name, 'Euro')
self.assertEqual(len(evaluation2.line_values), 3) self.assertEqual(len(evaluation2.line_values), 2)
self.assertEqual(evaluation2.line_values[0].name, 'A - Asset') self.assertEqual(evaluation2.line_values[0].name, 'BK - Bank')
self.assertEqual(evaluation2.line_values[0].balance, Decimal('35.71')) self.assertEqual(evaluation2.line_values[0].balance, Decimal('0.0'))
self.assertEqual(evaluation2.line_values[1].name, 'BK - Bank') self.assertEqual(evaluation2.line_values[1].name, 'CAS - Cash')
self.assertEqual(evaluation2.line_values[1].balance, Decimal('0.0')) self.assertEqual(evaluation2.line_values[1].balance, Decimal('35.71'))
self.assertEqual(evaluation2.line_values[2].name, 'CAS - Cash')
self.assertEqual(evaluation2.line_values[2].balance, Decimal('35.71'))
evaluation3, = Evaluation.create([{ evaluation3, = Evaluation.create([{
'name': 'Evaluation User 1 - Currencies', 'name': 'Evaluation User 1 - Currencies',
@ -520,8 +464,8 @@ class ReportTestCase(CashbookInvestmentTestCase):
'dtype': 'cashbooks', 'dtype': 'cashbooks',
'cashbooks': [('add', [x.id for x in books])], 'cashbooks': [('add', [x.id for x in books])],
}]) }])
self.assertEqual(len(evaluation.cashbooks), 4) self.assertEqual(len(evaluation.cashbooks), 3)
self.assertEqual(len(evaluation.line_values), 4) self.assertEqual(len(evaluation.line_values), 3)
self.assertEqual(evaluation.line_values[0].name, 'Book 1 | 25.00 usd | Open') self.assertEqual(evaluation.line_values[0].name, 'Book 1 | 25.00 usd | Open')
self.assertEqual(evaluation.line_values[0].name_line, None) self.assertEqual(evaluation.line_values[0].name_line, None)
@ -575,7 +519,7 @@ class ReportTestCase(CashbookInvestmentTestCase):
'dtype': 'cashbooks', 'dtype': 'cashbooks',
'cashbooks': [('add', [x.id for x in books])], 'cashbooks': [('add', [x.id for x in books])],
}]) }])
self.assertEqual(len(evaluation.cashbooks), 4) self.assertEqual(len(evaluation.cashbooks), 3)
self.assertEqual(len(evaluation.types), 0) self.assertEqual(len(evaluation.types), 0)
self.assertEqual(len(evaluation.currencies), 0) self.assertEqual(len(evaluation.currencies), 0)
self.assertEqual(len(evaluation.categories), 0) self.assertEqual(len(evaluation.categories), 0)
@ -588,7 +532,7 @@ class ReportTestCase(CashbookInvestmentTestCase):
{ {
'dtype': 'cashbooks_gldiff', 'dtype': 'cashbooks_gldiff',
}]) }])
self.assertEqual(len(evaluation.cashbooks), 4) self.assertEqual(len(evaluation.cashbooks), 3)
self.assertEqual(len(evaluation.types), 0) self.assertEqual(len(evaluation.types), 0)
self.assertEqual(len(evaluation.currencies), 0) self.assertEqual(len(evaluation.currencies), 0)
self.assertEqual(len(evaluation.categories), 0) self.assertEqual(len(evaluation.categories), 0)
@ -598,7 +542,7 @@ class ReportTestCase(CashbookInvestmentTestCase):
{ {
'dtype': 'cashbooks_glperc', 'dtype': 'cashbooks_glperc',
}]) }])
self.assertEqual(len(evaluation.cashbooks), 4) self.assertEqual(len(evaluation.cashbooks), 3)
self.assertEqual(len(evaluation.types), 0) self.assertEqual(len(evaluation.types), 0)
self.assertEqual(len(evaluation.currencies), 0) self.assertEqual(len(evaluation.currencies), 0)
self.assertEqual(len(evaluation.categories), 0) self.assertEqual(len(evaluation.categories), 0)
@ -612,7 +556,7 @@ class ReportTestCase(CashbookInvestmentTestCase):
'types': [('add', [x.id for x in Types.search([])])], 'types': [('add', [x.id for x in Types.search([])])],
}]) }])
self.assertEqual(len(evaluation.cashbooks), 0) self.assertEqual(len(evaluation.cashbooks), 0)
self.assertEqual(len(evaluation.types), 3) self.assertEqual(len(evaluation.types), 2)
self.assertEqual(len(evaluation.currencies), 0) self.assertEqual(len(evaluation.currencies), 0)
self.assertEqual(len(evaluation.categories), 0) self.assertEqual(len(evaluation.categories), 0)
@ -623,7 +567,7 @@ class ReportTestCase(CashbookInvestmentTestCase):
'dtype': 'types', 'dtype': 'types',
}]) }])
self.assertEqual(len(evaluation.cashbooks), 0) self.assertEqual(len(evaluation.cashbooks), 0)
self.assertEqual(len(evaluation.types), 3) self.assertEqual(len(evaluation.types), 2)
self.assertEqual(len(evaluation.currencies), 0) self.assertEqual(len(evaluation.currencies), 0)
self.assertEqual(len(evaluation.categories), 0) self.assertEqual(len(evaluation.categories), 0)
@ -779,6 +723,145 @@ class ReportTestCase(CashbookInvestmentTestCase):
if DashboardAction is not None: if DashboardAction is not None:
self.assertEqual(DashboardAction.search_count([]), 1) self.assertEqual(DashboardAction.search_count([]), 1)
@with_transaction()
def test_report_cashbook_yield(self):
""" create 3x cashbooks, add bookings, rates
create yield-reports
"""
pool = Pool()
Evaluation = pool.get('cashbook_report.evaluation')
Book = pool.get('cashbook.book')
Line = pool.get('cashbook.line')
BType = pool.get('cashbook.type')
Asset = pool.get('investment.asset')
CbCategory = pool.get('cashbook.bookcategory')
MemCache = pool.get('cashbook.memcache')
company = self.prep_company()
with Transaction().set_context({
'company': company.id,
}):
asset_cfg = self.prep_yield_config(
fee = 'Fee',
dividend = 'Dividend',
gainloss = 'Gain-Loss',
company = company)
cb_cat, = CbCategory.create([{'name': 'CB Category'}])
category_in = self.prep_category(cattype='in')
type_depot = self.prep_type('Depot', 'D')
BType.write(*[
[type_depot],
{
'feature': 'asset',
}])
asset = self.prep_asset_item(
company=company,
product = self.prep_asset_product(name='Product 1'))
self.assertEqual(asset.symbol, 'usd/u')
Asset.write(*[
[asset],
{
'rates': [('create', [{
'date': date(2022, 5, 1),
'rate': Decimal('102.0'),
}, {
'date': date(2022, 5, 2),
'rate': Decimal('105.5'),
}])],
}])
self.assertEqual(asset.rec_name, 'Product 1 | 105.5000 usd/u | 05/02/2022')
book_asset, = Book.create([{
'name': 'Depot',
'btype': type_depot.id,
'company': company.id,
'currency': company.currency.id,
'number_sequ': self.prep_sequence().id,
'asset': asset.id,
'quantity_uom': asset.uom.id,
'categories': [('add', [cb_cat.id])],
'start_date': date(2022, 5, 1),
'lines': [('create', [{
'bookingtype': 'in',
'date': date(2022, 5, 2),
'amount': Decimal('100.0'),
'quantity': Decimal('1.0'),
'category': category_in.id,
'description': 'Init',
}, {
'bookingtype': 'in',
'date': date(2022, 5, 3),
'amount': Decimal('5.0'),
'quantity': Decimal('0.0'),
'category': asset_cfg.dividend_category.id,
'description': 'Dividend',
}, {
'bookingtype': 'out',
'date': date(2022, 5, 4),
'amount': Decimal('2.0'),
'quantity': Decimal('0.0'),
'category': asset_cfg.fee_category.id,
'description': 'Fee',
}, {
'bookingtype': 'mvin',
'date': date(2022, 5, 5),
'amount': Decimal('15.0'),
'quantity': Decimal('0.0'),
'booktransf': asset_cfg.gainloss_book.id,
'description': 'Gain',
},])],
}])
Line.wfcheck(book_asset.lines)
MemCache._cashbook_value_cache.clear_all()
self.assertEqual(book_asset.rec_name,
'Depot | 118.00 usd | Open | 1.0000 u')
self.assertEqual(book_asset.balance, Decimal('118.0'))
self.assertEqual(book_asset.current_value, Decimal('105.5'))
self.assertEqual(book_asset.diff_amount, Decimal('-14.5'))
self.assertEqual(book_asset.yield_dividend_total, Decimal('5.0'))
self.assertEqual(book_asset.yield_fee_total, Decimal('2.0'))
self.assertEqual(book_asset.yield_sales, Decimal('15.0'))
self.assertEqual(book_asset.yield_balance, Decimal('5.5'))
# evaluation: cashbooks - total yield
evaluation1, = Evaluation.create([{
'name': 'Evaluation 1',
'dtype': 'cashbooks_glyield',
'chart': 'hbar',
'cashbooks': [('add', [book_asset.id])],
}])
self.assertEqual(evaluation1.dtype, 'cashbooks_glyield')
self.assertEqual(evaluation1.currency.code, 'usd')
self.assertEqual(len(evaluation1.line_values), 1)
self.assertEqual(evaluation1.line_values[0].balance, Decimal('5.5'))
# evaluation: categories - total yield
evaluation2, = Evaluation.create([{
'name': 'Evaluation 2',
'dtype': 'category_glyield',
'chart': 'hbar',
'categories': [('add', [book_asset.categories[0].id])],
}])
self.assertEqual(evaluation2.dtype, 'category_glyield')
self.assertEqual(evaluation2.currency.code, 'usd')
self.assertEqual(len(evaluation2.line_values), 1)
self.assertEqual(evaluation2.line_values[0].balance, Decimal('5.5'))
# evaluation: types - total yield
evaluation3, = Evaluation.create([{
'name': 'Evaluation 3',
'dtype': 'types_glyield',
'chart': 'hbar',
'types': [('add', [book_asset.btype.id])],
}])
self.assertEqual(evaluation3.dtype, 'types_glyield')
self.assertEqual(evaluation3.currency.code, 'usd')
self.assertEqual(len(evaluation3.line_values), 1)
self.assertEqual(evaluation3.line_values[0].balance, Decimal('5.5'))
@with_transaction() @with_transaction()
def test_report_chart_hbar_book_investment(self): def test_report_chart_hbar_book_investment(self):
""" create 3x cashbooks, add bookings, rates """ create 3x cashbooks, add bookings, rates
@ -793,15 +876,12 @@ class ReportTestCase(CashbookInvestmentTestCase):
with Transaction().set_context({ with Transaction().set_context({
'company': company.id, 'company': company.id,
}): }):
if 'cashbooks_gldiff' not in [x[0] for x in Evaluation.get_sel_etype()]:
print('\n--== Module "cashbook_investment" not installed ==--')
return
AccType = pool.get('cashbook.type') AccType = pool.get('cashbook.type')
Asset = pool.get('investment.asset') Asset = pool.get('investment.asset')
Product = pool.get('product.template') Product = pool.get('product.template')
Uom = pool.get('product.uom') Uom = pool.get('product.uom')
CbCategory = pool.get('cashbook.bookcategory') CbCategory = pool.get('cashbook.bookcategory')
MemCache = pool.get('cashbook.memcache')
at, = AccType.create([{ at, = AccType.create([{
'name': 'depot', 'name': 'depot',
@ -835,8 +915,12 @@ class ReportTestCase(CashbookInvestmentTestCase):
'Aurum | 1,750.0000 usd/u | 05/01/2022') 'Aurum | 1,750.0000 usd/u | 05/01/2022')
books = self.prep_report_3books() books = self.prep_report_3books()
self.assertEqual(books[0].rec_name, 'Book 1 | 25.00 usd | Open')
self.assertEqual(books[1].rec_name, 'Book 2 | 12.50 usd | Open')
self.assertEqual(books[2].rec_name, 'Book 3 | 23.00 € | Open')
cb_cat, = CbCategory.create([{'name': 'CB Category'}]) cb_cat, = CbCategory.create([{'name': 'CB Category'}])
Line.wfedit([books.lines]) Line.wfedit([line for book in books for line in book.lines])
Book.write(*[ Book.write(*[
books, books,
{ {
@ -845,21 +929,24 @@ class ReportTestCase(CashbookInvestmentTestCase):
'categories': [('add', [cb_cat.id])], 'categories': [('add', [cb_cat.id])],
'quantity_uom': asset.uom.id, 'quantity_uom': asset.uom.id,
'quantity_digits': 3, 'quantity_digits': 3,
'lines': [('write', },
[books[0].lines[0].id], # usd ])
{'quantity': Decimal('2.0'), 'amount': Decimal('3000.0')}, Line.write(*[
[books[0].lines[1].id], [books[0].lines[0]], # usd
{'quantity': Decimal('2.0'), 'amount': Decimal('3100.0')}, {'quantity': Decimal('2.0'), 'amount': Decimal('3000.0')},
[books[1].lines[0].id], # usd [books[0].lines[1]],
{'quantity': Decimal('2.0'), 'amount': Decimal('3200.0')}, {'quantity': Decimal('2.0'), 'amount': Decimal('3100.0')},
[books[1].lines[1].id], [books[1].lines[0]], # usd
{'quantity': Decimal('2.0'), 'amount': Decimal('3300.0')}, {'quantity': Decimal('2.0'), 'amount': Decimal('3200.0')},
[books[2].lines[0].id], # euro [books[1].lines[1]],
{'quantity': Decimal('2.0'), 'amount': Decimal('3300.0')}, {'quantity': Decimal('2.0'), 'amount': Decimal('3300.0')},
[books[2].lines[1].id], [books[2].lines[0]], # euro
{'quantity': Decimal('2.0'), 'amount': Decimal('3400.0')}, {'quantity': Decimal('2.0'), 'amount': Decimal('3300.0')},
)], [books[2].lines[1]],
}]) {'quantity': Decimal('2.0'), 'amount': Decimal('3400.0')},
])
MemCache._cashbook_value_cache.clear_all()
self.assertEqual(books[0].rec_name, 'Book 1 | 6,100.00 usd | Open | 4.000 u') self.assertEqual(books[0].rec_name, 'Book 1 | 6,100.00 usd | Open | 4.000 u')
self.assertEqual(books[0].current_value, Decimal('7000.0')) self.assertEqual(books[0].current_value, Decimal('7000.0'))
self.assertEqual(books[0].diff_amount, Decimal('900.0')) self.assertEqual(books[0].diff_amount, Decimal('900.0'))
@ -1020,31 +1107,26 @@ class ReportTestCase(CashbookInvestmentTestCase):
</graph> </graph>
""") """)
self.assertEqual(len(evaluation.cashbooks), 4) self.assertEqual(len(evaluation.cashbooks), 3)
self.assertEqual(evaluation.cashbooks[0].rec_name, 'Book 1 | 25.00 usd | Open') self.assertEqual(evaluation.cashbooks[0].rec_name, 'Book 1 | 25.00 usd | Open')
self.assertEqual(evaluation.cashbooks[1].rec_name, 'Book 2 | 12.50 usd | Open') self.assertEqual(evaluation.cashbooks[1].rec_name, 'Book 2 | 12.50 usd | Open')
self.assertEqual(evaluation.cashbooks[2].rec_name, 'Book 3 | 23.00 € | Open') self.assertEqual(evaluation.cashbooks[2].rec_name, 'Book 3 | 23.00 € | Open')
self.assertEqual(evaluation.cashbooks[3].rec_name, 'Book 4 - Asset | 102.50 € | Open | 1.0000 u')
self.assertEqual(evaluation.cashbooks[0].currency.code, 'usd') self.assertEqual(evaluation.cashbooks[0].currency.code, 'usd')
self.assertEqual(evaluation.cashbooks[1].currency.code, 'usd') self.assertEqual(evaluation.cashbooks[1].currency.code, 'usd')
self.assertEqual(evaluation.cashbooks[2].currency.code, 'EUR') self.assertEqual(evaluation.cashbooks[2].currency.code, 'EUR')
self.assertEqual(evaluation.cashbooks[3].currency.code, 'EUR')
self.assertEqual(len(evaluation.line_values), 4) self.assertEqual(len(evaluation.line_values), 3)
self.assertEqual(evaluation.line_values[0].name, 'Book 1 | 25.00 usd | Open') self.assertEqual(evaluation.line_values[0].name, 'Book 1 | 25.00 usd | Open')
self.assertEqual(evaluation.line_values[1].name, 'Book 2 | 12.50 usd | Open') self.assertEqual(evaluation.line_values[1].name, 'Book 2 | 12.50 usd | Open')
self.assertEqual(evaluation.line_values[2].name, 'Book 3 | 23.00 € | Open') self.assertEqual(evaluation.line_values[2].name, 'Book 3 | 23.00 € | Open')
self.assertEqual(evaluation.line_values[3].name, 'Book 4 - Asset | 102.50 € | Open | 1.0000 u')
self.assertEqual(evaluation.line_values[0].eval_currency.code, 'EUR') self.assertEqual(evaluation.line_values[0].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[1].eval_currency.code, 'EUR') self.assertEqual(evaluation.line_values[1].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[2].eval_currency.code, 'EUR') self.assertEqual(evaluation.line_values[2].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[3].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[0].balance, Decimal('23.81')) self.assertEqual(evaluation.line_values[0].balance, Decimal('23.81'))
self.assertEqual(evaluation.line_values[1].balance, Decimal('11.90')) self.assertEqual(evaluation.line_values[1].balance, Decimal('11.90'))
self.assertEqual(evaluation.line_values[2].balance, Decimal('23.00')) self.assertEqual(evaluation.line_values[2].balance, Decimal('23.00'))
self.assertEqual(evaluation.line_values[3].balance, Decimal('102.50'))
@with_transaction() @with_transaction()
def test_report_chart_pie_type_red(self): def test_report_chart_pie_type_red(self):
@ -1076,27 +1158,21 @@ class ReportTestCase(CashbookInvestmentTestCase):
# 37.50 USD, Cash # 37.50 USD, Cash
# 23.00 EUR, Bank # 23.00 EUR, Bank
self.assertEqual(len(evaluation.types), 3) self.assertEqual(len(evaluation.types), 2)
self.assertEqual(evaluation.types[0].rec_name, 'A - Asset') self.assertEqual(evaluation.types[0].rec_name, 'BK - Bank')
self.assertEqual(evaluation.types[1].rec_name, 'BK - Bank') self.assertEqual(evaluation.types[1].rec_name, 'CAS - Cash')
self.assertEqual(evaluation.types[2].rec_name, 'CAS - Cash')
self.assertEqual(len(evaluation.line_values), 3) self.assertEqual(len(evaluation.line_values), 2)
# xx.xx USD --> EUR
self.assertEqual(evaluation.line_values[0].name, 'A - Asset')
self.assertEqual(evaluation.line_values[0].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[0].balance, Decimal('102.50'))
# 23.00 EUR # 23.00 EUR
self.assertEqual(evaluation.line_values[1].eval_currency.code, 'EUR') self.assertEqual(evaluation.line_values[0].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[1].name, 'BK - Bank') self.assertEqual(evaluation.line_values[0].name, 'BK - Bank')
self.assertEqual(evaluation.line_values[1].balance, Decimal('23.0')) self.assertEqual(evaluation.line_values[0].balance, Decimal('23.0'))
# 37.50 USD --> EUR # 37.50 USD --> EUR
self.assertEqual(evaluation.line_values[2].name, 'CAS - Cash') self.assertEqual(evaluation.line_values[1].name, 'CAS - Cash')
self.assertEqual(evaluation.line_values[2].eval_currency.code, 'EUR') self.assertEqual(evaluation.line_values[1].eval_currency.code, 'EUR')
self.assertEqual(evaluation.line_values[2].balance, Decimal('35.71')) self.assertEqual(evaluation.line_values[1].balance, Decimal('35.71'))
@with_transaction() @with_transaction()
def test_report_chart_pie_currency_red(self): def test_report_chart_pie_currency_red(self):
@ -1131,7 +1207,7 @@ class ReportTestCase(CashbookInvestmentTestCase):
self.assertEqual(len(evaluation.line_values), 2) self.assertEqual(len(evaluation.line_values), 2)
self.assertEqual(evaluation.line_values[0].name, 'Euro') self.assertEqual(evaluation.line_values[0].name, 'Euro')
self.assertEqual(evaluation.line_values[0].balance, Decimal('125.5')) self.assertEqual(evaluation.line_values[0].balance, Decimal('23.0'))
self.assertEqual(evaluation.line_values[1].name, 'usd') self.assertEqual(evaluation.line_values[1].name, 'usd')
self.assertEqual(evaluation.line_values[1].balance, Decimal('35.71')) self.assertEqual(evaluation.line_values[1].balance, Decimal('35.71'))