Files
account-financial-tools/currency_rate_update/tests/test_currency_rate_update.py
Pedro M. Baeza a5822b5baa [FIX] currency_rate_update: Change currency by SQL in tests
For avoiding the constraint.
2018-05-15 20:47:57 +02:00

86 lines
3.0 KiB
Python

# -*- coding: utf-8 -*-
# Author: Lam Thai Binh
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import datetime
import logging
from odoo import fields
from odoo.tests.common import TransactionCase
class TestCurrencyRateUpdate(TransactionCase):
def setUp(self):
super(TestCurrencyRateUpdate, self).setUp()
self.env.user.company_id.auto_currency_up = True
self.env.cr.execute(
"""UPDATE res_company SET currency_id = %s
WHERE id = %s""",
(self.env.user.company_id.id, self.env.ref('base.EUR').id),
)
self.service_env = self.env['currency.rate.update.service']
self.rate_env = self.env['res.currency.rate']
def _test_cron_by_service(self, service_code, currency_xml_ids):
"""Test the ir.cron with any service for some currencies
"""
currency_ids = [
self.env.ref(currency_xml_id).id
for currency_xml_id in currency_xml_ids]
service_x = self.service_env.create({
'service': service_code,
'currency_to_update': [(6, 0, currency_ids)]
})
rate_name = \
fields.Datetime.to_string(datetime.datetime.utcnow().replace(
hour=0, minute=0, second=0, microsecond=0))
for currency_id in currency_ids:
rates = self.rate_env.search([
('currency_id', '=', currency_id),
('company_id', '=', self.env.user.company_id.id),
('name', '=', rate_name)])
rates.unlink()
self.service_env._run_currency_update()
logging.info("Service note: %s", service_x.note)
self.assertFalse('ERROR' in service_x.note)
# FIXME: except_orm(u'Error !', u'Exchange data for USD is not reported
# by Bank of Canada.')
# def test_cron_CA_BOC(self):
# """Test the ir.cron with Bank of Canada service for USD
# """
# self._test_cron_by_service('CA_BOC', ['base.USD'])
def test_cron_CH_ADMIN(self):
"""Test the ir.cron with Admin.ch service for USD
"""
self._test_cron_by_service('CH_ADMIN', ['base.USD'])
def test_cron_ECB(self):
"""Test the ir.cron with European Central Bank service for USD
"""
self._test_cron_by_service('ECB', ['base.USD'])
def test_cron_MX_BdM(self):
"""Test the ir.cron with Bank of Mexico service for USD
"""
self._test_cron_by_service('MX_BdM', ['base.USD'])
def test_cron_PL_NBP(self):
"""Test the ir.cron with National Bank of Poland service for USD
"""
self._test_cron_by_service('PL_NBP', ['base.USD'])
def test_cron_RO_BNR(self):
"""Test the ir.cron with National Bank of Romania service for USD
"""
self._test_cron_by_service('RO_BNR', ['base.USD'])
def test_cron_VN_VCB(self):
"""Test the ir.cron with Vietcombank service for USD
"""
self._test_cron_by_service('VN_VCB', ['base.USD'])