diagram: interpolator ergänzt,
asset: berechnung 'nextupdate' korrigiert
This commit is contained in:
parent
d1421403b1
commit
99e18094aa
7 changed files with 303 additions and 67 deletions
|
@ -112,6 +112,82 @@ class AssetTestCase(ModuleTestCase):
|
|||
self.assertEqual(asset.rec_name, 'Product 1 - 2.4500 usd/Unit [05/15/2022]')
|
||||
self.assertEqual(Asset.search_count([('name', '=', 'Product 1')]), 1)
|
||||
|
||||
@with_transaction()
|
||||
def test_asset_order_and_search_rate_and_date(self):
|
||||
""" create asset, check order of rate + date
|
||||
"""
|
||||
Asset = Pool().get('investment.asset')
|
||||
|
||||
company = self.prep_asset_company()
|
||||
product1 = self.prep_asset_product(
|
||||
name='Product 1',
|
||||
description='some asset')
|
||||
product2 = self.prep_asset_product(
|
||||
name='Product 2',
|
||||
description='some asset')
|
||||
|
||||
asset1 = self.prep_asset_item(
|
||||
company=company,
|
||||
product = product1)
|
||||
asset2 = self.prep_asset_item(
|
||||
company=company,
|
||||
product = product2)
|
||||
|
||||
Asset.write(*[
|
||||
[asset1],
|
||||
{
|
||||
'rates': [('create', [{
|
||||
'date': date(2022, 5, 18),
|
||||
'rate': Decimal('3.5'),
|
||||
}, {
|
||||
'date': date(2022, 5, 15),
|
||||
'rate': Decimal('2.45'),
|
||||
}])],
|
||||
},
|
||||
[asset2],
|
||||
{
|
||||
'rates': [('create', [{
|
||||
'date': date(2022, 5, 17),
|
||||
'rate': Decimal('2.6'),
|
||||
}, {
|
||||
'date': date(2022, 5, 14),
|
||||
'rate': Decimal('2.4'),
|
||||
}])],
|
||||
},
|
||||
])
|
||||
self.assertEqual(asset1.rec_name, 'Product 1 - 3.5000 usd/Unit [05/18/2022]')
|
||||
self.assertEqual(asset2.rec_name, 'Product 2 - 2.6000 usd/Unit [05/17/2022]')
|
||||
|
||||
assets = Asset.search([], order=[('date', 'ASC')])
|
||||
self.assertEqual(len(assets), 2)
|
||||
self.assertEqual(assets[0].date, date(2022, 5, 17))
|
||||
self.assertEqual(assets[1].date, date(2022, 5, 18))
|
||||
|
||||
assets = Asset.search([], order=[('date', 'DESC')])
|
||||
self.assertEqual(len(assets), 2)
|
||||
self.assertEqual(assets[0].date, date(2022, 5, 18))
|
||||
self.assertEqual(assets[1].date, date(2022, 5, 17))
|
||||
|
||||
assets = Asset.search([], order=[('rate', 'ASC')])
|
||||
self.assertEqual(len(assets), 2)
|
||||
self.assertEqual(assets[0].rate, Decimal('2.6'))
|
||||
self.assertEqual(assets[1].rate, Decimal('3.5'))
|
||||
|
||||
assets = Asset.search([], order=[('rate', 'DESC')])
|
||||
self.assertEqual(len(assets), 2)
|
||||
self.assertEqual(assets[0].rate, Decimal('3.5'))
|
||||
self.assertEqual(assets[1].rate, Decimal('2.6'))
|
||||
|
||||
self.assertEqual(Asset.search_count([
|
||||
('date', '=', date(2022, 5, 17)),
|
||||
]), 1)
|
||||
self.assertEqual(Asset.search_count([
|
||||
('date', '>=', date(2022, 5, 17)),
|
||||
]), 2)
|
||||
self.assertEqual(Asset.search_count([
|
||||
('date', '<', date(2022, 5, 17)),
|
||||
]), 0)
|
||||
|
||||
@with_transaction()
|
||||
def test_asset_percentages_dateselect1(self):
|
||||
""" create asset, add rates, check selection of
|
||||
|
@ -535,7 +611,7 @@ class AssetTestCase(ModuleTestCase):
|
|||
}])
|
||||
|
||||
with Transaction().set_context({
|
||||
'qdate': date(2022, 10, 14),
|
||||
'qdate': date(2022, 10, 14), # friday
|
||||
}):
|
||||
# re-read to make context work
|
||||
asset2, = Asset.browse([asset.id])
|
||||
|
@ -543,21 +619,24 @@ class AssetTestCase(ModuleTestCase):
|
|||
self.assertEqual(asset2.updtsource.rec_name, 'Source 1')
|
||||
self.assertEqual(asset2.updttime, time(10, 45))
|
||||
self.assertEqual(len(asset2.rates), 0)
|
||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 15, 10, 45))
|
||||
# qdate = 2022-10-14 simulates existence of record at this day
|
||||
# next call would be the 15. - but its saturday,
|
||||
# next-call-date is moved to 17.
|
||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 17, 10, 45))
|
||||
|
||||
self.assertEqual(
|
||||
Asset.search_count([('nextupdate', '<', datetime(2022, 10, 15, 10, 45))]),
|
||||
Asset.search_count([('nextupdate', '<', datetime(2022, 10, 17, 10, 45))]),
|
||||
0)
|
||||
self.assertEqual(
|
||||
Asset.search_count([('nextupdate', '>=', datetime(2022, 10, 15, 10, 45))]),
|
||||
Asset.search_count([('nextupdate', '>=', datetime(2022, 10, 17, 10, 45))]),
|
||||
1)
|
||||
|
||||
# add rate at yesterday
|
||||
# add rate at next monday
|
||||
Asset.write(*[
|
||||
[asset],
|
||||
{
|
||||
'rates': [('create', [{
|
||||
'date': date(2022, 10, 14),
|
||||
'date': date(2022, 10, 17), # monday
|
||||
'rate': Decimal('1.5'),
|
||||
}])],
|
||||
}])
|
||||
|
@ -567,14 +646,14 @@ class AssetTestCase(ModuleTestCase):
|
|||
self.assertEqual(asset.updtsource.rec_name, 'Source 1')
|
||||
self.assertEqual(asset.updttime, time(10, 45))
|
||||
self.assertEqual(len(asset.rates), 1)
|
||||
self.assertEqual(asset.rates[0].date, date(2022, 10, 14))
|
||||
self.assertEqual(asset.nextupdate, datetime(2022, 10, 15, 10, 45))
|
||||
self.assertEqual(asset.rates[0].date, date(2022, 10, 17))
|
||||
self.assertEqual(asset.nextupdate, datetime(2022, 10, 18, 10, 45))
|
||||
|
||||
self.assertEqual(
|
||||
Asset.search_count([('nextupdate', '<', datetime(2022, 10, 15, 10, 45))]),
|
||||
Asset.search_count([('nextupdate', '<', datetime(2022, 10, 18, 10, 45))]),
|
||||
0)
|
||||
self.assertEqual(
|
||||
Asset.search_count([('nextupdate', '>=', datetime(2022, 10, 15, 10, 45))]),
|
||||
Asset.search_count([('nextupdate', '>=', datetime(2022, 10, 18, 10, 45))]),
|
||||
1)
|
||||
|
||||
# add rate at today
|
||||
|
@ -582,7 +661,7 @@ class AssetTestCase(ModuleTestCase):
|
|||
[asset],
|
||||
{
|
||||
'rates': [('create', [{
|
||||
'date': date(2022, 10, 15),
|
||||
'date': date(2022, 10, 18),
|
||||
'rate': Decimal('1.5'),
|
||||
}])],
|
||||
}])
|
||||
|
@ -592,14 +671,14 @@ class AssetTestCase(ModuleTestCase):
|
|||
self.assertEqual(asset2.updtsource.rec_name, 'Source 1')
|
||||
self.assertEqual(asset2.updttime, time(10, 45))
|
||||
self.assertEqual(len(asset2.rates), 2)
|
||||
self.assertEqual(asset2.rates[0].date, date(2022, 10, 15))
|
||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 16, 10, 45))
|
||||
self.assertEqual(asset2.rates[0].date, date(2022, 10, 18))
|
||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 19, 10, 45))
|
||||
|
||||
self.assertEqual(
|
||||
Asset.search_count([('nextupdate', '<', datetime(2022, 10, 15, 10, 45))]),
|
||||
Asset.search_count([('nextupdate', '<', datetime(2022, 10, 19, 10, 45))]),
|
||||
0)
|
||||
self.assertEqual(
|
||||
Asset.search_count([('nextupdate', '>=', datetime(2022, 10, 15, 10, 45))]),
|
||||
Asset.search_count([('nextupdate', '>=', datetime(2022, 10, 19, 10, 45))]),
|
||||
1)
|
||||
|
||||
@with_transaction()
|
||||
|
|
|
@ -68,7 +68,7 @@ class SourceTestCase(ModuleTestCase):
|
|||
}])
|
||||
|
||||
with Transaction().set_context({
|
||||
'qdate': date(2022, 10, 1),
|
||||
'qdate': date(2022, 10, 1), # saturday
|
||||
'qdatetime': datetime(2022, 10, 2, 10, 0, 0),
|
||||
}):
|
||||
asset2, = Asset.browse([asset])
|
||||
|
@ -77,9 +77,11 @@ class SourceTestCase(ModuleTestCase):
|
|||
self.assertEqual(asset2.secsymb, '1472977')
|
||||
self.assertEqual(asset2.updttime, time(14, 0))
|
||||
self.assertEqual(asset2.updtsource.rec_name, 'Source 1')
|
||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 2, 14, 0))
|
||||
self.assertEqual(asset2.updtdays, 'work')
|
||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 3, 14, 0))
|
||||
self.assertEqual(len(asset.rates), 0)
|
||||
|
||||
|
||||
# fake server-response
|
||||
resp1 = Response()
|
||||
resp1._content = """<html><body>Response from finance-server
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue