88 lines
3.0 KiB
Python
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)
|