test: add more context
This commit is contained in:
parent
ebb6d71be3
commit
765738d9ee
4 changed files with 616 additions and 615 deletions
993
tests/asset.py
993
tests/asset.py
File diff suppressed because it is too large
Load diff
|
@ -25,28 +25,26 @@ class RateTestCase(object):
|
||||||
name='Product 1',
|
name='Product 1',
|
||||||
description='some asset')
|
description='some asset')
|
||||||
|
|
||||||
asset = self.prep_asset_item(
|
asset = self.prep_asset_item(company=company, product=product)
|
||||||
company=company,
|
|
||||||
product=product)
|
|
||||||
|
|
||||||
Asset.write(*[
|
Asset.write(*[
|
||||||
[asset],
|
[asset],
|
||||||
{
|
{
|
||||||
'rates': [('create', [{
|
'rates': [('create', [{
|
||||||
'date': date(2022, 5, 1),
|
'date': date(2022, 5, 1),
|
||||||
'rate': Decimal('2.5'),
|
'rate': Decimal('2.5'),
|
||||||
}, {
|
}, {
|
||||||
'date': date(2022, 5, 2),
|
'date': date(2022, 5, 2),
|
||||||
'rate': Decimal('2.8'),
|
'rate': Decimal('2.8'),
|
||||||
}])],
|
}])],
|
||||||
}])
|
}])
|
||||||
self.assertEqual(len(asset.rates), 2)
|
self.assertEqual(len(asset.rates), 2)
|
||||||
self.assertEqual(asset.rates[0].date, date(2022, 5, 2))
|
self.assertEqual(asset.rates[0].date, date(2022, 5, 2))
|
||||||
self.assertEqual(asset.rates[0].rate, Decimal('2.8'))
|
self.assertEqual(asset.rates[0].rate, Decimal('2.8'))
|
||||||
self.assertEqual(asset.rates[0].uom.rec_name, 'Unit')
|
self.assertEqual(asset.rates[0].uom.rec_name, 'Unit')
|
||||||
self.assertEqual(asset.rates[0].asset_digits, 4)
|
self.assertEqual(asset.rates[0].asset_digits, 4)
|
||||||
self.assertEqual(asset.rates[0].currency.rec_name, 'usd')
|
self.assertEqual(asset.rates[0].currency.rec_name, 'usd')
|
||||||
self.assertEqual(asset.rates[0].symbol, '%')
|
self.assertEqual(asset.rates[0].symbol, '%')
|
||||||
self.assertEqual(asset.change_symbol.symbol, '%')
|
self.assertEqual(asset.change_symbol.symbol, '%')
|
||||||
|
|
||||||
# end RateTestCase
|
# end RateTestCase
|
||||||
|
|
109
tests/source.py
109
tests/source.py
|
@ -26,74 +26,73 @@ class SourceTestCase(object):
|
||||||
Product = pool.get('product.product')
|
Product = pool.get('product.product')
|
||||||
|
|
||||||
company = self.prep_asset_company()
|
company = self.prep_asset_company()
|
||||||
osource, = OSource.create([{
|
|
||||||
'name': 'Source 1',
|
|
||||||
'url': 'https://foo.bar/${isin}/${nsin}/${symbol}',
|
|
||||||
'rgxdate': 'Course Date (\\d+.\\d+.\\d+) Today',
|
|
||||||
'rgxdatefmt': '%d.%m.%Y',
|
|
||||||
'rgxrate': 'High (\\d+,\\d+) EUR',
|
|
||||||
'rgxdecimal': ',',
|
|
||||||
}])
|
|
||||||
self.assertEqual(osource.rec_name, 'Source 1')
|
|
||||||
|
|
||||||
with Transaction().set_context({'company': company.id}):
|
with Transaction().set_context({'company': company.id}):
|
||||||
|
osource, = OSource.create([{
|
||||||
|
'name': 'Source 1',
|
||||||
|
'url': 'https://foo.bar/${isin}/${nsin}/${symbol}',
|
||||||
|
'rgxdate': 'Course Date (\\d+.\\d+.\\d+) Today',
|
||||||
|
'rgxdatefmt': '%d.%m.%Y',
|
||||||
|
'rgxrate': 'High (\\d+,\\d+) EUR',
|
||||||
|
'rgxdecimal': ',',
|
||||||
|
}])
|
||||||
|
self.assertEqual(osource.rec_name, 'Source 1')
|
||||||
|
|
||||||
product = self.prep_asset_product(
|
product = self.prep_asset_product(
|
||||||
name='Product 1',
|
name='Product 1',
|
||||||
description='some asset')
|
description='some asset')
|
||||||
|
|
||||||
Product.write(*[
|
Product.write(*[
|
||||||
[product],
|
[product],
|
||||||
{
|
{
|
||||||
'identifiers': [('create', [{
|
'identifiers': [('create', [{
|
||||||
'type': 'wkn',
|
'type': 'wkn',
|
||||||
'code': '965515',
|
'code': '965515',
|
||||||
}, {
|
}, {
|
||||||
'type': 'secsymb',
|
'type': 'secsymb',
|
||||||
'code': '1472977',
|
'code': '1472977',
|
||||||
}, {
|
}, {
|
||||||
'type': 'isin',
|
'type': 'isin',
|
||||||
'code': 'XC0009655157',
|
'code': 'XC0009655157',
|
||||||
}, ])],
|
}, ])],
|
||||||
}])
|
}])
|
||||||
|
|
||||||
asset = self.prep_asset_item(
|
asset = self.prep_asset_item(company=company, product=product)
|
||||||
company=company,
|
|
||||||
product=product)
|
|
||||||
|
|
||||||
Asset.write(*[
|
Asset.write(*[
|
||||||
[asset],
|
[asset],
|
||||||
{
|
{
|
||||||
'updtsources': [('add', [osource.id])],
|
'updtsources': [('add', [osource.id])],
|
||||||
}])
|
}])
|
||||||
|
|
||||||
with Transaction().set_context({
|
with Transaction().set_context({
|
||||||
'qdate': date(2022, 10, 1), # saturday
|
'qdate': date(2022, 10, 1), # saturday
|
||||||
'qdatetime': datetime(2022, 10, 2, 10, 0, 0)}):
|
'qdatetime': datetime(2022, 10, 2, 10, 0, 0)}):
|
||||||
asset2, = Asset.browse([asset])
|
asset2, = Asset.browse([asset])
|
||||||
self.assertEqual(asset2.wkn, '965515')
|
self.assertEqual(asset2.wkn, '965515')
|
||||||
self.assertEqual(asset2.isin, 'XC0009655157')
|
self.assertEqual(asset2.isin, 'XC0009655157')
|
||||||
self.assertEqual(asset2.secsymb, '1472977')
|
self.assertEqual(asset2.secsymb, '1472977')
|
||||||
self.assertEqual(asset2.updttime, time(14, 0))
|
self.assertEqual(asset2.updttime, time(14, 0))
|
||||||
self.assertEqual(len(asset2.updtsources), 1)
|
self.assertEqual(len(asset2.updtsources), 1)
|
||||||
self.assertEqual(asset2.updtsources[0].rec_name, 'Source 1')
|
self.assertEqual(asset2.updtsources[0].rec_name, 'Source 1')
|
||||||
self.assertEqual(asset2.updtdays, 'work')
|
self.assertEqual(asset2.updtdays, 'work')
|
||||||
self.assertEqual(asset2.nextupdate, datetime(2022, 10, 3, 14, 0))
|
self.assertEqual(
|
||||||
self.assertEqual(len(asset.rates), 0)
|
asset2.nextupdate, datetime(2022, 10, 3, 14, 0))
|
||||||
|
self.assertEqual(len(asset.rates), 0)
|
||||||
|
|
||||||
# fake server-response
|
# fake server-response
|
||||||
resp1 = Response()
|
resp1 = Response()
|
||||||
resp1._content = """<html><body>Response from finance-server
|
resp1._content = """<html><body>Response from finance-server
|
||||||
Course Date 14.08.2022 Today
|
Course Date 14.08.2022 Today
|
||||||
High 34,87 EUR
|
High 34,87 EUR
|
||||||
</body></html>""".encode('utf8')
|
</body></html>""".encode('utf8')
|
||||||
resp1.status_code = 200
|
resp1.status_code = 200
|
||||||
resp1.reason = 'OK'
|
resp1.reason = 'OK'
|
||||||
requests.get = MagicMock(return_value=resp1)
|
requests.get = MagicMock(return_value=resp1)
|
||||||
|
|
||||||
OSource.update_rate(asset)
|
OSource.update_rate(asset)
|
||||||
self.assertEqual(len(asset.rates), 1)
|
self.assertEqual(len(asset.rates), 1)
|
||||||
self.assertEqual(asset.rates[0].date, date(2022, 8, 14))
|
self.assertEqual(asset.rates[0].date, date(2022, 8, 14))
|
||||||
self.assertEqual(asset.rates[0].rate, Decimal('34.87'))
|
self.assertEqual(asset.rates[0].rate, Decimal('34.87'))
|
||||||
|
|
||||||
@with_transaction()
|
@with_transaction()
|
||||||
def test_waitlist_source_check_regex(self):
|
def test_waitlist_source_check_regex(self):
|
||||||
|
|
|
@ -21,53 +21,58 @@ class WizardTestCase(object):
|
||||||
ImportWiz = pool.get('investment.imp_wiz', type='wizard')
|
ImportWiz = pool.get('investment.imp_wiz', type='wizard')
|
||||||
|
|
||||||
company = self.prep_asset_company()
|
company = self.prep_asset_company()
|
||||||
product = self.prep_asset_product(
|
with Transaction().set_context({'company': company.id}):
|
||||||
name='Product 1',
|
product = self.prep_asset_product(
|
||||||
description='some asset')
|
name='Product 1',
|
||||||
|
description='some asset')
|
||||||
|
|
||||||
asset = self.prep_asset_item(company=company, product=product)
|
asset = self.prep_asset_item(company=company, product=product)
|
||||||
self.assertEqual(len(asset.rates), 0)
|
self.assertEqual(len(asset.rates), 0)
|
||||||
|
|
||||||
with Transaction().set_context({
|
with Transaction().set_context({
|
||||||
'active_id': asset.id,
|
'active_id': asset.id,
|
||||||
'active_model': 'investment.asset'}):
|
'active_model': 'investment.asset'}):
|
||||||
(sess_id, start_state, end_state) = ImportWiz.create()
|
(sess_id, start_state, end_state) = ImportWiz.create()
|
||||||
w_obj = ImportWiz(sess_id)
|
w_obj = ImportWiz(sess_id)
|
||||||
self.assertEqual(start_state, 'start')
|
self.assertEqual(start_state, 'start')
|
||||||
self.assertEqual(end_state, 'end')
|
self.assertEqual(end_state, 'end')
|
||||||
|
|
||||||
# run start
|
# run start
|
||||||
result = ImportWiz.execute(sess_id, {}, start_state)
|
result = ImportWiz.execute(sess_id, {}, start_state)
|
||||||
self.assertEqual(list(result.keys()), ['view'])
|
self.assertEqual(list(result.keys()), ['view'])
|
||||||
|
|
||||||
self.assertEqual(result['view']['defaults']['asset'], asset.id)
|
self.assertEqual(result['view']['defaults']['asset'], asset.id)
|
||||||
self.assertEqual(result['view']['defaults']['dec_divider'], ',')
|
self.assertEqual(result['view']['defaults']['dec_divider'], ',')
|
||||||
self.assertEqual(result['view']['defaults']['date_fmt'], '%d.%m.%Y')
|
self.assertEqual(
|
||||||
self.assertEqual(result['view']['defaults']['field_delimiter'], ';')
|
result['view']['defaults']['date_fmt'],
|
||||||
|
'%d.%m.%Y')
|
||||||
|
self.assertEqual(
|
||||||
|
result['view']['defaults']['field_delimiter'],
|
||||||
|
';')
|
||||||
|
|
||||||
w_obj.start.asset = asset
|
w_obj.start.asset = asset
|
||||||
w_obj.start.dec_divider = ','
|
w_obj.start.dec_divider = ','
|
||||||
w_obj.start.date_fmt = '%d.%m.%Y'
|
w_obj.start.date_fmt = '%d.%m.%Y'
|
||||||
w_obj.start.field_delimiter = ';'
|
w_obj.start.field_delimiter = ';'
|
||||||
|
|
||||||
result = ImportWiz.execute(sess_id, {'start': {
|
result = ImportWiz.execute(sess_id, {'start': {
|
||||||
'asset': asset.id,
|
'asset': asset.id,
|
||||||
'dec_divider': ',',
|
'dec_divider': ',',
|
||||||
'date_fmt': '%d.%m.%Y',
|
'date_fmt': '%d.%m.%Y',
|
||||||
'field_delimiter': ';',
|
'field_delimiter': ';',
|
||||||
'file_': b'"date";"rate"\n"03.05.2022";"23,56"\n' +
|
'file_': b'"date";"rate"\n"03.05.2022";"23,56"\n' +
|
||||||
b'"05.05.2022";"24,22"\n"06.05.2022";"25,43"',
|
b'"05.05.2022";"24,22"\n"06.05.2022";"25,43"',
|
||||||
}}, 'importf')
|
}}, 'importf')
|
||||||
self.assertEqual(list(result.keys()), [])
|
self.assertEqual(list(result.keys()), [])
|
||||||
# finish wizard
|
# finish wizard
|
||||||
ImportWiz.delete(sess_id)
|
ImportWiz.delete(sess_id)
|
||||||
|
|
||||||
self.assertEqual(len(asset.rates), 3)
|
self.assertEqual(len(asset.rates), 3)
|
||||||
self.assertEqual(asset.rates[0].date, date(2022, 5, 6))
|
self.assertEqual(asset.rates[0].date, date(2022, 5, 6))
|
||||||
self.assertEqual(asset.rates[0].rate, Decimal('25.43'))
|
self.assertEqual(asset.rates[0].rate, Decimal('25.43'))
|
||||||
self.assertEqual(asset.rates[1].date, date(2022, 5, 5))
|
self.assertEqual(asset.rates[1].date, date(2022, 5, 5))
|
||||||
self.assertEqual(asset.rates[1].rate, Decimal('24.22'))
|
self.assertEqual(asset.rates[1].rate, Decimal('24.22'))
|
||||||
self.assertEqual(asset.rates[2].date, date(2022, 5, 3))
|
self.assertEqual(asset.rates[2].date, date(2022, 5, 3))
|
||||||
self.assertEqual(asset.rates[2].rate, Decimal('23.56'))
|
self.assertEqual(asset.rates[2].rate, Decimal('23.56'))
|
||||||
|
|
||||||
# end WizardTestCase
|
# end WizardTestCase
|
||||||
|
|
Loading…
Reference in a new issue