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

41 lines
2.3 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.product.tests.common import ProductVariantsCommon
from odoo.tests import tagged
@tagged('-at_install', 'post_install')
class TestFuzzy(ProductVariantsCommon):
def test_variant_default_code(self):
website = self.env.ref('website.default_website')
line = self.product_template_sofa.attribute_line_ids
value_red = line.product_template_value_ids[0]
value_blue = line.product_template_value_ids[1]
value_green = line.product_template_value_ids[2]
product_red = self.product_template_sofa._get_variant_for_combination(value_red)
product_blue = self.product_template_sofa._get_variant_for_combination(value_blue)
product_green = self.product_template_sofa._get_variant_for_combination(value_green)
product_red.default_code = 'RED_12345'
product_blue.default_code = 'BLUE_ABCDE'
product_green.default_code = 'GREEN_98765'
self.cr.flush()
options = {
'displayDescription': True, 'displayDetail': True, 'display_currency': True,
'displayExtraDetail': True, 'displayExtraLink': True,
'displayImage': True, 'allowFuzzy': True
}
results_count, _, fuzzy_term = website._search_with_fuzzy('products_only', 'RED234', 5, 'name asc', options)
self.assertEqual(1, results_count, "Should have found red")
self.assertEqual('red_12345', fuzzy_term, "Should suggest red")
results_count, _, fuzzy_term = website._search_with_fuzzy('products_only', 'GROEN98765', 5, 'name asc', options)
self.assertEqual(1, results_count, "Should have found green")
self.assertEqual('green_98765', fuzzy_term, "Should suggest green")
results_count, _, fuzzy_term = website._search_with_fuzzy('products_only', 'BLUABCE', 5, 'name asc', options)
self.assertEqual(1, results_count, "Should have found blue")
self.assertEqual('blue_abcde', fuzzy_term, "Should suggest blue")
results_count, _, fuzzy_term = website._search_with_fuzzy('products_only', 'SQWBRNZ', 5, 'name asc', options)
self.assertEqual(0, results_count, "Should have found none")
self.assertIsNone(fuzzy_term, "Should have no suggestion")