kadmin 0.7.2

Rust bindings for the Kerberos administration interface (kadm5)
Documentation
from .utils import KerberosTestCase, random_string

import kadmin


class TestPolicy(KerberosTestCase):
    def test_list_policies(self):
        kadm = kadmin.KAdmin.with_password(
            kadmin.KAdm5Variant.MitClient,
            self.realm.admin_princ,
            self.realm.password("admin"),
        )
        self.assertEqual(
            kadm.list_policies("*"),
            [],
        )

    def test_policy_exists(self):
        kadm = kadmin.KAdmin.with_password(
            kadmin.KAdm5Variant.MitClient,
            self.realm.admin_princ,
            self.realm.password("admin"),
        )
        polname = random_string(16)
        kadm.add_policy(polname)
        self.assertTrue(kadm.policy_exists(polname))
        kadm.delete_policy(polname)

    def test_create_policy(self):
        kadm = kadmin.KAdmin.with_password(
            kadmin.KAdm5Variant.MitClient,
            self.realm.admin_princ,
            self.realm.password("admin"),
        )
        polname = random_string(16)
        policy = kadm.add_policy(polname)
        self.assertEqual(policy.name, polname)
        self.assertIsNone(policy.password_max_life)
        self.assertEqual(policy.attributes, 0)
        kadm.delete_policy(polname)

    def test_delete_policy(self):
        kadm = kadmin.KAdmin.with_password(
            kadmin.KAdm5Variant.MitClient,
            self.realm.admin_princ,
            self.realm.password("admin"),
        )
        polname = random_string(16)
        policy = kadm.add_policy(polname)
        self.assertTrue(kadm.policy_exists(polname))
        policy.delete(kadm)
        self.assertFalse(kadm.policy_exists(polname))

    def test_modify(self):
        kadm = kadmin.KAdmin.with_password(
            kadmin.KAdm5Variant.MitClient,
            self.realm.admin_princ,
            self.realm.password("admin"),
        )
        polname = random_string(16)
        policy = kadm.add_policy(polname)
        policy = policy.modify(kadm, password_min_length=42)
        self.assertNotEqual(policy, None)
        assert policy is not None
        self.assertEqual(policy.password_min_length, 42)
        policy = kadm.get_policy(polname)
        self.assertNotEqual(policy, None)
        assert policy is not None
        self.assertEqual(policy.password_min_length, 42)
        kadm.delete_policy(polname)