summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Sutton <josephsutton@catalyst.net.nz>2021-09-25 13:48:57 +1200
committerStefan Metzmacher <metze@samba.org>2021-10-26 12:00:28 +0000
commitfabd904977ab34244195fff424502672846413e1 (patch)
tree6b7484bf2fb5368f7406a65bf1fb86f0d4e5dea8
parent588749ba7ba7a0cf1f11583f9570275c67616d35 (diff)
downloadsamba-fabd904977ab34244195fff424502672846413e1.tar.gz
pyldb: Add tests for ldb.Message containment testing
These tests verify that the 'in' operator on ldb.Message is consistent with indexing and the get() method. This means that the 'dn' element should always be present, lookups should be case-insensitive, and use of an invalid type should result in a TypeError. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14845 Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> (cherry picked from commit 865fe238599a732360b77e06e592cb85d459acf8)
-rwxr-xr-xlib/ldb/tests/python/api.py23
-rw-r--r--selftest/knownfail.d/pyldb4
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/ldb/tests/python/api.py b/lib/ldb/tests/python/api.py
index bcb01e15f56..675b5859af8 100755
--- a/lib/ldb/tests/python/api.py
+++ b/lib/ldb/tests/python/api.py
@@ -3177,6 +3177,29 @@ class LdbMsgTests(TestCase):
def test_get_unknown_text(self):
self.assertEqual(None, self.msg.text.get("lalalala"))
+ def test_contains(self):
+ self.msg['foo'] = ['bar']
+ self.assertIn('foo', self.msg)
+
+ self.msg['Foo'] = ['bar']
+ self.assertIn('Foo', self.msg)
+
+ def test_contains_case(self):
+ self.msg['foo'] = ['bar']
+ self.assertIn('Foo', self.msg)
+
+ self.msg['Foo'] = ['bar']
+ self.assertIn('foo', self.msg)
+
+ def test_contains_dn(self):
+ self.assertIn('dn', self.msg)
+
+ def test_contains_dn_case(self):
+ self.assertIn('DN', self.msg)
+
+ def test_contains_invalid(self):
+ self.assertRaises(TypeError, lambda: None in self.msg)
+
def test_msg_diff(self):
l = ldb.Ldb()
msgs = l.parse_ldif("dn: foo=bar\nfoo: bar\nbaz: do\n\ndn: foo=bar\nfoo: bar\nbaz: dont\n")
diff --git a/selftest/knownfail.d/pyldb b/selftest/knownfail.d/pyldb
new file mode 100644
index 00000000000..34bdac4f682
--- /dev/null
+++ b/selftest/knownfail.d/pyldb
@@ -0,0 +1,4 @@
+^ldb.python.api.LdbMsgTests.test_contains_case
+^ldb.python.api.LdbMsgTests.test_contains_dn
+^ldb.python.api.LdbMsgTests.test_contains_dn_case
+^ldb.python.api.LdbMsgTests.test_contains_invalid