54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from odoo.tests import TransactionCase, tagged
|
|
|
|
|
|
@tagged('-at_install', 'post_install')
|
|
class TestResCountryState(TransactionCase):
|
|
def test_find_by_name(self):
|
|
"""It should be possible to find a state by its display name
|
|
"""
|
|
glorious_arstotzka = self.env['res.country'].create({
|
|
'name': 'Arstotzka',
|
|
'code': 'AA',
|
|
})
|
|
altan = self.env['res.country.state'].create({
|
|
'country_id': glorious_arstotzka.id,
|
|
'code': 'AL',
|
|
'name': 'Altan',
|
|
})
|
|
|
|
for name in [
|
|
altan.name,
|
|
altan.display_name,
|
|
'Altan(AA)',
|
|
'Altan ( AA )',
|
|
'Altan (Arstotzka)',
|
|
'Altan (Arst)', # dubious
|
|
]:
|
|
with self.subTest(name):
|
|
self.assertEqual(
|
|
self.env['res.country.state'].name_search(name, operator='='),
|
|
[(altan.id, altan.display_name)]
|
|
)
|
|
|
|
# imitates basque provinces
|
|
vescillo = self.env['res.country.state'].create({
|
|
'country_id': glorious_arstotzka.id,
|
|
'code': 'VE',
|
|
'name': "Vescillo (Vesilo)",
|
|
})
|
|
for name in [
|
|
vescillo.name,
|
|
vescillo.display_name,
|
|
"vescillo",
|
|
"vesilo",
|
|
"vescillo (AA)",
|
|
"vesilo (AA)",
|
|
"vesilo (Arstotzka)",
|
|
]:
|
|
with self.subTest(name):
|
|
# note operator for more flexible state name matching
|
|
self.assertEqual(
|
|
self.env['res.country.state'].name_search(name, operator='ilike'),
|
|
[(vescillo.id, vescillo.display_name)]
|
|
)
|