Commit 7d5ea201 authored by Jérome Perrin's avatar Jérome Perrin

test: verify catalog keys support unicode on python2

Using unicode with a catalog key or related key got broken in the merge
of zope4 support, but using unicode on a translated key (such as
translated_portal_type or translated_validation_state_title) was not
working before.
parent 511dee09
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
from collections import defaultdict from collections import defaultdict
import os import os
import six
from DateTime import DateTime from DateTime import DateTime
from Products.ERP5Type.Utils import convertToUpperCase from Products.ERP5Type.Utils import convertToUpperCase
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
...@@ -1143,6 +1144,32 @@ class TestERP5Base(ERP5TypeTestCase): ...@@ -1143,6 +1144,32 @@ class TestERP5Base(ERP5TypeTestCase):
[x.getObject() for x in [x.getObject() for x in
self.portal.portal_catalog(title='名前', self.portal.portal_catalog(title='名前',
translated_portal_type='Pérsonne')]) translated_portal_type='Pérsonne')])
if six.PY2:
# listbox (for example) searches catalog with unicode
self.assertEqual({person_1, person_2}, {x.getObject()
for x in self.portal.portal_catalog(translated_portal_type=u'Pérsonne')})
self.assertEqual({person_2, organisation}, {x.getObject()
for x in self.portal.portal_catalog(
translated_validation_state_title=u'Broüillon',
portal_type=('Person', 'Organisation'))})
self.assertEqual([person_2],
[x.getObject() for x in
self.portal.portal_catalog(translated_validation_state_title=u'Broüillon',
translated_portal_type=u'Pérsonne')])
self.assertEqual([person_1],
[x.getObject() for x in
self.portal.portal_catalog(title=u'名前',
translated_portal_type='Pérsonne')])
self.assertEqual([person_1],
[x.getObject() for x in
self.portal.portal_catalog(title='名前',
translated_portal_type=u'Pérsonne')])
self.assertEqual([person_1],
[x.getObject() for x in
self.portal.portal_catalog(title=u'名前',
translated_portal_type=u'Pérsonne')])
self.abort() self.abort()
def test_Base_createCloneDocument(self): def test_Base_createCloneDocument(self):
......
...@@ -633,6 +633,10 @@ class TestERP5Catalog(ERP5TypeTestCase, LogInterceptor): ...@@ -633,6 +633,10 @@ class TestERP5Catalog(ERP5TypeTestCase, LogInterceptor):
folder_object_list = [x.getObject().getId() for x in folder_object_list = [x.getObject().getId() for x in
person_module.searchFolder(title=title)] person_module.searchFolder(title=title)]
self.assertEqual(['5'],folder_object_list) self.assertEqual(['5'],folder_object_list)
if six.PY2:
folder_object_list = [x.getObject().getId() for x in
person_module.searchFolder(title=unicode(title, 'utf-8'))]
self.assertEqual(['5'],folder_object_list)
def test_Collation(self): def test_Collation(self):
person_module = self.getPersonModule() person_module = self.getPersonModule()
...@@ -654,6 +658,10 @@ class TestERP5Catalog(ERP5TypeTestCase, LogInterceptor): ...@@ -654,6 +658,10 @@ class TestERP5Catalog(ERP5TypeTestCase, LogInterceptor):
person_module.searchFolder(title='sebastien')] person_module.searchFolder(title='sebastien')]
self.assertEqual(['5'],folder_object_list) self.assertEqual(['5'],folder_object_list)
if six.PY2:
folder_object_list = [x.getObject().getId() for x in
person_module.searchFolder(title=u'Sebastien')]
self.assertEqual(['5'],folder_object_list)
def test_20_SearchFolderWithDynamicRelatedKey(self): def test_20_SearchFolderWithDynamicRelatedKey(self):
# Create some objects # Create some objects
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment