bemade-addons/purchase_delivery_carrier/tests/test_purchase_delivery.py

71 lines
2.3 KiB
Python

from odoo.tests import TransactionCase, tagged
from odoo import Command
@tagged("post_install", "-at_install")
class TestPurchaseDelivery(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.carrier_1 = cls.env.ref("delivery.delivery_local_delivery")
cls.carrier_2 = cls.env.ref("delivery.free_delivery_carrier")
cls.partner_1 = cls.env["res.partner"].create(
{
"name": "Test 1",
"purchase_delivery_carrier_id": cls.carrier_1.id,
}
)
cls.partner_2 = cls.env["res.partner"].create(
{
"name": "Test 2",
}
)
cls.product = cls.env["product.product"].create(
{
"name": "Test product",
"seller_ids": [
Command.create(
{
"partner_id": cls.partner_1.id,
"price": 100.0,
}
),
Command.create(
{
"partner_id": cls.partner_2.id,
"price": 200.0,
}
),
],
}
)
def test_carrier_set_on_purchase_order_when_default_is_set(self):
purchase_order = self.env["purchase.order"].create(
{
"partner_id": self.partner_1.id,
"order_line": [Command.create({"product_id": self.product.id})],
}
)
self.assertEqual(purchase_order.carrier_id, self.carrier_1)
def test_carrier_not_set_on_purchase_order_when_default_is_not_set(self):
purchase_order = self.env["purchase.order"].create(
{
"partner_id": self.partner_2.id,
}
)
self.assertFalse(purchase_order.carrier_id)
def test_carrier_trickles_down_to_picking(self):
purchase_order = self.env["purchase.order"].create(
{
"partner_id": self.partner_1.id,
"order_line": [Command.create({"product_id": self.product.id})],
}
)
purchase_order.button_confirm()
picking = purchase_order.picking_ids
self.assertEqual(picking.carrier_id, self.carrier_1)