mirror of
https://github.com/samba-team/samba.git
synced 2025-12-21 20:23:50 +03:00
pytest: add key_credential_link_Dn tests
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
This commit is contained in:
committed by
Douglas Bagnall
parent
0cedf27dcf
commit
14c917ca94
@@ -20,6 +20,7 @@
|
|||||||
import os
|
import os
|
||||||
import samba
|
import samba
|
||||||
from samba.samdb import BinaryDn, PlainDn, StringDn
|
from samba.samdb import BinaryDn, PlainDn, StringDn
|
||||||
|
from samba.key_credential_link import KeyCredentialLinkDn
|
||||||
from samba.tests import TestCaseInTempDir
|
from samba.tests import TestCaseInTempDir
|
||||||
|
|
||||||
|
|
||||||
@@ -66,6 +67,88 @@ class DsdbDnTests(TestCaseInTempDir):
|
|||||||
dn2.prefix = badstring
|
dn2.prefix = badstring
|
||||||
self.assertIn(errmsg, str(cm.exception))
|
self.assertIn(errmsg, str(cm.exception))
|
||||||
|
|
||||||
|
def test_KeyCredentialLinkDn_valid(self):
|
||||||
|
"""Simple KeyCredentialLinkDn objects."""
|
||||||
|
sam = self._temp_ldb()
|
||||||
|
for name, dnstring, count in [
|
||||||
|
('empty', "B:8:00020000:DC=example,DC=com", 0),
|
||||||
|
('key id',
|
||||||
|
"B:78:00020000"
|
||||||
|
"2000" "01" # length, key id
|
||||||
|
"000102030405060708090A0B0C0D0E0F"
|
||||||
|
"101112131415161718191A1B1C1D1E1F"
|
||||||
|
":DC=example,DC=com", 1),
|
||||||
|
('key hash',
|
||||||
|
"B:78:00020000"
|
||||||
|
"2000" "02" # length, key hash
|
||||||
|
"000102030405060708090A0B0C0D0E0F"
|
||||||
|
"101112131415161718191A1B1C1D1E1F"
|
||||||
|
":DC=example,DC=com", 1),
|
||||||
|
('key usage',
|
||||||
|
"B:16:00020000"
|
||||||
|
"0100" "04" # length, key_usage
|
||||||
|
"01"
|
||||||
|
":DC=example,DC=com", 1),
|
||||||
|
]:
|
||||||
|
print(f"{name}: {dnstring}")
|
||||||
|
k = KeyCredentialLinkDn(sam, dnstring)
|
||||||
|
self.assertEqual(k.blob.count, count)
|
||||||
|
b = BinaryDn(sam, dnstring)
|
||||||
|
self.assertEqual(k, b)
|
||||||
|
self.assertEqual(str(k), str(b))
|
||||||
|
self.assertEqual(str(k).upper(), dnstring.upper())
|
||||||
|
|
||||||
|
def test_KeyCredentialLinkDn_invalid(self):
|
||||||
|
"""KeyCredentialLinkDn objects that should fail."""
|
||||||
|
sam = self._temp_ldb()
|
||||||
|
for name, dnstring, valid_binary in [
|
||||||
|
('bad version', "B:8:00030000:DC=example,DC=com", True),
|
||||||
|
('length mismatch 1',
|
||||||
|
"B:78:00020000"
|
||||||
|
"2200" "01" # length, key_id
|
||||||
|
"000102030405060708090A0B0C0D0E0F"
|
||||||
|
"101112131415161718191A1B1C1D1E1F"
|
||||||
|
":DC=example,DC=com", True),
|
||||||
|
('length mismatch 2',
|
||||||
|
"B:80:00020000"
|
||||||
|
"2000" "01" # length, key_id
|
||||||
|
"000102030405060708090A0B0C0D0E0F"
|
||||||
|
"101112131415161718191A1B1C1D1E1F00"
|
||||||
|
":DC=example,DC=com", True),
|
||||||
|
('binary length mismatch',
|
||||||
|
"B:10:00020000"
|
||||||
|
":DC=example,DC=com", False),
|
||||||
|
#('bad key usage',
|
||||||
|
# "B:16:00020000"
|
||||||
|
# "0100" "04" # length, key_usage
|
||||||
|
# "FF"
|
||||||
|
# ":DC=example,DC=com", True),
|
||||||
|
('bad entry id 00',
|
||||||
|
"B:16:00020000"
|
||||||
|
"0100" "00" # length, invalid
|
||||||
|
"FF"
|
||||||
|
":DC=example,DC=com", True),
|
||||||
|
('bad entry id ff',
|
||||||
|
"B:16:00020000"
|
||||||
|
"0100" "FF" # length, invalid
|
||||||
|
"FF"
|
||||||
|
":DC=example,DC=com", True),
|
||||||
|
]:
|
||||||
|
print(name)
|
||||||
|
with self.assertRaises(ValueError) as cm:
|
||||||
|
k = KeyCredentialLinkDn(sam, dnstring)
|
||||||
|
|
||||||
|
print(cm.exception)
|
||||||
|
try:
|
||||||
|
b = BinaryDn(sam, dnstring)
|
||||||
|
except ValueError:
|
||||||
|
if valid_binary:
|
||||||
|
self.fail(f"{name}: expected {dnstring} to be valid binary dn")
|
||||||
|
else:
|
||||||
|
if not valid_binary:
|
||||||
|
self.fail(f"{name}: expected {dnstring} to be invalid binary dn, "
|
||||||
|
f"got {b}")
|
||||||
|
|
||||||
def test_PlainDn(self):
|
def test_PlainDn(self):
|
||||||
sam = self._temp_ldb("test_PlainDn.ldb")
|
sam = self._temp_ldb("test_PlainDn.ldb")
|
||||||
url = self.tempdir + "/test_PlainDn.ldb"
|
url = self.tempdir + "/test_PlainDn.ldb"
|
||||||
|
|||||||
Reference in New Issue
Block a user