formatting
This commit is contained in:
parent
82f9d3a792
commit
8f12741d76
14 changed files with 411 additions and 344 deletions
135
tests/source.py
Normal file
135
tests/source.py
Normal file
|
@ -0,0 +1,135 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of the investment-module from m-ds for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains the
|
||||
# full copyright notices and license terms.
|
||||
|
||||
from trytond.tests.test_tryton import with_transaction
|
||||
from trytond.pool import Pool
|
||||
from trytond.transaction import Transaction
|
||||
from decimal import Decimal
|
||||
from datetime import time, date, datetime
|
||||
from unittest.mock import MagicMock
|
||||
from requests import Response
|
||||
import requests
|
||||
|
||||
|
||||
class SourceTestCase(object):
|
||||
""" test online source
|
||||
"""
|
||||
@with_transaction()
|
||||
def test_waitlist_source_request(self):
|
||||
""" create source, call server
|
||||
"""
|
||||
pool = Pool()
|
||||
OSource = pool.get('investment.source')
|
||||
Asset = pool.get('investment.asset')
|
||||
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')
|
||||
|
||||
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',
|
||||
}, ])],
|
||||
}])
|
||||
|
||||
asset = self.prep_asset_item(
|
||||
company=company,
|
||||
product=product)
|
||||
|
||||
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)
|
||||
|
||||
# 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)
|
||||
|
||||
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):
|
||||
""" create source, check convert
|
||||
"""
|
||||
pool = Pool()
|
||||
OSource = pool.get('investment.source')
|
||||
|
||||
osource, = OSource.create([{
|
||||
'name': 'Source 1',
|
||||
'rgxdate': 'Course Date (\\d+.\\d+.\\d+) Today',
|
||||
'rgxdatefmt': '%d.%m.%Y',
|
||||
'rgxrate': 'High (\\d+,\\d+) EUR',
|
||||
'rgxdecimal': ',',
|
||||
}])
|
||||
self.assertEqual(osource.rec_name, 'Source 1')
|
||||
self.assertEqual(osource.get_regex_result(
|
||||
'The Course Date 14.03.2022 Today, High 13,43 EUR',
|
||||
'rgxdate'
|
||||
), date(2022, 3, 14))
|
||||
|
||||
self.assertEqual(osource.get_regex_result(
|
||||
'The Course Date 14.03.2022 Today, High 13,43 EUR',
|
||||
'rgxrate'
|
||||
), Decimal('13.43'))
|
||||
|
||||
# iso-date
|
||||
OSource.write(*[
|
||||
[osource],
|
||||
{
|
||||
'rgxdate': 'Course Date (\\d+-\\d+-\\d+) Today',
|
||||
'rgxdatefmt': '%Y-%m-%d',
|
||||
}])
|
||||
self.assertEqual(osource.get_regex_result(
|
||||
'The Course Date 2022-03-14 Today, High 13,43 EUR',
|
||||
'rgxdate'
|
||||
), date(2022, 3, 14))
|
||||
|
||||
|
||||
# end SourceTestCase
|
Loading…
Add table
Add a link
Reference in a new issue