You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.6 KiB

  1. # Copyright 2019-2020: Druidoo (<https://www.druidoo.io>)
  2. # Copyright 2020 Ecosoft Co., Ltd (http://ecosoft.co.th/)
  3. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  4. from datetime import datetime
  5. from dateutil.relativedelta import relativedelta
  6. from odoo.exceptions import ValidationError
  7. from odoo.tests.common import TransactionCase
  8. class TestRespartnerAgeRange(TransactionCase):
  9. def setUp(self):
  10. super().setUp()
  11. self.range_model = self.env["res.partner.age.range"]
  12. self.partner_model = self.env["res.partner"]
  13. self.baby_range = self.range_model.create(
  14. {"name": "baby", "age_from": 0, "age_to": 2}
  15. )
  16. self.partner = self.partner_model.create(
  17. {
  18. "name": "Test",
  19. "birthdate_date": datetime.today() - relativedelta(years=1, days=10),
  20. }
  21. )
  22. def test_age_from(self):
  23. age_from = self.range_model._default_age_from()
  24. toddler_range = self.range_model.create(
  25. {"name": "Toddler", "age_from": age_from, "age_to": 4}
  26. )
  27. self.assertEqual(toddler_range.age_from, self.baby_range.age_to + 1)
  28. def test_validate_range(self):
  29. with self.assertRaises(ValidationError):
  30. self.range_model.create({"name": "Child", "age_from": 1, "age_to": 12})
  31. with self.assertRaises(ValidationError):
  32. self.range_model.create({"name": "Teenager", "age_from": 16, "age_to": 15})
  33. def test_cron_update_age_range_id(self):
  34. self.partner_model._cron_update_age_range_id()
  35. self.assertEqual(self.partner.age_range_id, self.baby_range)