server-ux/base_tier_validation/tests/test_tier_validation_reminder.py

47 lines
1.9 KiB
Python
Raw Normal View History

2024-12-03 13:20:46 +00:00
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from freezegun import freeze_time
from flectra import fields
from flectra.tests.common import tagged
from .common import CommonTierValidation
@tagged("post_install", "-at_install")
class TierTierValidation(CommonTierValidation):
def test_validation_reminder(self):
"""Check the posting of reminder to reviews."""
tier_definition = self.tier_definition
tier_definition.notify_reminder_delay = 3
# Request a review today
self.test_record.with_user(self.test_user_2.id).request_validation()
review = self.env["tier.review"].search(
[("definition_id", "=", tier_definition.id)]
)
self.assertTrue(review)
self.assertEqual(review.last_reminder_date, False)
# 2 days later no reminder should be posted
in_2_days = fields.Datetime.add(fields.Datetime.now(), days=2)
with freeze_time(in_2_days):
tier_definition._cron_send_review_reminder()
self.assertEqual(review.last_reminder_date, False)
# 4 days later first reminder
in_4_days = fields.Datetime.add(fields.Datetime.now(), days=4)
with freeze_time(in_4_days):
self.tier_definition._cron_send_review_reminder()
self.assertEqual(review.last_reminder_date, in_4_days)
# 5 days later no new reminder
in_6_days = fields.Datetime.add(fields.Datetime.now(), days=6)
with freeze_time(in_6_days):
self.tier_definition._cron_send_review_reminder()
self.assertEqual(review.last_reminder_date, in_4_days)
# 9 days later second reminder
in_9_days = fields.Datetime.add(fields.Datetime.now(), days=9)
with freeze_time(in_9_days):
self.tier_definition._cron_send_review_reminder()
self.assertEqual(review.last_reminder_date, in_9_days)