Files
Odoo-18.0-20251222/sale_partner_primeship/tests/test_sale_primeship.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

86 lines
3.0 KiB
Python
Executable File

# Copyright 2024 Akretion - Olivier Nibart
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import date, timedelta
import psycopg2
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.tools.misc import mute_logger
from .common import TestCommon
class TestSalePrimeship(TestCommon):
def test_compute_name(self):
primeship = self.make_primeship("2024-01-01", "2024-12-31")
self.assertEqual(primeship.name, "2024-01-01 - 2024-12-31 Primeship")
def test_compute_current(self):
today = date.today()
primeship_current = self.make_primeship(
today - timedelta(days=1), today + timedelta(days=1)
)
primeship_past = self.make_primeship(
today - timedelta(days=10), today - timedelta(days=1)
)
primeship_future = self.make_primeship(
today + timedelta(days=1), today + timedelta(days=10)
)
self.assertTrue(primeship_current.current)
self.assertFalse(primeship_past.current)
self.assertFalse(primeship_future.current)
def test_check_end_date(self):
with self.assertRaises(ValidationError):
self.make_primeship("2023-12-31", "2023-01-01")
def test_overlapping_primeships(self):
self.make_primeship("2023-01-01", "2023-06-30")
with self.assertRaises(ValidationError):
self.make_primeship("2023-06-01", "2023-12-31")
def test_non_overlapping_primeships(self):
primeship1 = self.make_primeship("2023-01-01", "2023-06-30")
primeship2 = self.make_primeship("2023-07-01", "2023-12-31")
self.assertTrue(primeship1.id)
self.assertTrue(primeship2.id)
def test_overlaps_method(self):
primeship = self.make_primeship("2023-01-01", "2023-12-31")
self.assertTrue(
primeship.overlaps(
fields.Date.to_date("2023-06-01"), fields.Date.to_date("2023-07-01")
)
)
self.assertTrue(
primeship.overlaps(
fields.Date.to_date("2022-06-01"), fields.Date.to_date("2023-02-01")
)
)
self.assertTrue(
primeship.overlaps(
fields.Date.to_date("2023-12-01"), fields.Date.to_date("2024-01-01")
)
)
self.assertFalse(
primeship.overlaps(
fields.Date.to_date("2022-01-01"), fields.Date.to_date("2022-12-31")
)
)
self.assertFalse(
primeship.overlaps(
fields.Date.to_date("2024-01-01"), fields.Date.to_date("2024-12-31")
)
)
def test_sale_order_line_sale_primeship_o2o_relation_sql_constraint(self):
order_line = self.make_order_line()
self.make_primeship("2023-01-01", "2023-12-31", order_line_id=order_line)
with self.assertRaises(psycopg2.IntegrityError):
with mute_logger("odoo.sql_db"), self.cr.savepoint():
self.make_primeship(
"2024-01-01", "2024-12-31", order_line_id=order_line
)