diff options
Diffstat (limited to 'functest/tests')
-rw-r--r-- | functest/tests/unit/ci/test_run_tests.py | 80 | ||||
-rw-r--r-- | functest/tests/unit/cli/commands/test_cli_env.py | 44 | ||||
-rw-r--r-- | functest/tests/unit/cli/commands/test_cli_testcase.py | 24 | ||||
-rw-r--r-- | functest/tests/unit/cli/commands/test_cli_tier.py | 24 | ||||
-rw-r--r-- | functest/tests/unit/cli/test_cli_base.py | 12 | ||||
-rw-r--r-- | functest/tests/unit/openstack/rally/test_rally.py | 5 | ||||
-rw-r--r-- | functest/tests/unit/openstack/vping/test_vping.py | 40 |
7 files changed, 111 insertions, 118 deletions
diff --git a/functest/tests/unit/ci/test_run_tests.py b/functest/tests/unit/ci/test_run_tests.py index bc95f8f3..fc689452 100644 --- a/functest/tests/unit/ci/test_run_tests.py +++ b/functest/tests/unit/ci/test_run_tests.py @@ -7,6 +7,7 @@ import logging import unittest +import os import mock @@ -58,6 +59,85 @@ class RunTestsTesting(unittest.TestCase): self.run_tests_parser = run_tests.RunTestsParser() + self.config_file_yaml = {'general': { + 'openstack': { + 'image_name': 'test_image_name'}}, + 'results': { + 'test_db_url': 'url1'}} + self.config_file_patch_yaml = {'fdio': {'general': { + 'openstack': { + 'image_name': + 'test_image_name_2'}}}} + self.config_file_aarcg64_patch_yaml = {'os': {'general': { + 'openstack': {'image_name': 'test_image_name_3'}}}} + + @mock.patch('functest.ci.run_tests.Runner.patch_file') + @mock.patch('functest.ci.run_tests.Runner.update_db_url') + def test_update_config_file_default(self, *mock_methods): + self.runner.update_config_file() + mock_methods[1].assert_called() + mock_methods[0].assert_not_called() + + @mock.patch('functest.ci.run_tests.Runner.patch_file') + @mock.patch('functest.ci.run_tests.Runner.update_db_url') + @mock.patch.dict(os.environ, {'TEST_DB_URL': 'somevalue'}) + def test_update_config_file_update_db(self, *mock_methods): + self.runner.update_config_file() + mock_methods[1].assert_called() + mock_methods[0].assert_called() + + def test_patch_file_missing_file(self): + patch_file_path = "unexisting_file" + with self.assertRaises(IOError): + self.runner.patch_file(patch_file_path) + + @mock.patch('functest.ci.run_tests.ft_utils.merge_dicts') + @mock.patch('functest.ci.run_tests.ft_utils.get_functest_yaml') + def test_patch_file_default(self, *mock_methods): + CONST.__setattr__('DEPLOY_SCENARIO', 'os-nosdn-nofeature-noha') + with mock.patch( + 'six.moves.builtins.open', mock.mock_open()), mock.patch( + 'functest.ci.run_tests.yaml.safe_load') as yaml1, mock.patch( + 'functest.ci.run_tests.ft_utils.get_functest_yaml') as yaml2: + yaml1.return_value = self.config_file_patch_yaml + yaml2.return_value = self.config_file_yaml + self.runner.patch_file(yaml1) + mock_methods[1].assert_not_called() + mock_methods[0].assert_not_called() + + @mock.patch('functest.ci.run_tests.ft_utils.merge_dicts') + @mock.patch('functest.ci.run_tests.os.remove') + def test_patch_file_match_scenario(self, *mock_methods): + CONST.__setattr__('DEPLOY_SCENARIO', 'os-nosdn-fdio-noha') + with mock.patch( + 'six.moves.builtins.open', mock.mock_open()), mock.patch( + 'functest.ci.run_tests.yaml.safe_load') as yaml1, mock.patch( + 'functest.ci.run_tests.ft_utils.get_functest_yaml') as yaml2: + yaml1.return_value = self.config_file_patch_yaml + yaml2.return_value = self.config_file_yaml + self.runner.patch_file(yaml2) + mock_methods[1].assert_called() + mock_methods[0].assert_called() + + def test_update_db_url_missing_file(self): + run_tests.CONFIG_FUNCTEST_PATH = "unexisting_file" + with self.assertRaises(IOError): + self.runner.update_db_url() + + @mock.patch('functest.ci.run_tests.yaml.safe_load') + @mock.patch('functest.ci.run_tests.ft_utils.get_functest_yaml') + @mock.patch.dict(os.environ, {'TEST_DB_URL': 'url2'}) + def test_update_db_url_default(self, *mock_methods): + with mock.patch( + 'six.moves.builtins.open', mock.mock_open()), mock.patch( + 'functest.ci.run_tests.yaml.safe_load') as yaml1: + yaml1.return_value = self.config_file_yaml + self.runner.update_db_url() + self.assertEqual( + yaml1.return_value['results']['test_db_url'], 'url2') + mock_methods[0].assert_not_called() + mock_methods[1].assert_not_called() + @mock.patch('functest.ci.run_tests.logger.error') def test_source_rc_file_missing_file(self, mock_logger_error): with mock.patch('functest.ci.run_tests.os.path.isfile', diff --git a/functest/tests/unit/cli/commands/test_cli_env.py b/functest/tests/unit/cli/commands/test_cli_env.py index ddd5d86c..d865d380 100644 --- a/functest/tests/unit/cli/commands/test_cli_env.py +++ b/functest/tests/unit/cli/commands/test_cli_env.py @@ -20,27 +20,6 @@ class CliEnvTesting(unittest.TestCase): def setUp(self): self.cli_environ = cli_env.CliEnv() - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=False) - @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command') - def test_prepare_default(self, mock_ft_utils, mock_os): - cmd = "prepare_env start" - self.cli_environ.prepare() - mock_ft_utils.assert_called_with(cmd) - - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=True) - @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command') - def test_prepare_missing_status(self, mock_ft_utils, mock_os): - with mock.patch('__builtin__.raw_input', return_value="y"), \ - mock.patch('functest.cli.commands.cli_testcase.os.remove') \ - as mock_os_remove: - cmd = "prepare_env start" - self.cli_environ.prepare() - 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.__setattr__('INSTALLER_TYPE', None) @@ -60,8 +39,6 @@ class CliEnvTesting(unittest.TestCase): elif var == 'DEBUG': CONST.__setattr__('CI_DEBUG', None) reg_string = "| DEBUG FLAG: false\s*|" - elif var == 'STATUS': - reg_string = "| STATUS: not ready\s*|" with mock.patch('functest.cli.commands.cli_env.click.echo') \ as mock_click_echo: @@ -87,27 +64,6 @@ class CliEnvTesting(unittest.TestCase): def test_show_missing_ci_debug(self, *args): self._test_show_missing_env_var('DEBUG', *args) - @mock.patch('functest.cli.commands.cli_env.os.path.isfile', - return_value=False) - def test_show_missing_environment(self, *args): - self._test_show_missing_env_var('STATUS', *args) - - @mock.patch('functest.cli.commands.cli_env.click.echo') - @mock.patch('functest.cli.commands.cli_env.os.path.isfile', - return_value=True) - def test_status_environment_present(self, mock_path, mock_click_echo): - self.assertEqual(self.cli_environ.status(), 0) - mock_click_echo.assert_called_with("Functest environment" - " ready to run tests.\n") - - @mock.patch('functest.cli.commands.cli_env.click.echo') - @mock.patch('functest.cli.commands.cli_env.os.path.isfile', - return_value=False) - def test_status_environment_absent(self, mock_path, mock_click_echo): - self.assertEqual(self.cli_environ.status(), 1) - mock_click_echo.assert_called_with("Functest environment" - " is not installed.\n") - if __name__ == "__main__": logging.disable(logging.CRITICAL) diff --git a/functest/tests/unit/cli/commands/test_cli_testcase.py b/functest/tests/unit/cli/commands/test_cli_testcase.py index 9ccf4c4a..f3648eb0 100644 --- a/functest/tests/unit/cli/commands/test_cli_testcase.py +++ b/functest/tests/unit/cli/commands/test_cli_testcase.py @@ -26,42 +26,26 @@ class CliTestCasesTesting(unittest.TestCase): self.cli_tests.run('vacation') self.assertTrue(mock_method.called) - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=False) - @mock.patch('functest.cli.commands.cli_testcase.click.echo') - def test_run_missing_env_file(self, mock_click_echo, mock_os): - self.cli_tests.run(self.testname) - mock_click_echo.assert_called_with("Functest environment is not ready." - " Run first 'functest env prepare'") - - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command') - def test_run_default(self, mock_ft_utils, mock_os): + def test_run_default(self, mock_ft_utils): cmd = "run_tests -n -r -t {}".format(self.testname) self.cli_tests.run(self.testname, noclean=True, report=True) mock_ft_utils.assert_called_with(cmd) - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command') - def test_run_noclean_missing_report(self, mock_ft_utils, mock_os): + def test_run_noclean_missing_report(self, mock_ft_utils): cmd = "run_tests -n -t {}".format(self.testname) self.cli_tests.run(self.testname, noclean=True, report=False) mock_ft_utils.assert_called_with(cmd) - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command') - def test_run_report_missing_noclean(self, mock_ft_utils, mock_os): + def test_run_report_missing_noclean(self, mock_ft_utils): cmd = "run_tests -r -t {}".format(self.testname) self.cli_tests.run(self.testname, noclean=False, report=True) mock_ft_utils.assert_called_with(cmd) - @mock.patch('functest.cli.commands.cli_testcase.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_testcase.ft_utils.execute_command') - def test_run_missing_noclean_report(self, mock_ft_utils, mock_os): + def test_run_missing_noclean_report(self, mock_ft_utils): cmd = "run_tests -t {}".format(self.testname) self.cli_tests.run(self.testname, noclean=False, report=False) mock_ft_utils.assert_called_with(cmd) diff --git a/functest/tests/unit/cli/commands/test_cli_tier.py b/functest/tests/unit/cli/commands/test_cli_tier.py index 1bb630db..a76d1204 100644 --- a/functest/tests/unit/cli/commands/test_cli_tier.py +++ b/functest/tests/unit/cli/commands/test_cli_tier.py @@ -74,42 +74,26 @@ class CliTierTesting(unittest.TestCase): ":\n %s\n" % (self.tiername, 'tiernames')) - @mock.patch('functest.cli.commands.cli_tier.os.path.isfile', - return_value=False) - @mock.patch('functest.cli.commands.cli_tier.click.echo') - def test_run_missing_env_file(self, mock_click_echo, mock_os): - self.cli_tier.run(self.tiername) - mock_click_echo.assert_called_with("Functest environment is not ready." - " Run first 'functest env prepare'") - - @mock.patch('functest.cli.commands.cli_tier.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command') - def test_run_default(self, mock_ft_utils, mock_os): + def test_run_default(self, mock_ft_utils): cmd = "run_tests -n -r -t {}".format(self.tiername) self.cli_tier.run(self.tiername, noclean=True, report=True) mock_ft_utils.assert_called_with(cmd) - @mock.patch('functest.cli.commands.cli_tier.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command') - def test_run_report_missing_noclean(self, mock_ft_utils, mock_os): + def test_run_report_missing_noclean(self, mock_ft_utils): cmd = "run_tests -r -t {}".format(self.tiername) self.cli_tier.run(self.tiername, noclean=False, report=True) mock_ft_utils.assert_called_with(cmd) - @mock.patch('functest.cli.commands.cli_tier.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command') - def test_run_noclean_missing_report(self, mock_ft_utils, mock_os): + def test_run_noclean_missing_report(self, mock_ft_utils): cmd = "run_tests -n -t {}".format(self.tiername) self.cli_tier.run(self.tiername, noclean=True, report=False) mock_ft_utils.assert_called_with(cmd) - @mock.patch('functest.cli.commands.cli_tier.os.path.isfile', - return_value=True) @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command') - def test_run_missing_noclean_report(self, mock_ft_utils, mock_os): + def test_run_missing_noclean_report(self, mock_ft_utils): cmd = "run_tests -t {}".format(self.tiername) self.cli_tier.run(self.tiername, noclean=False, report=False) mock_ft_utils.assert_called_with(cmd) diff --git a/functest/tests/unit/cli/test_cli_base.py b/functest/tests/unit/cli/test_cli_base.py index 61bd093e..08c9b736 100644 --- a/functest/tests/unit/cli/test_cli_base.py +++ b/functest/tests/unit/cli/test_cli_base.py @@ -62,24 +62,12 @@ class CliBaseTesting(unittest.TestCase): self.assertEqual(result.exit_code, 0) self.assertTrue(mock_method.called) - def test_env_prepare(self): - with mock.patch.object(self._env, 'prepare') as mock_method: - result = self.runner.invoke(cli_base.env_prepare) - self.assertEqual(result.exit_code, 0) - self.assertTrue(mock_method.called) - def test_env_show(self): with mock.patch.object(self._env, 'show') as mock_method: result = self.runner.invoke(cli_base.env_show) self.assertEqual(result.exit_code, 0) self.assertTrue(mock_method.called) - def test_env_status(self): - with mock.patch.object(self._env, 'status') as mock_method: - result = self.runner.invoke(cli_base.env_status) - self.assertEqual(result.exit_code, 0) - self.assertTrue(mock_method.called) - def test_testcase_list(self): with mock.patch.object(self._testcase, 'list') as mock_method: result = self.runner.invoke(cli_base.testcase_list) diff --git a/functest/tests/unit/openstack/rally/test_rally.py b/functest/tests/unit/openstack/rally/test_rally.py index 83f0c86a..450eb85b 100644 --- a/functest/tests/unit/openstack/rally/test_rally.py +++ b/functest/tests/unit/openstack/rally/test_rally.py @@ -260,13 +260,10 @@ class OSRallyTesting(unittest.TestCase): return_value=True) @mock.patch('functest.opnfv_tests.openstack.rally.rally.subprocess.Popen') @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.makedirs') - @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.popen') @mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.info') @mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.error') def test_run_task_default(self, mock_logger_error, mock_logger_info, - mock_popen, *args): - attrs = {'read.return_value': 'json_result'} - mock_popen.return_value.configure_mock(**attrs) + *args): self.rally_base._run_task('test_name') text = 'Test scenario: "test_name" OK.\n' mock_logger_info.assert_any_call(text) diff --git a/functest/tests/unit/openstack/vping/test_vping.py b/functest/tests/unit/openstack/vping/test_vping.py index a28c61ae..dbfb679f 100644 --- a/functest/tests/unit/openstack/vping/test_vping.py +++ b/functest/tests/unit/openstack/vping/test_vping.py @@ -10,15 +10,19 @@ import unittest import mock +from snaps.config.keypair import KeypairConfig +from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig +from snaps.config.router import RouterConfig +from snaps.config.security_group import SecurityGroupConfig +from snaps.config.vm_inst import VmInstanceConfig + from snaps.openstack.create_image import OpenStackImage -from snaps.openstack.create_instance import OpenStackVmInstance, \ - VmInstanceSettings -from snaps.openstack.create_keypairs import OpenStackKeypair, KeypairSettings -from snaps.openstack.create_network import OpenStackNetwork, NetworkSettings, \ - SubnetSettings, PortSettings -from snaps.openstack.create_router import OpenStackRouter, RouterSettings -from snaps.openstack.create_security_group import OpenStackSecurityGroup, \ - SecurityGroupSettings +from snaps.openstack.create_instance import OpenStackVmInstance +from snaps.openstack.create_keypairs import OpenStackKeypair +from snaps.openstack.create_network import OpenStackNetwork +from snaps.openstack.create_router import OpenStackRouter +from snaps.openstack.create_security_group import OpenStackSecurityGroup + from snaps.openstack.os_credentials import OSCreds from functest.core.testcase import TestCase @@ -54,14 +58,14 @@ class VPingUserdataTesting(unittest.TestCase): return_value=OpenStackImage(self.os_creds, None)), \ mock.patch('snaps.openstack.utils.deploy_utils.create_network', return_value=OpenStackNetwork( - self.os_creds, NetworkSettings(name='foo'))), \ + self.os_creds, NetworkConfig(name='foo'))), \ mock.patch('snaps.openstack.utils.deploy_utils.' 'create_vm_instance', return_value=OpenStackVmInstance( self.os_creds, - VmInstanceSettings( + VmInstanceConfig( name='foo', flavor='bar', - port_settings=[PortSettings( + port_settings=[PortConfig( name='foo', network_name='bar')]), None)), \ mock.patch('snaps.openstack.create_instance.' @@ -120,32 +124,32 @@ class VPingSSHTesting(unittest.TestCase): mock.patch('snaps.openstack.utils.deploy_utils.create_network', return_value=OpenStackNetwork( self.os_creds, - NetworkSettings( + NetworkConfig( name='foo', subnet_settings=[ - SubnetSettings( + SubnetConfig( name='bar', cidr='10.0.0.1/24')]))), \ mock.patch('snaps.openstack.utils.deploy_utils.' 'create_vm_instance', return_value=OpenStackVmInstance( self.os_creds, - VmInstanceSettings( + VmInstanceConfig( name='foo', flavor='bar', - port_settings=[PortSettings( + port_settings=[PortConfig( name='foo', network_name='bar')]), None)), \ mock.patch('snaps.openstack.utils.deploy_utils.create_keypair', return_value=OpenStackKeypair( - self.os_creds, KeypairSettings(name='foo'))), \ + self.os_creds, KeypairConfig(name='foo'))), \ mock.patch('snaps.openstack.utils.deploy_utils.create_router', return_value=OpenStackRouter( - self.os_creds, RouterSettings(name='foo'))), \ + self.os_creds, RouterConfig(name='foo'))), \ mock.patch('snaps.openstack.utils.deploy_utils.' 'create_security_group', return_value=OpenStackSecurityGroup( self.os_creds, - SecurityGroupSettings(name='foo'))), \ + SecurityGroupConfig(name='foo'))), \ mock.patch('snaps.openstack.create_instance.' 'OpenStackVmInstance.' 'get_vm_inst', return_value=os_vm_inst), \ |