Replace CONST.* by getattribute/setattr for cli 55/34955/1
authorLinda Wang <wangwulin@huawei.com>
Thu, 18 May 2017 08:35:48 +0000 (08:35 +0000)
committerLinda Wang <wangwulin@huawei.com>
Thu, 18 May 2017 08:37:01 +0000 (08:37 +0000)
Directories affected:
 - functest/cli/commands
and respective unit test

JIRA: FUNCTEST-796

Change-Id: I2ad721819d4b8f97098c589c3b5ed3dcc945409d
Signed-off-by: Linda Wang <wangwulin@huawei.com>
functest/cli/commands/cli_env.py
functest/cli/commands/cli_os.py
functest/cli/commands/cli_testcase.py
functest/cli/commands/cli_tier.py
functest/tests/unit/cli/commands/test_cli_env.py
functest/tests/unit/cli/commands/test_cli_os.py
functest/tests/unit/cli/commands/test_cli_testcase.py
functest/tests/unit/cli/commands/test_cli_tier.py

index 14ad01b..f5ba4b3 100644 (file)
@@ -28,7 +28,7 @@ class CliEnv(object):
                                "it again? [y|n]\n")
             while True:
                 if answer.lower() in ["y", "yes"]:
-                    os.remove(CONST.env_active)
+                    os.remove(CONST.__getattribute__('env_active'))
                     break
                 elif answer.lower() in ["n", "no"]:
                     return
@@ -36,19 +36,19 @@ class CliEnv(object):
                     answer = raw_input("Invalid answer. Please type [y|n]\n")
 
         cmd = ("python %s/functest/ci/prepare_env.py start" %
-               CONST.dir_repo_functest)
+               CONST.__getattribute__('dir_repo_functest'))
         ft_utils.execute_command(cmd)
 
     def show(self):
         def _get_value(attr, default='Unknown'):
             return attr if attr else default
 
-        install_type = _get_value(CONST.INSTALLER_TYPE)
-        installer_ip = _get_value(CONST.INSTALLER_IP)
+        install_type = _get_value(CONST.__getattribute__('INSTALLER_TYPE'))
+        installer_ip = _get_value(CONST.__getattribute__('INSTALLER_IP'))
         installer_info = ("%s, %s" % (install_type, installer_ip))
-        scenario = _get_value(CONST.DEPLOY_SCENARIO)
-        node = _get_value(CONST.NODE_NAME)
-        repo_h = git.Repo(CONST.dir_repo_functest).head
+        scenario = _get_value(CONST.__getattribute__('DEPLOY_SCENARIO'))
+        node = _get_value(CONST.__getattribute__('NODE_NAME'))
+        repo_h = git.Repo(CONST.__getattribute__('dir_repo_functest')).head
         if repo_h.is_detached:
             git_branch = 'detached from FETCH_HEAD'
             git_hash = repo_h.commit.hexsha
@@ -56,8 +56,8 @@ class CliEnv(object):
             branch = repo_h.reference
             git_branch = branch.name
             git_hash = branch.commit.hexsha
-        is_debug = _get_value(CONST.CI_DEBUG, 'false')
-        build_tag = CONST.BUILD_TAG
+        is_debug = _get_value(CONST.__getattribute__('CI_DEBUG'), 'false')
+        build_tag = CONST.__getattribute__('BUILD_TAG')
         if build_tag is not None:
             build_tag = build_tag.lstrip(
                 "jenkins-").lstrip("functest").lstrip("-")
@@ -84,7 +84,7 @@ class CliEnv(object):
 
     def status(self, verbose=True):
         ret_val = 0
-        if not os.path.isfile(CONST.env_active):
+        if not os.path.isfile(CONST.__getattribute__('env_active')):
             if verbose:
                 click.echo("Functest environment is not installed.\n")
             ret_val = 1
index f85f404..e54eb42 100644 (file)
@@ -21,11 +21,11 @@ import functest.utils.openstack_snapshot as os_snapshot
 class CliOpenStack(object):
 
     def __init__(self):
-        self.os_auth_url = CONST.OS_AUTH_URL
+        self.os_auth_url = CONST.__getattribute__('OS_AUTH_URL')
         self.endpoint_ip = None
         self.endpoint_port = None
-        self.openstack_creds = CONST.openstack_creds
-        self.snapshot_file = CONST.openstack_snapshot_file
+        self.openstack_creds = CONST.__getattribute__('openstack_creds')
+        self.snapshot_file = CONST.__getattribute__('openstack_snapshot_file')
         if self.os_auth_url:
             self.endpoint_ip = self.os_auth_url.rsplit("/")[2].rsplit(":")[0]
             self.endpoint_port = self.os_auth_url.rsplit("/")[2].rsplit(":")[1]
@@ -59,16 +59,16 @@ class CliOpenStack(object):
                 else:
                     answer = raw_input("Invalid answer. Please type [y|n]\n")
 
-        installer_type = CONST.INSTALLER_TYPE
+        installer_type = CONST.__getattribute__('INSTALLER_TYPE')
         if installer_type is None:
             click.echo("The environment variable 'INSTALLER_TYPE' is not"
                        "defined. Please export it")
-        installer_ip = CONST.INSTALLER_IP
+        installer_ip = CONST.__getattribute__('INSTALLER_IP')
         if installer_ip is None:
             click.echo("The environment variable 'INSTALLER_IP' is not"
                        "defined. Please export it")
         cmd = ("%s/releng/utils/fetch_os_creds.sh -d %s -i %s -a %s"
-               % (CONST.dir_repos,
+               % (CONST.__getattribute__('dir_repos'),
                   self.openstack_creds,
                   installer_type,
                   installer_ip))
@@ -78,7 +78,8 @@ class CliOpenStack(object):
 
     def check(self):
         self.ping_endpoint()
-        cmd = CONST.dir_repo_functest + "/functest/ci/check_os.sh"
+        cmd = os.path.join(CONST.__getattribute__('dir_repo_functest'),
+                           "functest/ci/check_os.sh")
         ft_utils.execute_command(cmd, verbose=False)
 
     def snapshot_create(self):
index 6644a0c..3d3f1cb 100644 (file)
@@ -22,9 +22,10 @@ import functest.utils.functest_vacation as vacation
 class CliTestcase(object):
 
     def __init__(self):
-        self.tiers = tb.TierBuilder(CONST.INSTALLER_TYPE,
-                                    CONST.DEPLOY_SCENARIO,
-                                    CONST.functest_testcases_yaml)
+        self.tiers = tb.TierBuilder(
+            CONST.__getattribute__('INSTALLER_TYPE'),
+            CONST.__getattribute__('DEPLOY_SCENARIO'),
+            CONST.__getattribute__('functest_testcases_yaml'))
 
     def list(self):
         summary = ""
@@ -52,12 +53,14 @@ class CliTestcase(object):
 
         if testname == 'vacation':
             vacation.main()
-        elif not os.path.isfile(CONST.env_active):
+        elif not os.path.isfile(CONST.__getattribute__('env_active')):
             click.echo("Functest environment is not ready. "
                        "Run first 'functest env prepare'")
         else:
             tests = testname.split(",")
             for test in tests:
                 cmd = ("python %s/functest/ci/run_tests.py "
-                       "%s -t %s" % (CONST.dir_repo_functest, flags, test))
+                       "%s -t %s" %
+                       (CONST.__getattribute__('dir_repo_functest'),
+                        flags, test))
                 ft_utils.execute_command(cmd)
index 012b11d..531f0ff 100644 (file)
@@ -21,9 +21,10 @@ import functest.utils.functest_utils as ft_utils
 class CliTier(object):
 
     def __init__(self):
-        self.tiers = tb.TierBuilder(CONST.INSTALLER_TYPE,
-                                    CONST.DEPLOY_SCENARIO,
-                                    CONST.functest_testcases_yaml)
+        self.tiers = tb.TierBuilder(
+            CONST.__getattribute__('INSTALLER_TYPE'),
+            CONST.__getattribute__('DEPLOY_SCENARIO'),
+            CONST.__getattribute__('functest_testcases_yaml'))
 
     def list(self):
         summary = ""
@@ -62,10 +63,12 @@ class CliTier(object):
         if report:
             flags += "-r "
 
-        if not os.path.isfile(CONST.env_active):
+        if not os.path.isfile(CONST.__getattribute__('env_active')):
             click.echo("Functest environment is not ready. "
                        "Run first 'functest env prepare'")
         else:
             cmd = ("python %s/functest/ci/run_tests.py "
-                   "%s -t %s" % (CONST.dir_repo_functest, flags, tiername))
+                   "%s -t %s" %
+                   (CONST.__getattribute__('dir_repo_functest'),
+                    flags, tiername))
             ft_utils.execute_command(cmd)
index 4b6ea57..c3d89ea 100644 (file)
@@ -28,7 +28,7 @@ class CliEnvTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command')
     def test_prepare_default(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/prepare_env.py start" %
-               CONST.dir_repo_functest)
+               CONST.__getattribute__('dir_repo_functest'))
         self.cli_environ.prepare()
         mock_ft_utils.assert_called_with(cmd)
 
@@ -40,29 +40,30 @@ class CliEnvTesting(unittest.TestCase):
                 mock.patch('functest.cli.commands.cli_testcase.os.remove') \
                 as mock_os_remove:
             cmd = ("python %s/functest/ci/prepare_env.py start" %
-                   CONST.dir_repo_functest)
+                   CONST.__getattribute__('dir_repo_functest'))
             self.cli_environ.prepare()
-            mock_os_remove.assert_called_once_with(CONST.env_active)
+            mock_os_remove.assert_called_once_with(
+                CONST.__getattribute__('env_active'))
             mock_ft_utils.assert_called_with(cmd)
 
     def _test_show_missing_env_var(self, var, *args):
         if var == 'INSTALLER_TYPE':
-            CONST.INSTALLER_TYPE = None
+            CONST.__setattr__('INSTALLER_TYPE', None)
             reg_string = "|  INSTALLER: Unknown, \S+\s*|"
         elif var == 'INSTALLER_IP':
-            CONST.INSTALLER_IP = None
+            CONST.__setattr__('INSTALLER_IP', None)
             reg_string = "|  INSTALLER: \S+, Unknown\s*|"
         elif var == 'SCENARIO':
-            CONST.DEPLOY_SCENARIO = None
+            CONST.__setattr__('DEPLOY_SCENARIO', None)
             reg_string = "|   SCENARIO: Unknown\s*|"
         elif var == 'NODE':
-            CONST.NODE_NAME = None
+            CONST.__setattr__('NODE_NAME', None)
             reg_string = "|        POD: Unknown\s*|"
         elif var == 'BUILD_TAG':
-            CONST.BUILD_TAG = None
+            CONST.__setattr__('BUILD_TAG', None)
             reg_string = "|  BUILD TAG: None|"
         elif var == 'DEBUG':
-            CONST.CI_DEBUG = None
+            CONST.__setattr__('CI_DEBUG', None)
             reg_string = "| DEBUG FLAG: false\s*|"
         elif var == 'STATUS':
             reg_string = "|     STATUS: not ready\s*|"
@@ -106,7 +107,7 @@ class CliEnvTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_env.os.path.exists',
                 return_value=False)
     def test_show_missing_git_repo_dir(self, *args):
-        CONST.dir_repo_functest = None
+        CONST.__setattr__('dir_repo_functest', None)
         self.assertRaises(NoSuchPathError, lambda: self.cli_environ.show())
 
     @mock.patch('functest.cli.commands.cli_env.click.echo')
index f0e58c6..5404276 100644 (file)
@@ -69,10 +69,10 @@ class CliOpenStackTesting(unittest.TestCase):
     def test_fetch_credentials_default(self, mock_click_echo,
                                        mock_os_path,
                                        mock_ftutils_execute):
-        CONST.INSTALLER_TYPE = self.installer_type
-        CONST.INSTALLER_IP = self.installer_ip
+        CONST.__setattr__('INSTALLER_TYPE', self.installer_type)
+        CONST.__setattr__('INSTALLER_IP', self.installer_ip)
         cmd = ("%s/releng/utils/fetch_os_creds.sh -d %s -i %s -a %s"
-               % (CONST.dir_repos,
+               % (CONST.__getattribute__('dir_repos'),
                   self.openstack_creds,
                   self.installer_type,
                   self.installer_ip))
@@ -92,15 +92,13 @@ class CliOpenStackTesting(unittest.TestCase):
     def test_fetch_credentials_missing_installer_type(self, mock_click_echo,
                                                       mock_os_path,
                                                       mock_ftutils_execute):
-        installer_type = None
-        installer_ip = self.installer_ip
-        CONST.INSTALLER_TYPE = installer_type
-        CONST.INSTALLER_IP = installer_ip
+        CONST.__setattr__('INSTALLER_TYPE', None)
+        CONST.__setattr__('INSTALLER_IP', self.installer_ip)
         cmd = ("%s/releng/utils/fetch_os_creds.sh -d %s -i %s -a %s"
-               % (CONST.dir_repos,
+               % (CONST.__getattribute__('dir_repos'),
                   self.openstack_creds,
-                  installer_type,
-                  installer_ip))
+                  None,
+                  self.installer_ip))
         self.cli_os.openstack_creds = self.openstack_creds
         self.cli_os.fetch_credentials()
         mock_click_echo.assert_any_call("The environment variable "
@@ -109,8 +107,8 @@ class CliOpenStackTesting(unittest.TestCase):
         mock_click_echo.assert_any_call("Fetching credentials from "
                                         "installer node '%s' with "
                                         "IP=%s.." %
-                                        (installer_type,
-                                         installer_ip))
+                                        (None,
+                                         self.installer_ip))
         mock_ftutils_execute.assert_called_once_with(cmd, verbose=False)
 
     @mock.patch('functest.cli.commands.cli_os.ft_utils.execute_command')
@@ -122,10 +120,10 @@ class CliOpenStackTesting(unittest.TestCase):
                                                     mock_ftutils_execute):
         installer_type = self.installer_type
         installer_ip = None
-        CONST.INSTALLER_TYPE = installer_type
-        CONST.INSTALLER_IP = installer_ip
+        CONST.__setattr__('INSTALLER_TYPE', installer_type)
+        CONST.__setattr__('INSTALLER_IP', installer_ip)
         cmd = ("%s/releng/utils/fetch_os_creds.sh -d %s -i %s -a %s"
-               % (CONST.dir_repos,
+               % (CONST.__getattribute__('dir_repos'),
                   self.openstack_creds,
                   installer_type,
                   installer_ip))
@@ -144,8 +142,9 @@ class CliOpenStackTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_os.ft_utils.execute_command')
     def test_check(self, mock_ftutils_execute):
         with mock.patch.object(self.cli_os, 'ping_endpoint'):
-            CONST.dir_repo_functest = self.dir_repo_functest
-            cmd = CONST.dir_repo_functest + "/functest/ci/check_os.sh"
+            CONST.__setattr__('dir_repo_functest', self.dir_repo_functest)
+            cmd = os.path.join(CONST.__getattribute__('dir_repo_functest'),
+                               "functest/ci/check_os.sh")
             self.cli_os.check()
             mock_ftutils_execute.assert_called_once_with(cmd, verbose=False)
 
index 39c8139..2d09514 100644 (file)
@@ -42,7 +42,9 @@ class CliTestCasesTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command')
     def test_run_default(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "-n -r ", self.testname))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "-n -r ", self.testname))
         self.cli_tests.run(self.testname, noclean=True, report=True)
         mock_ft_utils.assert_called_with(cmd)
 
@@ -51,7 +53,9 @@ class CliTestCasesTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command')
     def test_run_noclean_missing_report(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "-n ", self.testname))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "-n ", self.testname))
         self.cli_tests.run(self.testname, noclean=True, report=False)
         mock_ft_utils.assert_called_with(cmd)
 
@@ -60,7 +64,9 @@ class CliTestCasesTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command')
     def test_run_report_missing_noclean(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "-r ", self.testname))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "-r ", self.testname))
         self.cli_tests.run(self.testname, noclean=False, report=True)
         mock_ft_utils.assert_called_with(cmd)
 
@@ -69,7 +75,9 @@ class CliTestCasesTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command')
     def test_run_missing_noclean_report(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "", self.testname))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "", self.testname))
         self.cli_tests.run(self.testname, noclean=False, report=False)
         mock_ft_utils.assert_called_with(cmd)
 
index 802359f..fbc7525 100644 (file)
@@ -90,8 +90,9 @@ class CliTierTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
     def test_run_default(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "-n -r ",
-                             self.tiername))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "-n -r ", self.tiername))
         self.cli_tier.run(self.tiername, noclean=True, report=True)
         mock_ft_utils.assert_called_with(cmd)
 
@@ -100,8 +101,9 @@ class CliTierTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
     def test_run_report_missing_noclean(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "-r ",
-                             self.tiername))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "-r ", self.tiername))
         self.cli_tier.run(self.tiername, noclean=False, report=True)
         mock_ft_utils.assert_called_with(cmd)
 
@@ -110,8 +112,9 @@ class CliTierTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
     def test_run_noclean_missing_report(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "-n ",
-                             self.tiername))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "-n ", self.tiername))
         self.cli_tier.run(self.tiername, noclean=True, report=False)
         mock_ft_utils.assert_called_with(cmd)
 
@@ -120,8 +123,9 @@ class CliTierTesting(unittest.TestCase):
     @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
     def test_run_missing_noclean_report(self, mock_ft_utils, mock_os):
         cmd = ("python %s/functest/ci/run_tests.py "
-               "%s -t %s" % (CONST.dir_repo_functest, "",
-                             self.tiername))
+               "%s -t %s" %
+               (CONST.__getattribute__('dir_repo_functest'),
+                "", self.tiername))
         self.cli_tier.run(self.tiername, noclean=False, report=False)
         mock_ft_utils.assert_called_with(cmd)