19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:32:02 +01:00
parent 62d197ac8b
commit 184bb0e321
667 changed files with 691406 additions and 239886 deletions

View file

@ -50,33 +50,33 @@ class TestCurrencyRates(TransactionCase):
)
def test_currency_without_date(self):
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet("USD", "EUR"),
CURRENT_EUR / CURRENT_USD,
)
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet("EUR", "USD"),
CURRENT_USD,
)
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet("USD", "CAD"),
CURRENT_CAD / CURRENT_USD,
)
def test_currency_with_date(self):
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet(
"USD", "EUR", "2021-11-11"
),
CURRENT_EUR / USD_11,
)
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet(
"EUR", "USD", "2021-11-11"
),
USD_11,
)
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet(
"USD", "CAD", "2021-11-11"
),
@ -109,8 +109,11 @@ class TestCurrencyRates(TransactionCase):
@freeze_time(fake_now_utc)
def test_rate_by_tz(self):
# after setting a timezone, reset the transaction to recomput env.tz
cad = self.env.ref("base.CAD")
self.env.user.tz = "UTC"
self.env.flush_all()
self.env.transaction.reset()
self.env["res.currency.rate"].create(
{
"currency_id": cad.id,
@ -118,19 +121,60 @@ class TestCurrencyRates(TransactionCase):
}
)
self.env.user.tz = "Australia/Sydney"
self.env.flush_all()
self.env.transaction.reset()
self.env["res.currency.rate"].create(
{
"currency_id": cad.id,
"rate": CAD_AUS,
}
)
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet("CAD", "EUR"),
CURRENT_EUR / CAD_AUS,
)
self.assertEqual(
self.assertAlmostEqual(
self.env["res.currency.rate"]
.with_context(tz="UTC")
._get_rate_for_spreadsheet("CAD", "EUR"),
CURRENT_EUR / CAD_UTC,
)
def test_currency_with_company_id(self):
usd = self.env.ref("base.USD")
cad = self.env.ref("base.CAD")
company_eur = self.env["res.company"].create({"currency_id": usd.id, "name": "EUR"})
company_cad = self.env["res.company"].create({"currency_id": cad.id, "name": "GBP"})
self.env["res.currency.rate"].create(
[
{
"currency_id": usd.id,
"rate": 0.5,
"company_id": company_eur.id,
},
{
"currency_id": usd.id,
"rate": 0.8,
"company_id": company_cad.id,
},
]
)
self.assertAlmostEqual(
self.env["res.currency.rate"].with_company(company_eur)._get_rate_for_spreadsheet(
"USD", "EUR", None, None
),
CURRENT_EUR / 0.5,
)
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet(
"USD", "EUR", None, company_eur.id
),
CURRENT_EUR / 0.5,
)
self.assertAlmostEqual(
self.env["res.currency.rate"]._get_rate_for_spreadsheet(
"USD", "CAD", None, company_cad.id
),
CURRENT_EUR / 0.8,
)