mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-29 13:07:50 +00:00
[324] make sure the temporary DB file for zonemgr test is always cleaned up.
This commit is contained in:
parent
698534e556
commit
16b92d014e
@ -20,6 +20,7 @@ endif
|
|||||||
for pytest in $(PYTESTS) ; do \
|
for pytest in $(PYTESTS) ; do \
|
||||||
echo Running test: $$pytest ; \
|
echo Running test: $$pytest ; \
|
||||||
$(LIBRARY_PATH_PLACEHOLDER) \
|
$(LIBRARY_PATH_PLACEHOLDER) \
|
||||||
|
TESTDATAOBJDIR=$(abs_top_builddir)/src/bin/zonemgr/tests/ \
|
||||||
B10_FROM_BUILD=$(abs_top_builddir) \
|
B10_FROM_BUILD=$(abs_top_builddir) \
|
||||||
PYTHONPATH=$(COMMON_PYTHON_PATH):$(abs_top_builddir)/src/bin/zonemgr:$(abs_top_builddir)/src/lib/dns/python/.libs:$(abs_top_builddir)/src/lib/xfr/.libs \
|
PYTHONPATH=$(COMMON_PYTHON_PATH):$(abs_top_builddir)/src/bin/zonemgr:$(abs_top_builddir)/src/lib/dns/python/.libs:$(abs_top_builddir)/src/lib/xfr/.libs \
|
||||||
$(PYCOVERAGE_RUN) $(abs_srcdir)/$$pytest || exit ; \
|
$(PYCOVERAGE_RUN) $(abs_srcdir)/$$pytest || exit ; \
|
||||||
|
@ -35,6 +35,8 @@ LOWERBOUND_RETRY = 5
|
|||||||
REFRESH_JITTER = 0.10
|
REFRESH_JITTER = 0.10
|
||||||
RELOAD_JITTER = 0.75
|
RELOAD_JITTER = 0.75
|
||||||
|
|
||||||
|
TEST_SQLITE3_DBFILE = os.getenv("TESTDATAOBJDIR") + '/initdb.file'
|
||||||
|
|
||||||
class ZonemgrTestException(Exception):
|
class ZonemgrTestException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -57,7 +59,7 @@ class FakeCCSession(isc.config.ConfigData, MockModuleCCSession):
|
|||||||
|
|
||||||
def get_remote_config_value(self, module_name, identifier):
|
def get_remote_config_value(self, module_name, identifier):
|
||||||
if module_name == "Auth" and identifier == "database_file":
|
if module_name == "Auth" and identifier == "database_file":
|
||||||
return "initdb.file", False
|
return TEST_SQLITE3_DBFILE, False
|
||||||
else:
|
else:
|
||||||
return "unknown", False
|
return "unknown", False
|
||||||
|
|
||||||
@ -81,7 +83,7 @@ class MyZonemgrRefresh(ZonemgrRefresh):
|
|||||||
return None
|
return None
|
||||||
sqlite3_ds.get_zone_soa = get_zone_soa
|
sqlite3_ds.get_zone_soa = get_zone_soa
|
||||||
|
|
||||||
ZonemgrRefresh.__init__(self, MySession(), "initdb.file",
|
ZonemgrRefresh.__init__(self, MySession(), TEST_SQLITE3_DBFILE,
|
||||||
self._slave_socket, FakeCCSession())
|
self._slave_socket, FakeCCSession())
|
||||||
current_time = time.time()
|
current_time = time.time()
|
||||||
self._zonemgr_refresh_info = {
|
self._zonemgr_refresh_info = {
|
||||||
@ -99,11 +101,18 @@ class MyZonemgrRefresh(ZonemgrRefresh):
|
|||||||
|
|
||||||
class TestZonemgrRefresh(unittest.TestCase):
|
class TestZonemgrRefresh(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
if os.path.exists(TEST_SQLITE3_DBFILE):
|
||||||
|
os.unlink(TEST_SQLITE3_DBFILE)
|
||||||
self.stderr_backup = sys.stderr
|
self.stderr_backup = sys.stderr
|
||||||
sys.stderr = open(os.devnull, 'w')
|
sys.stderr = open(os.devnull, 'w')
|
||||||
self.zone_refresh = MyZonemgrRefresh()
|
self.zone_refresh = MyZonemgrRefresh()
|
||||||
self.cc_session = FakeCCSession()
|
self.cc_session = FakeCCSession()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
if os.path.exists(TEST_SQLITE3_DBFILE):
|
||||||
|
os.unlink(TEST_SQLITE3_DBFILE)
|
||||||
|
sys.stderr = self.stderr_backup
|
||||||
|
|
||||||
def test_random_jitter(self):
|
def test_random_jitter(self):
|
||||||
max = 100025.120
|
max = 100025.120
|
||||||
jitter = 0
|
jitter = 0
|
||||||
@ -602,13 +611,10 @@ class TestZonemgrRefresh(unittest.TestCase):
|
|||||||
self.zone_refresh.update_config_data,
|
self.zone_refresh.update_config_data,
|
||||||
config, self.cc_session)
|
config, self.cc_session)
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
sys.stderr= self.stderr_backup
|
|
||||||
|
|
||||||
class MyZonemgr(Zonemgr):
|
class MyZonemgr(Zonemgr):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._db_file = "initdb.file"
|
self._db_file = TEST_SQLITE3_DBFILE
|
||||||
self._zone_refresh = None
|
self._zone_refresh = None
|
||||||
self._shutdown_event = threading.Event()
|
self._shutdown_event = threading.Event()
|
||||||
self._cc = MySession()
|
self._cc = MySession()
|
||||||
@ -628,8 +634,14 @@ class MyZonemgr(Zonemgr):
|
|||||||
class TestZonemgr(unittest.TestCase):
|
class TestZonemgr(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
if os.path.exists(TEST_SQLITE3_DBFILE):
|
||||||
|
os.unlink(TEST_SQLITE3_DBFILE)
|
||||||
self.zonemgr = MyZonemgr()
|
self.zonemgr = MyZonemgr()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
if os.path.exists(TEST_SQLITE3_DBFILE):
|
||||||
|
os.unlink(TEST_SQLITE3_DBFILE)
|
||||||
|
|
||||||
def test_config_handler(self):
|
def test_config_handler(self):
|
||||||
config_data1 = {
|
config_data1 = {
|
||||||
"lowerbound_refresh" : 60,
|
"lowerbound_refresh" : 60,
|
||||||
@ -650,8 +662,8 @@ class TestZonemgr(unittest.TestCase):
|
|||||||
self.zonemgr.config_handler(config_data3)
|
self.zonemgr.config_handler(config_data3)
|
||||||
self.assertEqual(0.5, self.zonemgr._config_data.get("refresh_jitter"))
|
self.assertEqual(0.5, self.zonemgr._config_data.get("refresh_jitter"))
|
||||||
# The zone doesn't exist in database, simply skip loading soa for it and log an warning
|
# The zone doesn't exist in database, simply skip loading soa for it and log an warning
|
||||||
self.zonemgr._zone_refresh = ZonemgrRefresh(None, "initdb.file", None,
|
self.zonemgr._zone_refresh = ZonemgrRefresh(None, TEST_SQLITE3_DBFILE,
|
||||||
FakeCCSession())
|
None, FakeCCSession())
|
||||||
config_data1["secondary_zones"] = [{"name": "nonexistent.example",
|
config_data1["secondary_zones"] = [{"name": "nonexistent.example",
|
||||||
"class": "IN"}]
|
"class": "IN"}]
|
||||||
self.assertEqual(self.zonemgr.config_handler(config_data1),
|
self.assertEqual(self.zonemgr.config_handler(config_data1),
|
||||||
@ -663,7 +675,7 @@ class TestZonemgr(unittest.TestCase):
|
|||||||
self.assertEqual(0.1, self.zonemgr._config_data.get("refresh_jitter"))
|
self.assertEqual(0.1, self.zonemgr._config_data.get("refresh_jitter"))
|
||||||
|
|
||||||
def test_get_db_file(self):
|
def test_get_db_file(self):
|
||||||
self.assertEqual("initdb.file", self.zonemgr.get_db_file())
|
self.assertEqual(TEST_SQLITE3_DBFILE, self.zonemgr.get_db_file())
|
||||||
|
|
||||||
def test_parse_cmd_params(self):
|
def test_parse_cmd_params(self):
|
||||||
params1 = {"zone_name" : "example.com.", "zone_class" : "CH", "master" : "127.0.0.1"}
|
params1 = {"zone_name" : "example.com.", "zone_class" : "CH", "master" : "127.0.0.1"}
|
||||||
@ -691,9 +703,6 @@ class TestZonemgr(unittest.TestCase):
|
|||||||
self.zonemgr.run()
|
self.zonemgr.run()
|
||||||
self.assertTrue(self.zonemgr._module_cc.stopped)
|
self.assertTrue(self.zonemgr._module_cc.stopped)
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
if __name__== "__main__":
|
if __name__== "__main__":
|
||||||
isc.log.resetUnitTestRootLogger()
|
isc.log.resetUnitTestRootLogger()
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user