63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from datetime import datetime
|
|
|
|
from odoo.addons.base.tests.common import BaseCommon
|
|
from freezegun import freeze_time
|
|
|
|
|
|
class TestOverviewGraph(BaseCommon):
|
|
@freeze_time("2024-06-06 11:00")
|
|
def test_date_category_utc(self):
|
|
self.env.user.tz = "UTC"
|
|
month_day_to_category = {
|
|
3: "before",
|
|
4: "before",
|
|
5: "yesterday",
|
|
6: "today",
|
|
7: "day_1",
|
|
8: "day_2",
|
|
9: "after",
|
|
10: "after",
|
|
}
|
|
for day, expected_category in month_day_to_category.items():
|
|
dt = datetime(2024, 6, day, 14, 0)
|
|
category = self.env["stock.picking"].calculate_date_category(dt)
|
|
self.assertEqual(
|
|
category, expected_category, f"Wrong category calculated for {dt}"
|
|
)
|
|
|
|
@freeze_time("2024-06-06 11:00")
|
|
def test_date_category_utc_plus_2h(self):
|
|
self.env.user.tz = "Europe/Brussels"
|
|
datetime_to_category = {
|
|
datetime(2024, 6, 5, 21, 0): "yesterday",
|
|
datetime(2024, 6, 5, 23, 0): "today",
|
|
datetime(2024, 6, 6, 10, 0): "today",
|
|
datetime(2024, 6, 6, 21, 0): "today",
|
|
datetime(2024, 6, 6, 23, 0): "day_1",
|
|
}
|
|
|
|
for dt, expected_category in datetime_to_category.items():
|
|
category = self.env["stock.picking"].calculate_date_category(dt)
|
|
self.assertEqual(
|
|
category, expected_category, f"Wrong category calculated for {dt}"
|
|
)
|
|
|
|
@freeze_time("2024-06-06 11:00")
|
|
def test_date_category_utc_minus_3h(self):
|
|
self.env.user.tz = "America/Sao_Paulo"
|
|
datetime_to_category = {
|
|
datetime(2024, 6, 6, 2, 0): "yesterday",
|
|
datetime(2024, 6, 6, 4, 0): "today",
|
|
datetime(2024, 6, 6, 9, 0): "today",
|
|
datetime(2024, 6, 7, 2, 0): "today",
|
|
datetime(2024, 6, 7, 3, 0): "day_1",
|
|
}
|
|
|
|
for dt, expected_category in datetime_to_category.items():
|
|
category = self.env["stock.picking"].calculate_date_category(dt)
|
|
self.assertEqual(
|
|
category, expected_category, f"Wrong category calculated for {dt}"
|
|
)
|