1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-03 01:18:10 +03:00

ldb:pytests: test for Turkic i-dots in ldb_comparison_fold

In tr_TR and some other locales where the letter 'i' uppercases to
'İ', which is not ideal for LDB as we need certain strings like 'guid'
to casefold in the ASCII way.

In fixing https://bugzilla.samba.org/show_bug.cgi?id=15248) we solved
this problem in many cases, but for unindexed searches where the 'i'
is not the last character in the string. This test shows that.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15637

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Douglas Bagnall 2024-04-17 11:42:30 +12:00 committed by Andrew Bartlett
parent a75c98ad68
commit 078ecf486a
2 changed files with 18 additions and 0 deletions

View File

@ -1341,6 +1341,22 @@ class SearchTests(LdbBaseTest):
expression="(ou=unique)")
self.assertEqual(len(res11), 1)
def test_subtree_uni123_elsewhere(self):
"""Testing a search, where the search term contains a (normal ASCII)
dotted-i, that will be upper-cased to 'İ', U+0130, LATIN
CAPITAL LETTER I WITH DOT ABOVE in certain locales including
tr_TR in which this test is sometimes run.
The search term should fail because the ou does not exist, but
we used to get it wrong in unindexed searches which stopped
comparing at the i, ignoring the rest of the string, which is
not the same as the existing ou ('123' != 'que').
"""
res11 = self.l.search(base="DC=EXAMPLE,DC=NET",
scope=ldb.SCOPE_SUBTREE,
expression="(ou=uni123)")
self.assertEqual(len(res11), 0)
def test_subtree_unique_elsewhere3(self):
"""Testing a search"""

View File

@ -0,0 +1,2 @@
^ldb.python.api.tr.api.SearchTests.test_subtree_uniquer_elsewhere.none
^ldb.python.api.tr.api.SearchTestsLmdb.test_subtree_uniquer_elsewhere.none