71 lines
2.3 KiB
Python
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)
|