test: add more context

This commit is contained in:
Frederik Jaeckel 2023-06-07 20:06:36 +02:00
parent ebb6d71be3
commit 765738d9ee
4 changed files with 616 additions and 615 deletions

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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):

View file

@ -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