+ where = WhereNode()
+ where.add((Constraint("cn", "cn", CharField()), 'exact', "(test)"), AND)
+ self.assertEquals(where.as_sql(), "(cn=\\28test\\29)")
+
+ where = WhereNode()
+ where.add((Constraint("cn", "cn", CharField()), 'startswith', "test"), AND)
+ self.assertEquals(where.as_sql(), "(cn=test*)")
+
+ 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()), 'in', ["foo", "bar"]), AND)
+ self.assertEquals(where.as_sql(), "(|(cn=foo)(cn=bar))")
+
+ where = WhereNode()
+ where.add((Constraint("cn", "cn", CharField()), 'contains', "test"), AND)
+ self.assertEquals(where.as_sql(), "(cn=*test*)")
+
+ def test_integer_field(self):
+ where = WhereNode()
+ where.add((Constraint("uid", "uid", CharField()), 'exact', 1), AND)
+ self.assertEquals(where.as_sql(), "(uid=1)")
+