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