Odoo18-Base/addons/website_sale/tests/common.py
2025-01-06 10:57:38 +07:00

88 lines
3.0 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.fields import Command
from odoo.addons.delivery.tests.common import DeliveryCommon
from odoo.addons.product.tests.common import ProductCommon
# from odoo.addons.website.tests.common import WebsiteCommon
class WebsiteSaleCommon(ProductCommon, DeliveryCommon):
# Not based on SaleCommon as there is no need for SalesTeamCommon nor standard SaleCommon data
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.website = cls.env.company.website_id
if not cls.website:
pass # TODO WebsiteCommon
cls.public_user = cls.website.user_id
cls.public_partner = cls.public_user.partner_id
cls.empty_cart = cls.env['sale.order'].create({
'partner_id': cls.partner.id,
'website_id': cls.website.id,
})
cls.cart = cls.env['sale.order'].create({
'partner_id': cls.partner.id,
'website_id': cls.website.id,
'order_line': [
Command.create({
'product_id': cls.product.id,
'product_uom_qty': 5.0,
}),
Command.create({
'product_id': cls.service_product.id,
'product_uom_qty': 12.5,
})
]
})
# Publish tests products
(
cls.product
+ cls.service_product
).website_published = True
cls.pricelist.website_id = cls.website
country_be_id = cls.env['ir.model.data']._xmlid_to_res_id('base.be')
country_us_id = cls.env['ir.model.data']._xmlid_to_res_id('base.us')
cls.country_be = cls.env['res.country'].browse(country_be_id)
cls.country_us = cls.env['res.country'].browse(country_us_id)
cls.country_us_state_id = cls.env['ir.model.data']._xmlid_to_res_id('base.state_us_39')
cls.dummy_partner_address_values = {
'street': '215 Vine St',
'city': 'Scranton',
'zip': '18503',
'country_id': country_us_id,
'state_id': cls.country_us_state_id,
'phone': '+1 555-555-5555',
'email': 'admin@yourcompany.example.com',
}
def _create_so(self, **values):
default_values = {
'partner_id': self.partner.id,
'website_id': self.website.id,
'order_line': [
Command.create({
'product_id': self.product.id,
}),
],
}
return self.env['sale.order'].create(dict(default_values, **values))
@classmethod
def _prepare_carrier(cls, product, website_published=True, **values):
# Publish carriers by default
return super()._prepare_carrier(product, website_published=website_published, **values)
@classmethod
def _create_product(cls, **kwargs):
if 'website_published' not in kwargs:
kwargs['website_published'] = True
return super()._create_product(**kwargs)