authentik.sources.kerberos.tests.utils
Kerberos Source test utils
1"""Kerberos Source test utils""" 2 3import os 4from copy import deepcopy 5from time import sleep 6 7from k5test import realm 8from rest_framework.test import APITestCase 9 10 11class KerberosTestCase(APITestCase): 12 """Kerberos Test Case""" 13 14 @classmethod 15 def setUpClass(cls): 16 cls.realm = realm.K5Realm(start_kadmind=True) 17 18 cls.realm.http_princ = f"HTTP/testserver@{cls.realm.realm}" 19 cls.realm.http_keytab = os.path.join(cls.realm.tmpdir, "http_keytab") 20 cls.realm.addprinc(cls.realm.http_princ) 21 cls.realm.extract_keytab(cls.realm.http_princ, cls.realm.http_keytab) 22 23 cls._saved_env = deepcopy(os.environ) 24 for k, v in cls.realm.env.items(): 25 os.environ[k] = v 26 # Wait for everything to start correctly 27 # Otherwise leads to flaky tests 28 sleep(5) 29 30 @classmethod 31 def tearDownClass(cls): 32 cls.realm.stop() 33 del cls.realm 34 35 for k in deepcopy(os.environ): 36 if k in cls._saved_env: 37 os.environ[k] = cls._saved_env[k] 38 else: 39 del os.environ[k] 40 cls._saved_env = None
class
KerberosTestCase(rest_framework.test.APITestCase):
12class KerberosTestCase(APITestCase): 13 """Kerberos Test Case""" 14 15 @classmethod 16 def setUpClass(cls): 17 cls.realm = realm.K5Realm(start_kadmind=True) 18 19 cls.realm.http_princ = f"HTTP/testserver@{cls.realm.realm}" 20 cls.realm.http_keytab = os.path.join(cls.realm.tmpdir, "http_keytab") 21 cls.realm.addprinc(cls.realm.http_princ) 22 cls.realm.extract_keytab(cls.realm.http_princ, cls.realm.http_keytab) 23 24 cls._saved_env = deepcopy(os.environ) 25 for k, v in cls.realm.env.items(): 26 os.environ[k] = v 27 # Wait for everything to start correctly 28 # Otherwise leads to flaky tests 29 sleep(5) 30 31 @classmethod 32 def tearDownClass(cls): 33 cls.realm.stop() 34 del cls.realm 35 36 for k in deepcopy(os.environ): 37 if k in cls._saved_env: 38 os.environ[k] = cls._saved_env[k] 39 else: 40 del os.environ[k] 41 cls._saved_env = None
Kerberos Test Case
@classmethod
def
setUpClass(cls):
15 @classmethod 16 def setUpClass(cls): 17 cls.realm = realm.K5Realm(start_kadmind=True) 18 19 cls.realm.http_princ = f"HTTP/testserver@{cls.realm.realm}" 20 cls.realm.http_keytab = os.path.join(cls.realm.tmpdir, "http_keytab") 21 cls.realm.addprinc(cls.realm.http_princ) 22 cls.realm.extract_keytab(cls.realm.http_princ, cls.realm.http_keytab) 23 24 cls._saved_env = deepcopy(os.environ) 25 for k, v in cls.realm.env.items(): 26 os.environ[k] = v 27 # Wait for everything to start correctly 28 # Otherwise leads to flaky tests 29 sleep(5)
Hook method for setting up class fixture before running tests in the class.
@classmethod
def
tearDownClass(cls):
31 @classmethod 32 def tearDownClass(cls): 33 cls.realm.stop() 34 del cls.realm 35 36 for k in deepcopy(os.environ): 37 if k in cls._saved_env: 38 os.environ[k] = cls._saved_env[k] 39 else: 40 del os.environ[k] 41 cls._saved_env = None
Hook method for deconstructing the class fixture after running all tests in the class.