use all object classes when performing search
[matthijs/upstream/django-ldapdb.git] / ldapdb / tests.py
index b102a3ef2670cf096575b30800a0aedfb60236c9..d2aba735a7e6a7c3a38639500e9a9d150169d9fd 100644 (file)
@@ -56,15 +56,28 @@ class WhereTestCase(TestCase):
         where.add((Constraint("cn", "cn", CharField()), 'startswith', "test"), AND)
         self.assertEquals(where.as_sql(), "(cn=test*)")
 
+        where = WhereNode()
+        where.add((Constraint("cn", "cn", CharField()), 'startswith', "te*st"), AND)
+        self.assertEquals(where.as_sql(), "(cn=te\\2ast*)")
+
+    def test_char_field_endswith(self):
         where = WhereNode()
         where.add((Constraint("cn", "cn", CharField()), 'endswith', "test"), AND)
         self.assertEquals(where.as_sql(), "(cn=*test)")
 
+        where = WhereNode()
+        where.add((Constraint("cn", "cn", CharField()), 'endswith', "te*st"), AND)
+        self.assertEquals(where.as_sql(), "(cn=*te\\2ast)")
+
     def test_char_field_contains(self):
         where = WhereNode()
         where.add((Constraint("cn", "cn", CharField()), 'contains', "test"), AND)
         self.assertEquals(where.as_sql(), "(cn=*test*)")
 
+        where = WhereNode()
+        where.add((Constraint("cn", "cn", CharField()), 'contains', "te*st"), AND)
+        self.assertEquals(where.as_sql(), "(cn=*te\\2ast*)")
+
     def test_integer_field(self):
         where = WhereNode()
         where.add((Constraint("uid", "uid", IntegerField()), 'exact', 1), AND)
@@ -78,6 +91,15 @@ class WhereTestCase(TestCase):
         where.add((Constraint("uid", "uid", IntegerField()), 'lte', 1), AND)
         self.assertEquals(where.as_sql(), "(uid<=1)")
 
+    def test_list_field_contains(self):
+        where = WhereNode()
+        where.add((Constraint("memberUid", "memberUid", ListField()), 'contains', 'foouser'), AND)
+        self.assertEquals(where.as_sql(), "(memberUid=foouser)")
+
+        where = WhereNode()
+        where.add((Constraint("memberUid", "memberUid", ListField()), 'contains', '(foouser)'), AND)
+        self.assertEquals(where.as_sql(), "(memberUid=\\28foouser\\29)")
+
     def test_and(self):
         where = WhereNode()
         where.add((Constraint("cn", "cn", CharField()), 'exact', "foo"), AND)