tests: increase complexity when booking cash->asset

This commit is contained in:
Frederik Jaeckel 2024-03-08 22:14:52 +01:00
parent 79926fbe5d
commit 2e8f81bd99
2 changed files with 52 additions and 21 deletions

View file

@ -632,6 +632,8 @@ class PlannerTestCase(object):
Category = pool.get('cashbook.category')
Cashbook = pool.get('cashbook.book')
Currency = pool.get('currency.currency')
Uom = pool.get('product.uom')
Asset = pool.get('investment.asset')
company = self.prep_company()
with Transaction().set_context({'company': company.id}):
@ -657,15 +659,41 @@ class PlannerTestCase(object):
job = self.prep_create_job()
self.assertEqual(job.cashbook.rec_name, 'Book 1 | 0.00 € | Open')
uom_u, = Uom.search([('symbol', '=', 'u')])
self.assertEqual(uom_u.factor, Decimal('1.0'))
self.assertEqual(uom_u.rate, Decimal('1.0'))
uom_10u, = Uom.create([{
'category': uom_u.category.id,
'name': '10 Units',
'symbol': '10xU',
'factor': Decimal('10.0'),
'rate': Decimal('0.1'),
'rounding': Decimal('0.01'),
'digits': 2}])
self.assertEqual(uom_10u.factor, Decimal('10.0'))
self.assertEqual(uom_10u.rate, 0.1)
# check conversion: 1 [u] = 0.1 [10xU]
self.assertEqual(Uom.compute_qty(uom_u, 1.0, uom_10u), 0.1)
# asset-cashbook in CHF
Cashbook.write(*[[asset_book], {'currency': chf.id}])
self.assertEqual(
asset_book.rec_name,
'Depot | 0.00 SFr | Open | 0.0000 u')
# rate of asset = 12.5 usd
Asset.write(*[
[asset_book.asset],
{
'uom': uom_10u.id,
'rates': [(
'write',
[asset_book.asset.rates[0]],
{'rate': Decimal('1.25')})]}])
# rate of asset = 1.25 usd
self.assertEqual(
asset_book.asset.rec_name,
'Product 1 | 12.5000 usd/u | 05/02/2022')
'Product 1 | 1.2500 usd/10xU | 05/02/2022')
self.assertEqual(len(asset_book.lines), 0)
IrDate.today = MagicMock(return_value=date(2022, 5, 24))
@ -700,7 +728,8 @@ class PlannerTestCase(object):
self.assertEqual(chf.rate, Decimal('0.95'))
self.assertEqual(euro.rate, Decimal('1.0'))
self.assertEqual(usd.rate, Decimal('1.05'))
self.assertEqual(asset_book.asset.rate, Decimal('12.5'))
self.assertEqual(asset_book.asset.rate, Decimal('1.25'))
self.assertEqual(asset_book.asset.uom.factor, Decimal('10.0'))
# we invest 10€
# transfer to chf-account, buy asset with rate in usd