mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 10:12:06 +02:00
86 lines
3.4 KiB
Python
86 lines
3.4 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import logging
|
|
|
|
from odoo.tests import HttpCase, tagged
|
|
|
|
from odoo.addons.http_routing.tests.common import MockRequest
|
|
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
@tagged('post_install', '-at_install', 'website_snippets')
|
|
class TestSnippets(HttpCase):
|
|
|
|
def test_01_snippet_products_edition(self):
|
|
self.env['product.product'].create({
|
|
'name': 'Test Product',
|
|
'website_published': True,
|
|
'sale_ok': True,
|
|
'list_price': 500,
|
|
})
|
|
self.env['product.product'].create({
|
|
'name': 'Test Product 2',
|
|
'website_published': True,
|
|
'sale_ok': True,
|
|
'list_price': 500,
|
|
})
|
|
self.env['product.product'].create({
|
|
'name': 'Test Product 3',
|
|
'website_published': True,
|
|
'sale_ok': True,
|
|
'list_price': 500,
|
|
})
|
|
self.env['product.product'].create({
|
|
'name': 'Test Product 4',
|
|
'website_published': True,
|
|
'sale_ok': True,
|
|
'list_price': 500,
|
|
})
|
|
self.start_tour('/', 'website_sale.snippet_products', login='admin')
|
|
|
|
def test_02_snippet_products_remove(self):
|
|
Visitor = self.env['website.visitor']
|
|
user = self.env['res.users'].search([('login', '=', 'admin')])
|
|
website_visitor = Visitor.search([('partner_id', '=', user.partner_id.id)])
|
|
if not website_visitor:
|
|
with MockRequest(user.with_user(user).env, website=self.env['website'].get_current_website()):
|
|
website_visitor = Visitor.create({'partner_id': user.partner_id.id})
|
|
self.assertEqual(website_visitor.name, user.name, "The visitor should be linked to the admin user, not OdooBot or anything.")
|
|
self.product = self.env['product.product'].create({
|
|
'name': 'Storage Box',
|
|
'website_published': True,
|
|
'image_512': b'/product/static/img/product_product_9-image.jpg',
|
|
'display_name': 'Bin',
|
|
'description_sale': 'Pedal-based opening system',
|
|
})
|
|
before_tour_product_ids = website_visitor.product_ids.ids
|
|
website_visitor._add_viewed_product(self.product.id)
|
|
|
|
self.start_tour('/', 'website_sale.products_snippet_recently_viewed', login='admin')
|
|
self.assertEqual(before_tour_product_ids, website_visitor.product_ids.ids, "There shouldn't be any new product in recently viewed after this tour")
|
|
|
|
def test_website_category_url(self):
|
|
# Create a public category with a cover image
|
|
category = self.env['product.public.category'].create({
|
|
'name': "Test Category",
|
|
})
|
|
|
|
self.env.company.website_id = False
|
|
website = self.env.ref('website.default_website')
|
|
website.update({
|
|
'domain': "http://www.example.com",
|
|
'company_id': self.env.company.id,
|
|
})
|
|
|
|
# Simulate a request with correct context
|
|
with MockRequest(self.env, website=website):
|
|
original_get_base_url = self.env['product.public.category'].sudo().get_base_url()
|
|
data = self.env['website.snippet.filter'].sudo()._prepare_category_list_data(
|
|
parent_id=category.id,
|
|
)
|
|
|
|
# Assert that the returned cover_image uses the mocked base URL
|
|
self.assertTrue(data[0]['cover_image'].startswith(original_get_base_url))
|
|
self.assertNotIn(website.domain, data[0]['cover_image'])
|