]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pytest:krb5: errcode errors include names
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Tue, 4 Nov 2025 23:50:31 +0000 (12:50 +1300)
committerJennifer Sutton <jsutton@samba.org>
Thu, 20 Nov 2025 21:25:39 +0000 (21:25 +0000)
Before:

> AssertionError: 6 not found in (20,)

After:

> AssertionError: 6 not found in (20,) : KDC_ERR_C_PRINCIPAL_UNKNOWN not in ['KDC_ERR_TGT_REVOKED']

Useful for people who don't know the codes off by heart.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
python/samba/tests/krb5/raw_testcase.py
python/samba/tests/krb5/rfc4120_constants.py

index 07bf4490104a7144d6fd34c89179ffd9deb9fc92..e36e8fce418d40ffb71d6238cc29da975e5c3a81 100644 (file)
@@ -130,6 +130,7 @@ from samba.tests.krb5.rfc4120_constants import (
     PADATA_REQ_ENC_PA_REP,
     PADATA_SUPPORTED_ETYPES,
     TD_CMS_DIGEST_ALGORITHMS,
+    errmap
 )
 import samba.tests.krb5.kcrypto as kcrypto
 
@@ -5080,7 +5081,9 @@ class RawKerberosTest(TestCase):
         self.assertElementEqual(rep, 'pvno', 5)
         self.assertElementEqual(rep, 'msg-type', KRB_ERROR)
         error_code = self.getElementValue(rep, 'error-code')
-        self.assertIn(error_code, expected_error_mode)
+        self.assertIn(error_code, expected_error_mode,
+                      f"{errmap.get(error_code)} not in "
+                      f"{[errmap.get(e) for e in expected_error_mode]}")
         if self.strict_checking:
             self.assertElementMissing(rep, 'ctime')
             self.assertElementMissing(rep, 'cusec')
index c98f1c67b1282c8c0dd2d05e4ec432ac4ac55bec..a643f40c4af7d3365f4c3b597a87073e4a7d8c91 100644 (file)
@@ -132,6 +132,8 @@ KDC_ERR_PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTED = 81
 KDC_ERR_PREAUTH_EXPIRED = 90
 KDC_ERR_UNKNOWN_CRITICAL_FAST_OPTIONS = 93
 
+errmap = {v: k for k, v in globals().items() if k[:8] == 'KDC_ERR_'}
+
 # Kpasswd error codes
 KPASSWD_SUCCESS = 0
 KPASSWD_MALFORMED = 1