def test_shell_args_cert_options(self): """Test client cert options""" _shell = utils.make_shell() # Default utils.fake_execute(_shell, "module list") self.assertEqual('', _shell.options.cert) self.assertEqual('', _shell.options.key) self.assertIsNone(_shell.client_manager.cert) # --os-cert utils.fake_execute(_shell, "--os-cert mycert module list") self.assertEqual('mycert', _shell.options.cert) self.assertEqual('', _shell.options.key) self.assertEqual('mycert', _shell.client_manager.cert) # --os-key utils.fake_execute(_shell, "--os-key mickey module list") self.assertEqual('', _shell.options.cert) self.assertEqual('mickey', _shell.options.key) self.assertIsNone(_shell.client_manager.cert) # --os-cert and --os-key utils.fake_execute( _shell, "--os-cert mycert --os-key mickey module list" ) self.assertEqual('mycert', _shell.options.cert) self.assertEqual('mickey', _shell.options.key) self.assertEqual(('mycert', 'mickey'), _shell.client_manager.cert)
def test_shell_args_cert_options(self): """Test client cert options""" _shell = utils.make_shell() # Default utils.fake_execute(_shell, "module list") self.assertEqual('', _shell.options.cert) self.assertEqual('', _shell.options.key) self.assertIsNone(_shell.client_manager.cert) # --os-cert utils.fake_execute(_shell, "--os-cert mycert module list") self.assertEqual('mycert', _shell.options.cert) self.assertEqual('', _shell.options.key) self.assertEqual('mycert', _shell.client_manager.cert) # --os-key utils.fake_execute(_shell, "--os-key mickey module list") self.assertEqual('', _shell.options.cert) self.assertEqual('mickey', _shell.options.key) self.assertIsNone(_shell.client_manager.cert) # --os-cert and --os-key utils.fake_execute(_shell, "--os-cert mycert --os-key mickey module list") self.assertEqual('mycert', _shell.options.cert) self.assertEqual('mickey', _shell.options.key) self.assertEqual(('mycert', 'mickey'), _shell.client_manager.cert)
def test_shell_args_no_options(self): _shell = utils.make_shell() with mock.patch( "osc_lib.shell.OpenStackShell.initialize_app", self.app, ): utils.fake_execute(_shell, "list user") self.app.assert_called_with(["list", "user"])
def _assert_token_auth(self, cmd_options, default_args): with mock.patch(self.app_patch + ".initialize_app", self.app): _shell = osc_lib_test_utils.make_shell(shell_class=self.shell_class) _cmd = cmd_options + " list role" osc_lib_test_utils.fake_execute(_shell, _cmd) print("_shell: %s" % _shell) self.app.assert_called_with(["list", "role"]) self.assertEqual(default_args.get("token", ""), _shell.options.token, "token") self.assertEqual(default_args.get("auth_url", ""), _shell.options.auth_url, "auth_url")
def test_shell_args_tls_options(self): """Test the TLS verify and CA cert file options""" _shell = utils.make_shell() # Default utils.fake_execute(_shell, "module list") self.assertIsNone(_shell.options.verify) self.assertIsNone(_shell.options.insecure) self.assertIsNone(_shell.options.cacert) self.assertTrue(_shell.client_manager.verify) self.assertIsNone(_shell.client_manager.cacert) # --verify utils.fake_execute(_shell, "--verify module list") self.assertTrue(_shell.options.verify) self.assertIsNone(_shell.options.insecure) self.assertIsNone(_shell.options.cacert) self.assertTrue(_shell.client_manager.verify) self.assertIsNone(_shell.client_manager.cacert) # --insecure utils.fake_execute(_shell, "--insecure module list") self.assertIsNone(_shell.options.verify) self.assertTrue(_shell.options.insecure) self.assertIsNone(_shell.options.cacert) self.assertFalse(_shell.client_manager.verify) self.assertIsNone(_shell.client_manager.cacert) # --os-cacert utils.fake_execute(_shell, "--os-cacert foo module list") self.assertIsNone(_shell.options.verify) self.assertIsNone(_shell.options.insecure) self.assertEqual('foo', _shell.options.cacert) self.assertEqual('foo', _shell.client_manager.verify) self.assertEqual('foo', _shell.client_manager.cacert) # --os-cacert and --verify utils.fake_execute(_shell, "--os-cacert foo --verify module list") self.assertTrue(_shell.options.verify) self.assertIsNone(_shell.options.insecure) self.assertEqual('foo', _shell.options.cacert) self.assertEqual('foo', _shell.client_manager.verify) self.assertEqual('foo', _shell.client_manager.cacert) # --os-cacert and --insecure # NOTE(dtroyer): Per bug https://bugs.launchpad.net/bugs/1447784 # in this combination --insecure now overrides any # --os-cacert setting, where before --insecure # was ignored if --os-cacert was set. utils.fake_execute(_shell, "--os-cacert foo --insecure module list") self.assertIsNone(_shell.options.verify) self.assertTrue(_shell.options.insecure) self.assertEqual('foo', _shell.options.cacert) self.assertFalse(_shell.client_manager.verify) self.assertIsNone(_shell.client_manager.cacert)
def _assert_cli(self, cmd_options, default_args): with mock.patch(self.shell_class_name + ".initialize_app", self.app): _shell = osc_lib_test_utils.make_shell(shell_class=self.shell_class) _cmd = cmd_options + " list server" osc_lib_test_utils.fake_execute(_shell, _cmd) self.app.assert_called_with(["list", "server"]) self.assertEqual(default_args["compute_api_version"], _shell.options.os_compute_api_version) self.assertEqual(default_args["identity_api_version"], _shell.options.os_identity_api_version) self.assertEqual(default_args["image_api_version"], _shell.options.os_image_api_version) self.assertEqual(default_args["volume_api_version"], _shell.options.os_volume_api_version) self.assertEqual(default_args["network_api_version"], _shell.options.os_network_api_version)
def test_help_options(self): flag = "-h list server" kwargs = { "deferred_help": True, } with mock.patch(self.app_patch + ".initialize_app", self.app): _shell, _cmd = utils.make_shell(), flag utils.fake_execute(_shell, _cmd) self.assertEqual( kwargs["deferred_help"], _shell.options.deferred_help, )
def _assert_token_auth(self, cmd_options, default_args): with mock.patch( self.app_patch + ".initialize_app", self.app, ): _shell = osc_lib_test_utils.make_shell( shell_class=self.shell_class, ) _cmd = cmd_options + " list role" osc_lib_test_utils.fake_execute(_shell, _cmd) print("_shell: %s" % _shell) self.app.assert_called_with(["list", "role"]) self.assertEqual(default_args.get("token", ''), _shell.options.token, "token") self.assertEqual(default_args.get("auth_url", ''), _shell.options.auth_url, "auth_url")
def test_shell_args_cloud_no_vendor(self, config_mock): """Test cloud config options without the vendor file""" config_mock.return_value = ('file.yaml', copy.deepcopy(CLOUD_1)) _shell = utils.make_shell() utils.fake_execute( _shell, "--os-cloud scc module list", ) self.assertEqual( 'scc', _shell.cloud.name, ) # These come from clouds.yaml self.assertEqual( DEFAULT_AUTH_URL, _shell.cloud.config['auth']['auth_url'], ) self.assertEqual( DEFAULT_PROJECT_NAME, _shell.cloud.config['auth']['project_name'], ) self.assertEqual( 'zaphod', _shell.cloud.config['auth']['username'], ) self.assertEqual( 'occ-cloud', _shell.cloud.config['region_name'], ) self.assertEqual( 'occ-cloud', _shell.client_manager.region_name, ) self.assertEqual( 'glazed', _shell.cloud.config['donut'], ) self.assertEqual( 'public', _shell.cloud.config['interface'], ) self.assertIsNone(_shell.cloud.config['cert']) self.assertIsNone(_shell.cloud.config['key']) self.assertIsNone(_shell.client_manager.cert)
def test_shell_args_cloud_public(self, config_mock, public_mock): """Test cloud config options with the vendor file""" config_mock.return_value = ('file.yaml', copy.deepcopy(CLOUD_2)) public_mock.return_value = ('file.yaml', copy.deepcopy(PUBLIC_1)) _shell = utils.make_shell() utils.fake_execute( _shell, "--os-cloud megacloud module list", ) self.assertEqual( 'megacloud', _shell.cloud.name, ) # These come from clouds-public.yaml self.assertEqual( DEFAULT_AUTH_URL, _shell.cloud.config['auth']['auth_url'], ) self.assertEqual( 'cake', _shell.cloud.config['donut'], ) # These come from clouds.yaml self.assertEqual( 'heart-o-gold', _shell.cloud.config['auth']['project_name'], ) self.assertEqual( 'zaphod', _shell.cloud.config['auth']['username'], ) self.assertEqual( 'occ-cloud', _shell.cloud.config['region_name'], ) self.assertEqual( 'occ-cloud', _shell.client_manager.region_name, ) self.assertEqual('mycert', _shell.cloud.config['cert']) self.assertEqual('mickey', _shell.cloud.config['key']) self.assertEqual(('mycert', 'mickey'), _shell.client_manager.cert)
def test_shell_args_precedence_3(self, config_mock, vendor_mock): """Test command line overriding environment and occ""" config_mock.return_value = ('file.yaml', copy.deepcopy(CLOUD_1)) vendor_mock.return_value = ('file.yaml', copy.deepcopy(PUBLIC_1)) _shell = utils.make_shell() # Test command option overriding config file value utils.fake_execute( _shell, "--os-cloud scc --os-region-name krikkit list user", ) self.assertEqual( 'scc', _shell.cloud.name, ) # These come from clouds-public.yaml self.assertEqual( DEFAULT_AUTH_URL, _shell.cloud.config['auth']['auth_url'], ) self.assertEqual( 'glazed', _shell.cloud.config['donut'], ) # These come from clouds.yaml self.assertEqual( DEFAULT_PROJECT_NAME, _shell.cloud.config['auth']['project_name'], ) self.assertEqual( 'zaphod', _shell.cloud.config['auth']['username'], ) # These come from the command line self.assertEqual( 'krikkit', _shell.cloud.config['region_name'], ) self.assertEqual( 'krikkit', _shell.client_manager.region_name, )
def test_shell_args_precedence_1(self, config_mock, vendor_mock): """Test environment overriding occ""" config_mock.return_value = ('file.yaml', copy.deepcopy(CLOUD_2)) vendor_mock.return_value = ('file.yaml', copy.deepcopy(PUBLIC_1)) _shell = utils.make_shell() # Test env var utils.fake_execute( _shell, "module list", ) self.assertEqual( 'megacloud', _shell.cloud.name, ) # These come from clouds-public.yaml self.assertEqual( DEFAULT_AUTH_URL, _shell.cloud.config['auth']['auth_url'], ) self.assertEqual( 'cake', _shell.cloud.config['donut'], ) # These come from clouds.yaml self.assertEqual( 'heart-o-gold', _shell.cloud.config['auth']['project_name'], ) self.assertEqual( 'zaphod', _shell.cloud.config['auth']['username'], ) # These come from the environment self.assertEqual( 'occ-env', _shell.cloud.config['region_name'], ) self.assertEqual( 'occ-env', _shell.client_manager.region_name, )
def test_shell_args_precedence(self, config_mock, vendor_mock): config_mock.return_value = ('file.yaml', copy.deepcopy(CLOUD_2)) vendor_mock.return_value = ('file.yaml', copy.deepcopy(PUBLIC_1)) _shell = utils.make_shell() # Test command option overriding config file value utils.fake_execute( _shell, "--os-cloud megacloud --os-region-name krikkit module list", ) self.assertEqual( 'megacloud', _shell.cloud.name, ) # These come from clouds-public.yaml self.assertEqual( DEFAULT_AUTH_URL, _shell.cloud.config['auth']['auth_url'], ) self.assertEqual( 'cake', _shell.cloud.config['donut'], ) # These come from clouds.yaml self.assertEqual( 'heart-o-gold', _shell.cloud.config['auth']['project_name'], ) self.assertEqual( 'zaphod', _shell.cloud.config['auth']['username'], ) self.assertEqual( 'krikkit', _shell.cloud.config['region_name'], ) self.assertEqual( 'krikkit', _shell.client_manager.region_name, )
def _assert_cli(self, cmd_options, default_args): with mock.patch( self.shell_class_name + ".initialize_app", self.app, ): _shell = osc_lib_test_utils.make_shell( shell_class=self.shell_class, ) _cmd = cmd_options + " list server" osc_lib_test_utils.fake_execute(_shell, _cmd) self.app.assert_called_with(["list", "server"]) self.assertEqual(default_args["compute_api_version"], _shell.options.os_compute_api_version) self.assertEqual(default_args["identity_api_version"], _shell.options.os_identity_api_version) self.assertEqual(default_args["image_api_version"], _shell.options.os_image_api_version) self.assertEqual(default_args["volume_api_version"], _shell.options.os_volume_api_version) self.assertEqual(default_args["network_api_version"], _shell.options.os_network_api_version)