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