summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-08-21 02:37:11 +0000
committerGerrit Code Review <review@openstack.org>2016-08-21 02:37:11 +0000
commit90b89acf60dbf0ede07174f5fd5ee2c086bcfd5e (patch)
treed14c14e986dcfe84428a334ea18fab325a097790 /openstackclient
parent8f63da46216053ef218a11e5809325b09462db6f (diff)
parent06721ea8895558b0000ca9e54f56ffa64657edf1 (diff)
downloadpython-openstackclient-90b89acf60dbf0ede07174f5fd5ee2c086bcfd5e.tar.gz
Merge "Integ test cleanup"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/test_shell_integ.py133
1 files changed, 91 insertions, 42 deletions
diff --git a/openstackclient/tests/test_shell_integ.py b/openstackclient/tests/test_shell_integ.py
index 88e4ba77..bc5f1ae5 100644
--- a/openstackclient/tests/test_shell_integ.py
+++ b/openstackclient/tests/test_shell_integ.py
@@ -355,7 +355,7 @@ class TestShellCliV3Integ(TestShellInteg):
class TestShellCliPrecedence(TestShellInteg):
- """Validate option precedence rules
+ """Validate option precedence rules without clouds.yaml
Global option values may be set in three places:
* command line options
@@ -369,6 +369,96 @@ class TestShellCliPrecedence(TestShellInteg):
def setUp(self):
super(TestShellCliPrecedence, self).setUp()
env = {
+ "OS_AUTH_URL": V3_AUTH_URL,
+ "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
+ "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
+ "OS_USERNAME": test_shell.DEFAULT_USERNAME,
+ "OS_IDENTITY_API_VERSION": "3",
+ }
+ self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
+
+ self.token = ksa_fixture.V3Token(
+ project_domain_id=test_shell.DEFAULT_PROJECT_DOMAIN_ID,
+ user_domain_id=test_shell.DEFAULT_USER_DOMAIN_ID,
+ user_name=test_shell.DEFAULT_USERNAME,
+ )
+
+ # Set up the v3 auth routes
+ self.requests_mock.register_uri(
+ 'GET',
+ V3_AUTH_URL,
+ json=V3_VERSION_RESP,
+ status_code=200,
+ )
+ self.requests_mock.register_uri(
+ 'POST',
+ V3_AUTH_URL + 'auth/tokens',
+ json=self.token,
+ status_code=200,
+ )
+
+ # Patch a v3 auth URL into the o-c-c data
+ test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \
+ = V3_AUTH_URL
+
+ def test_shell_args_options(self):
+ """Verify command line options override environment variables"""
+
+ _shell = shell.OpenStackShell()
+ _shell.run(
+ "--os-username zarquon --os-password qaz "
+ "configuration show".split(),
+ )
+
+ # Check general calls
+ self.assertEqual(len(self.requests_mock.request_history), 2)
+
+ # Check discovery request
+ self.assertEqual(
+ V3_AUTH_URL,
+ self.requests_mock.request_history[0].url,
+ )
+
+ # Check auth request
+ auth_req = self.requests_mock.request_history[1].json()
+
+ # -env, -cli
+ # No test, everything not specified tests this
+
+ # -env, +cli
+ self.assertEqual(
+ 'qaz',
+ auth_req['auth']['identity']['password']['user']['password'],
+ )
+
+ # +env, -cli
+ self.assertEqual(
+ test_shell.DEFAULT_PROJECT_DOMAIN_ID,
+ auth_req['auth']['identity']['password']['user']['domain']['id'],
+ )
+
+ # +env, +cli
+ self.assertEqual(
+ 'zarquon',
+ auth_req['auth']['identity']['password']['user']['name'],
+ )
+
+
+class TestShellCliPrecedenceOCC(TestShellInteg):
+ """Validate option precedence rules with clouds.yaml
+
+ Global option values may be set in three places:
+ * command line options
+ * environment variables
+ * clouds.yaml
+
+ Verify that the above order is the precedence used,
+ i.e. a command line option overrides all others, etc
+ """
+
+ def setUp(self):
+ super(TestShellCliPrecedenceOCC, self).setUp()
+ env = {
"OS_CLOUD": "megacloud",
"OS_AUTH_URL": V3_AUTH_URL,
"OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
@@ -403,47 +493,6 @@ class TestShellCliPrecedence(TestShellInteg):
test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \
= V3_AUTH_URL
- # @mock.patch("os_client_config.config.OpenStackConfig._load_vendor_file")
- # @mock.patch("os_client_config.config.OpenStackConfig._load_config_file")
- # def test_shell_args_options(self, config_mock, vendor_mock):
- # """Verify command line options override environment variables"""
-
- # _shell = shell.OpenStackShell()
- # _shell.run(
- # "--os-username zarquon --os-password qaz "
- # "configuration show".split(),
- # )
-
- # # Check general calls
- # self.assertEqual(len(self.requests_mock.request_history), 2)
-
- # # Check discovery request
- # self.assertEqual(
- # V3_AUTH_URL,
- # self.requests_mock.request_history[0].url,
- # )
-
- # # Check auth request
- # auth_req = self.requests_mock.request_history[1].json()
-
- # # Environment var, no option
- # self.assertEqual(
- # test_shell.DEFAULT_PROJECT_DOMAIN_ID,
- # auth_req['auth']['identity']['password']['user']['domain']['id'],
- # )
-
- # # Environment var, --os-username override
- # self.assertEqual(
- # 'zarquon',
- # auth_req['auth']['identity']['password']['user']['name'],
- # )
-
- # # No environment var, --os-password override
- # self.assertEqual(
- # 'qaz',
- # auth_req['auth']['identity']['password']['user']['password'],
- # )
-
@mock.patch("os_client_config.config.OpenStackConfig._load_vendor_file")
@mock.patch("os_client_config.config.OpenStackConfig._load_config_file")
def test_shell_args_precedence_1(self, config_mock, vendor_mock):