Source code for glideinwms.unittests.test_creation_lib_cWDictFile_validate_node

#!/usr/bin/env python3

# SPDX-FileCopyrightText: 2009 Fermi Research Alliance, LLC
# SPDX-License-Identifier: Apache-2.0

"""
Project:
   glideinWMS

 Description:
   unit test for validate_node from
   glideinwms/creation/lib/cWDictfile

 Author:
   Dennis Box dbox@fnal.gov
"""


import unittest

import xmlrunner

from glideinwms.unittests.unittest_utils import TestImportError

try:
    from glideinwms.creation.lib.cWDictFile import validate_node
except ImportError as err:
    raise TestImportError(str(err))

GOOD_NODES = [
    "fermicloudui.fnal.gov:9618-9620",
    "fermicloudui.fnal.gov:9618?sock=collector30-40",
    "fermicloudui.fnal.gov:9618-9630",
    "fermicloudui.fnal.gov:9618?sock=collector30-50",
    "fermicloudui.fnal.gov:9618?sock=collector10-20",
    "fermicloudui.fnal.gov:9618?sock=collector",
    "fermicloudui.fnal.gov:9618?sock=collector30-40",
    "fermicloudui.fnal.gov:9618?sock=collector30",
    "fermicloudui.fnal.gov:9618?sock=collector",
    "fermicloudui.fnal.gov:9618?sock=collector&key1=val1",
    "name@fermicloudui.fnal.gov:9618?sock=schedd",
    "fermicloudui.fnal.gov:9618?sock=my5alpha0num",
    "fermicloudui.fnal.gov:9618?key1=val1&sock=collector&key2=val2",
    "jobsub-dev.fnal.gov:9618",
    "fermicloudui.fnal.gov:9618?sock=collector30-40&key=",
    "fermicloudui.fnal.gov",
    "fermicloudui.fnal.gov:9618",
    "fermicloudui.fnal.gov:9620-9640",
    "fermicloudui.fnal.gov:9618?sock=collect10",
    "fermicloudui.fnal.gov:9618?sock=collect10-20",
    "fermicloudui.fnal.gov:9618?var1=val1&sock=collect10-20&var2=val2",
    "fermicloudui.fnal.gov:9618?var1=val1&sock=collect10-20&var2=val2-6",
    "fermicloudui.fnal.gov:9618?var1=val1&sock=my5collect30-50",
]

BAD_NODES = [
    "fermicloudui.fnal.gov:9618-9620-9999" "fermicloudui.fnal.gov:9648-9630",
    "fermicloudui.fnal.gov:9618?sock=collector30-20",
    "fermicloudui.fnal.gov:9618-9620?sock=collector30-40",
    "I.dont.exist:9618",
    "jobsub-dev.fnal.gov:9618-9999-332",
    "I.dont.exist:9618?key1=val1&sock=collector&key2=val2",
    "fermicloudui.fnal.gov:9618-9620?sock=collector30-40&",
]


[docs] class Test_validate_node(unittest.TestCase):
[docs] def test_good(self): for node in GOOD_NODES: try: validate_node(node, allow_range=True) except RuntimeError as e: raise e
[docs] def test_bad(self): for node in BAD_NODES: try: validate_node(node, allow_range=True) raise RuntimeError("node %s validated, it should not") except RuntimeError: pass
[docs] def test_range_not_allowed(self): for node in GOOD_NODES: try: validate_node(node, allow_range=False) raise RuntimeError("node %s validated, it should not") except RuntimeError: pass
[docs] def test_no_dns(self): try: validate_node("I.dont.exist:9618", check_dns=False) raise RuntimeWarning("node %s validated, it should have raised a RuntimeWarning") except RuntimeWarning: pass except RuntimeError as e: raise e
if __name__ == "__main__": OFL = "unittests-reports" unittest.main(testRunner=xmlrunner.XMLTestRunner(output=OFL))