Source code for glideinwms.unittests.test_creation_lib_factoryXmlConfig
#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2009 Fermi Research Alliance, LLC
# SPDX-License-Identifier: Apache-2.0
"""
Project:
glideinWMS
Description:
unit test for glideinwms/creation/factoryXmlConfig.py
Author:
Dennis Box dbox@fnal.gov
"""
import unittest
import xmlrunner
from glideinwms.creation.lib.factoryXmlConfig import (
CondTarElement,
Config,
EntryElement,
FactAttrElement,
FactFileElement,
FrontendElement,
parse,
)
XML = "fixtures/factory/glideinWMS.xml"
XML_ENTRY = "fixtures/factory/config.d/Dev_Sites.xml"
XML_ENTRY2 = "fixtures/factory/config.d/Dev_Sites2.xml"
[docs]
class TestFactAttrElement(unittest.TestCase):
[docs]
def setUp(self):
self.conf = parse(XML)
self.attr_el_list = self.conf.get_child_list("attrs")
[docs]
def test_validate(self):
for fact_attr_element in self.attr_el_list:
fact_attr_element.validate()
self.assertTrue(isinstance(fact_attr_element, FactAttrElement))
[docs]
class TestFactFileElement(unittest.TestCase):
[docs]
def setUp(self):
self.conf = parse(XML)
self.files = self.conf.get_child_list("files")
[docs]
def test_validate(self):
for fact_file_element in self.files:
fact_file_element.validate()
self.assertTrue(isinstance(fact_file_element, FactFileElement))
[docs]
class TestCondTarElement(unittest.TestCase):
[docs]
def setUp(self):
self.conf = parse(XML)
self.ctl = self.conf.get_child_list("condor_tarballs")
[docs]
def test_validate(self):
for cte in self.ctl:
cte.validate()
self.assertTrue("arch" in cte)
self.assertTrue("version" in cte)
self.assertTrue("os" in cte)
self.assertTrue("base_dir" in cte or "tar_file" in cte)
self.assertTrue(isinstance(cte, CondTarElement))
del cte["base_dir"]
try:
cte.validate()
except RuntimeError:
pass
[docs]
class TestFrontendElement(unittest.TestCase):
[docs]
def setUp(self):
self.conf = parse(XML)
self.sec = self.conf.get_child("security")
self.frontends = self.sec.get_child_list("frontends")
[docs]
def test_validate(self):
for frontend_element in self.frontends:
frontend_element.validate()
self.assertTrue("name" in frontend_element)
self.assertTrue("identity" in frontend_element)
self.assertTrue(isinstance(frontend_element, FrontendElement))
[docs]
class TestEntryElement(unittest.TestCase):
[docs]
def setUp(self):
self.conf = parse(XML)
self.eel = self.conf.get_child_list("entries")
[docs]
def test_getName(self):
for entry_element in self.eel:
self.assertNotEqual("", entry_element.getName())
self.assertNotEqual(None, entry_element.getName())
[docs]
def test_validate(self):
for entry_element in self.eel:
entry_element.validate()
self.assertTrue("gridtype" in entry_element)
self.assertTrue("gatekeeper" in entry_element)
self.assertTrue("auth_method" in entry_element)
self.assertTrue("enabled" in entry_element)
self.assertTrue(isinstance(entry_element, EntryElement))
[docs]
def test_validate_sub_elements(self):
for entry_element in self.eel:
entry_element.validate_sub_elements()
[docs]
class TestEntrySetElement(unittest.TestCase):
[docs]
def setUp(self):
self.conf = parse(XML)
self.esl = self.conf.get_child_list("entry_sets")
self.el = self.conf.get_child_list("entries")
self.assertTrue(len(self.esl) > 0)
[docs]
def test_validate_entry_sets(self):
for entry_set_element in self.esl:
entry_set_element.validate()
# self.assertTrue(isinstance(entry_set_element, EntrySetElement))
[docs]
def test_validate_entries(self):
for entry_set_element in self.el:
entry_set_element.validate()
# self.assertTrue(isinstance(entry_set_element, EntrySetElement))
# pylint: disable=maybe-no-member
[docs]
class TestConfig(unittest.TestCase):
[docs]
def setUp(self):
self.config = parse(XML)
[docs]
def test___init__(self):
self.assertTrue(isinstance(self.config, Config))
[docs]
def test_get_client_log_dirs(self):
dirs = self.config.get_client_log_dirs()
self.assertTrue(isinstance(dirs, dict))
[docs]
def test_get_client_proxy_dirs(self):
dirs = self.config.get_client_proxy_dirs()
self.assertTrue(isinstance(dirs, dict))
[docs]
def test_get_entries(self):
entries = self.config.get_entries()
self.assertTrue(isinstance(entries, list))
[docs]
def test_get_log_dir(self):
log_dir = self.config.get_log_dir()
self.assertEqual("fixtures/factory/log/server", log_dir)
[docs]
def test_get_monitor_dir(self):
monitor_dir = self.config.get_monitor_dir()
self.assertEqual("fixtures/factory/web-area/monitor", monitor_dir)
[docs]
def test_get_stage_dir(self):
stage_dir = self.config.get_stage_dir()
self.assertEqual("fixtures/factory/web-area/stage", stage_dir)
[docs]
def test_get_submit_dir(self):
submit_dir = self.config.get_submit_dir()
self.assertEqual("fixtures/factory/work-dir", submit_dir)
[docs]
def test_get_web_url(self):
url = self.config.get_web_url()
self.assertEqual("http://fermicloud380.fnal.gov/factory/stage", url)
[docs]
def test_set_client_log_dirs(self):
self.config.set_client_log_dirs()
[docs]
def test_set_client_proxy_dirs(self):
self.config.set_client_proxy_dirs()
[docs]
def test_set_log_dir(self):
self.config.set_log_dir()
[docs]
def test_set_monitor_dir(self):
self.config.set_monitor_dir()
[docs]
def test_set_stage_dir(self):
self.config.set_stage_dir()
[docs]
def test_set_submit_dir(self):
self.config.set_submit_dir()
[docs]
def test_set_web_url(self):
self.config.set_web_url()
[docs]
def test_validate(self):
self.config.validate()
# pylint: enable=maybe-no-member
[docs]
class TestParse(unittest.TestCase):
[docs]
def test_parse(self):
parse(XML)
try:
parse(XML_ENTRY)
except RuntimeError:
pass
if __name__ == "__main__":
unittest.main(testRunner=xmlrunner.XMLTestRunner(output="unittests-reports"))