Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117812091
D138.1775279651.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
D138.1775279651.diff
View Options
diff --git a/pykolab/auth/ldap/auth_cache.py b/pykolab/auth/ldap/auth_cache.py
--- a/pykolab/auth/ldap/auth_cache.py
+++ b/pykolab/auth/ldap/auth_cache.py
@@ -139,6 +139,9 @@
db.commit()
elif len(_entries) == 1:
+ if not isinstance(value, unicode):
+ value = unicode(value, 'utf-8')
+
if not _entries[0].value == value:
_entries[0].value = value
diff --git a/tests/unit/test-020-auth_cache.py b/tests/unit/test-020-auth_cache.py
--- a/tests/unit/test-020-auth_cache.py
+++ b/tests/unit/test-020-auth_cache.py
@@ -113,3 +113,49 @@
result = auth_cache.get_entry('v' + 'e'*512 + 'rylongkey')
self.assertEqual(result, 'v' + 'e'*512 + 'rylongvalue')
+
+ def test_006_plain_update(self):
+ auth_cache.set_entry(
+ 'somekey',
+ 'ou=People,dc=example,dc=org2'
+ )
+
+ result = auth_cache.get_entry('somekey')
+ self.assertEqual(result, 'ou=People,dc=example,dc=org2')
+
+ def test_007_plain_encoding_update(self):
+ auth_cache.set_entry(
+ 'somekey2',
+ 'ou=Geschäftsbereich,ou=People,dc=example,dc=org2'
+ )
+
+ result = auth_cache.get_entry('somekey2')
+ self.assertEqual(result, 'ou=Gesch\xc3\xa4ftsbereich,ou=People,dc=example,dc=org2')
+
+ def test_008_unicode_update(self):
+ auth_cache.set_entry(
+ 'somekey3',
+ u'ou=Geschäftsbereich,ou=People,dc=example,dc=org2'
+ )
+
+ result = auth_cache.get_entry('somekey3')
+ self.assertEqual(result, 'ou=Gesch\xc3\xa4ftsbereich,ou=People,dc=example,dc=org2')
+
+ @unittest.skip("Double encoding or decoding")
+ def test_009_unicode_escape_update(self):
+ auth_cache.set_entry(
+ 'somekey4',
+ u'ou=Gesch\xc3\xa4ftsbereich,ou=People,dc=example,dc=org2'
+ )
+
+ result = auth_cache.get_entry('somekey4')
+ self.assertEqual(result, u'ou=Gesch\xc3\xa4ftsbereich,ou=People,dc=example,dc=org2')
+
+ def test_010_longkey_update(self):
+ auth_cache.set_entry(
+ 'v' + 'e'*512 + 'rylongkey',
+ 'v' + 'e'*512 + 'rylongvalue2'
+ )
+
+ result = auth_cache.get_entry('v' + 'e'*512 + 'rylongkey')
+ self.assertEqual(result, 'v' + 'e'*512 + 'rylongvalue2')
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 4, 5:14 AM (1 w, 5 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18828193
Default Alt Text
D138.1775279651.diff (2 KB)
Attached To
Mode
D138: Fix encoding errors also for cache updates (#5143)
Attached
Detach File
Event Timeline