Rearrange integration tests

Move the integration tests into their final home...

* Create tests/integ to hold the integration tests
* Split tests/test_shell_integ.py into tests/integ/base.py and
  tests/integ/cli/test_shell.py
* Rename TestXXXXInteg classes to TestIntegXXXX
* Adds tests/integ/cli/test_project.py for some simple project argument tests

Change-Id: I2cdd340d1d446d61784eae35dd5aa09d40d5899d
This commit is contained in:
Dean Troyer 2016-08-31 13:55:59 -05:00
parent 8241f08ee1
commit ca15cd434b
5 changed files with 411 additions and 195 deletions

View File

View File

@ -0,0 +1,121 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from keystoneauth1 import fixture as ksa_fixture
from requests_mock.contrib import fixture
from openstackclient.tests import test_shell
from openstackclient.tests import utils
HOST = "192.168.5.41"
URL_BASE = "http://%s/identity" % HOST
V2_AUTH_URL = URL_BASE + "/v2.0/"
V2_VERSION_RESP = {
"version": {
"status": "stable",
"updated": "2014-04-17T00:00:00Z",
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.identity-v2.0+json",
},
],
"id": "v2.0",
"links": [
{
"href": V2_AUTH_URL,
"rel": "self",
},
{
"href": "http://docs.openstack.org/",
"type": "text/html",
"rel": "describedby",
},
],
},
}
V3_AUTH_URL = URL_BASE + "/v3/"
V3_VERSION_RESP = {
"version": {
"status": "stable",
"updated": "2016-04-04T00:00:00Z",
"media-types": [{
"base": "application/json",
"type": "application/vnd.openstack.identity-v3+json",
}],
"id": "v3.6",
"links": [{
"href": V3_AUTH_URL,
"rel": "self",
}]
}
}
def make_v2_token(req_mock):
"""Create an Identity v2 token and register the responses"""
token = ksa_fixture.V2Token(
tenant_name=test_shell.DEFAULT_PROJECT_NAME,
user_name=test_shell.DEFAULT_USERNAME,
)
# Set up the v2 auth routes
req_mock.register_uri(
'GET',
V2_AUTH_URL,
json=V2_VERSION_RESP,
status_code=200,
)
req_mock.register_uri(
'POST',
V2_AUTH_URL + 'tokens',
json=token,
status_code=200,
)
return token
def make_v3_token(req_mock):
"""Create an Identity v3 token and register the response"""
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
req_mock.register_uri(
'GET',
V3_AUTH_URL,
json=V3_VERSION_RESP,
status_code=200,
)
req_mock.register_uri(
'POST',
V3_AUTH_URL + 'auth/tokens',
json=token,
status_code=200,
)
return token
class TestInteg(utils.TestCase):
def setUp(self):
super(TestInteg, self).setUp()
self.requests_mock = self.useFixture(fixture.Fixture())

View File

@ -0,0 +1,257 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import copy
from osc_lib.tests import utils as osc_lib_utils
from openstackclient import shell
from openstackclient.tests.integ import base as test_base
from openstackclient.tests import test_shell
class TestIntegV2ProjectID(test_base.TestInteg):
def setUp(self):
super(TestIntegV2ProjectID, self).setUp()
env = {
"OS_AUTH_URL": test_base.V2_AUTH_URL,
"OS_PROJECT_ID": test_shell.DEFAULT_PROJECT_ID,
"OS_USERNAME": test_shell.DEFAULT_USERNAME,
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
"OS_IDENTITY_API_VERSION": "2",
}
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = test_base.make_v2_token(self.requests_mock)
def test_project_id_env(self):
_shell = shell.OpenStackShell()
_shell.run("configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V2_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertEqual(
test_shell.DEFAULT_PROJECT_ID,
auth_req['auth']['tenantId'],
)
def test_project_id_arg(self):
_shell = shell.OpenStackShell()
_shell.run("--os-project-id wsx configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V2_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertEqual(
"wsx",
auth_req['auth']['tenantId'],
)
class TestIntegV2ProjectName(test_base.TestInteg):
def setUp(self):
super(TestIntegV2ProjectName, self).setUp()
env = {
"OS_AUTH_URL": test_base.V2_AUTH_URL,
"OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME,
"OS_USERNAME": test_shell.DEFAULT_USERNAME,
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
"OS_IDENTITY_API_VERSION": "2",
}
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = test_base.make_v2_token(self.requests_mock)
def test_project_name_env(self):
_shell = shell.OpenStackShell()
_shell.run("configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V2_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertEqual(
test_shell.DEFAULT_PROJECT_NAME,
auth_req['auth']['tenantName'],
)
def test_project_name_arg(self):
_shell = shell.OpenStackShell()
_shell.run("--os-project-name qaz configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V2_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertEqual(
"qaz",
auth_req['auth']['tenantName'],
)
class TestIntegV3ProjectID(test_base.TestInteg):
def setUp(self):
super(TestIntegV3ProjectID, self).setUp()
env = {
"OS_AUTH_URL": test_base.V3_AUTH_URL,
"OS_PROJECT_ID": test_shell.DEFAULT_PROJECT_NAME,
# "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_PASSWORD": test_shell.DEFAULT_PASSWORD,
"OS_IDENTITY_API_VERSION": "3",
}
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = test_base.make_v3_token(self.requests_mock)
def test_project_id_env(self):
_shell = shell.OpenStackShell()
_shell.run("configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertIsNone(auth_req['auth'].get('tenantId', None))
self.assertIsNone(auth_req['auth'].get('tenantName', None))
def test_project_id_arg(self):
_shell = shell.OpenStackShell()
_shell.run("--os-project-id wsx configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertIsNone(auth_req['auth'].get('tenantId', None))
self.assertIsNone(auth_req['auth'].get('tenantName', None))
class TestIntegV3ProjectName(test_base.TestInteg):
def setUp(self):
super(TestIntegV3ProjectName, self).setUp()
env = {
"OS_AUTH_URL": test_base.V3_AUTH_URL,
"OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME,
# "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_PASSWORD": test_shell.DEFAULT_PASSWORD,
"OS_IDENTITY_API_VERSION": "3",
}
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = test_base.make_v3_token(self.requests_mock)
def test_project_name_env(self):
_shell = shell.OpenStackShell()
_shell.run("configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertEqual(
test_shell.DEFAULT_PROJECT_NAME,
auth_req['auth']['scope']['project']['name'],
)
self.assertIsNone(auth_req['auth'].get('tenantId', None))
self.assertIsNone(auth_req['auth'].get('tenantName', None))
def test_project_name_arg(self):
_shell = shell.OpenStackShell()
_shell.run("--os-project-name wsx configuration show".split())
# Check general calls
self.assertEqual(len(self.requests_mock.request_history), 2)
# Check discovery request
self.assertEqual(
test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url,
)
# Check auth request
auth_req = self.requests_mock.request_history[1].json()
self.assertEqual(
"wsx",
auth_req['auth']['scope']['project']['name'],
)
self.assertIsNone(auth_req['auth'].get('tenantId', None))
self.assertIsNone(auth_req['auth'].get('tenantName', None))

View File

@ -13,75 +13,19 @@
import copy import copy
import mock import mock
from keystoneauth1 import fixture as ksa_fixture
from osc_lib.tests import utils as osc_lib_utils from osc_lib.tests import utils as osc_lib_utils
from requests_mock.contrib import fixture
from openstackclient import shell from openstackclient import shell
from openstackclient.tests.integ import base as test_base
from openstackclient.tests import test_shell from openstackclient.tests import test_shell
from openstackclient.tests import utils
HOST = "192.168.5.41"
URL_BASE = "http://%s/identity" % HOST
V2_AUTH_URL = URL_BASE + "/v2.0/"
V2_VERSION_RESP = {
"version": {
"status": "stable",
"updated": "2014-04-17T00:00:00Z",
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.identity-v2.0+json",
},
],
"id": "v2.0",
"links": [
{
"href": V2_AUTH_URL,
"rel": "self",
},
{
"href": "http://docs.openstack.org/",
"type": "text/html",
"rel": "describedby",
},
],
},
}
V3_AUTH_URL = URL_BASE + "/v3/"
V3_VERSION_RESP = {
"version": {
"status": "stable",
"updated": "2016-04-04T00:00:00Z",
"media-types": [{
"base": "application/json",
"type": "application/vnd.openstack.identity-v3+json",
}],
"id": "v3.6",
"links": [{
"href": V3_AUTH_URL,
"rel": "self",
}]
}
}
class TestShellInteg(utils.TestCase): class TestIntegShellCliV2(test_base.TestInteg):
def setUp(self): def setUp(self):
super(TestShellInteg, self).setUp() super(TestIntegShellCliV2, self).setUp()
self.requests_mock = self.useFixture(fixture.Fixture())
class TestShellCliV2Integ(TestShellInteg):
def setUp(self):
super(TestShellCliV2Integ, self).setUp()
env = { env = {
"OS_AUTH_URL": V2_AUTH_URL, "OS_AUTH_URL": test_base.V2_AUTH_URL,
"OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME, "OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME,
"OS_USERNAME": test_shell.DEFAULT_USERNAME, "OS_USERNAME": test_shell.DEFAULT_USERNAME,
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD, "OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
@ -89,24 +33,7 @@ class TestShellCliV2Integ(TestShellInteg):
} }
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env))) self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = ksa_fixture.V2Token( self.token = test_base.make_v2_token(self.requests_mock)
tenant_name=test_shell.DEFAULT_PROJECT_NAME,
user_name=test_shell.DEFAULT_USERNAME,
)
# Set up the v2 auth routes
self.requests_mock.register_uri(
'GET',
V2_AUTH_URL,
json=V2_VERSION_RESP,
status_code=200,
)
self.requests_mock.register_uri(
'POST',
V2_AUTH_URL + 'tokens',
json=self.token,
status_code=200,
)
def test_shell_args_no_options(self): def test_shell_args_no_options(self):
_shell = shell.OpenStackShell() _shell = shell.OpenStackShell()
@ -117,7 +44,7 @@ class TestShellCliV2Integ(TestShellInteg):
# Check discovery request # Check discovery request
self.assertEqual( self.assertEqual(
V2_AUTH_URL, test_base.V2_AUTH_URL,
self.requests_mock.request_history[0].url, self.requests_mock.request_history[0].url,
) )
@ -181,12 +108,12 @@ class TestShellCliV2Integ(TestShellInteg):
self.assertFalse(self.requests_mock.request_history[0].verify) self.assertFalse(self.requests_mock.request_history[0].verify)
class TestShellCliV2IgnoreInteg(TestShellInteg): class TestIntegShellCliV2Ignore(test_base.TestInteg):
def setUp(self): def setUp(self):
super(TestShellCliV2IgnoreInteg, self).setUp() super(TestIntegShellCliV2Ignore, self).setUp()
env = { env = {
"OS_AUTH_URL": V2_AUTH_URL, "OS_AUTH_URL": test_base.V2_AUTH_URL,
"OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME, "OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME,
"OS_USERNAME": test_shell.DEFAULT_USERNAME, "OS_USERNAME": test_shell.DEFAULT_USERNAME,
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD, "OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
@ -196,24 +123,7 @@ class TestShellCliV2IgnoreInteg(TestShellInteg):
} }
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env))) self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = ksa_fixture.V2Token( self.token = test_base.make_v2_token(self.requests_mock)
tenant_name=test_shell.DEFAULT_PROJECT_NAME,
user_name=test_shell.DEFAULT_USERNAME,
)
# Set up the v2 auth routes
self.requests_mock.register_uri(
'GET',
V2_AUTH_URL,
json=V2_VERSION_RESP,
status_code=200,
)
self.requests_mock.register_uri(
'POST',
V2_AUTH_URL + 'tokens',
json=self.token,
status_code=200,
)
def test_shell_args_ignore_v3(self): def test_shell_args_ignore_v3(self):
_shell = shell.OpenStackShell() _shell = shell.OpenStackShell()
@ -224,7 +134,7 @@ class TestShellCliV2IgnoreInteg(TestShellInteg):
# Check discovery request # Check discovery request
self.assertEqual( self.assertEqual(
V2_AUTH_URL, test_base.V2_AUTH_URL,
self.requests_mock.request_history[0].url, self.requests_mock.request_history[0].url,
) )
@ -245,12 +155,12 @@ class TestShellCliV2IgnoreInteg(TestShellInteg):
) )
class TestShellCliV3Integ(TestShellInteg): class TestIntegShellCliV3(test_base.TestInteg):
def setUp(self): def setUp(self):
super(TestShellCliV3Integ, self).setUp() super(TestIntegShellCliV3, self).setUp()
env = { env = {
"OS_AUTH_URL": V3_AUTH_URL, "OS_AUTH_URL": test_base.V3_AUTH_URL,
"OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID, "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
"OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID, "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
"OS_USERNAME": test_shell.DEFAULT_USERNAME, "OS_USERNAME": test_shell.DEFAULT_USERNAME,
@ -259,25 +169,7 @@ class TestShellCliV3Integ(TestShellInteg):
} }
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env))) self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = ksa_fixture.V3Token( self.token = test_base.make_v3_token(self.requests_mock)
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,
)
def test_shell_args_no_options(self): def test_shell_args_no_options(self):
_shell = shell.OpenStackShell() _shell = shell.OpenStackShell()
@ -288,7 +180,7 @@ class TestShellCliV3Integ(TestShellInteg):
# Check discovery request # Check discovery request
self.assertEqual( self.assertEqual(
V3_AUTH_URL, test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url, self.requests_mock.request_history[0].url,
) )
@ -354,12 +246,12 @@ class TestShellCliV3Integ(TestShellInteg):
self.assertFalse(self.requests_mock.request_history[0].verify) self.assertFalse(self.requests_mock.request_history[0].verify)
class TestShellCliV3Prompt(TestShellInteg): class TestIntegShellCliV3Prompt(test_base.TestInteg):
def setUp(self): def setUp(self):
super(TestShellCliV3Prompt, self).setUp() super(TestIntegShellCliV3Prompt, self).setUp()
env = { env = {
"OS_AUTH_URL": V3_AUTH_URL, "OS_AUTH_URL": test_base.V3_AUTH_URL,
"OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID, "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
"OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID, "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
"OS_USERNAME": test_shell.DEFAULT_USERNAME, "OS_USERNAME": test_shell.DEFAULT_USERNAME,
@ -367,25 +259,7 @@ class TestShellCliV3Prompt(TestShellInteg):
} }
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env))) self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = ksa_fixture.V3Token( self.token = test_base.make_v3_token(self.requests_mock)
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,
)
@mock.patch("osc_lib.shell.prompt_for_password") @mock.patch("osc_lib.shell.prompt_for_password")
def test_shell_callback(self, mock_prompt): def test_shell_callback(self, mock_prompt):
@ -412,7 +286,7 @@ class TestShellCliV3Prompt(TestShellInteg):
) )
class TestShellCliPrecedence(TestShellInteg): class TestIntegShellCliPrecedence(test_base.TestInteg):
"""Validate option precedence rules without clouds.yaml """Validate option precedence rules without clouds.yaml
Global option values may be set in three places: Global option values may be set in three places:
@ -425,9 +299,9 @@ class TestShellCliPrecedence(TestShellInteg):
""" """
def setUp(self): def setUp(self):
super(TestShellCliPrecedence, self).setUp() super(TestIntegShellCliPrecedence, self).setUp()
env = { env = {
"OS_AUTH_URL": V3_AUTH_URL, "OS_AUTH_URL": test_base.V3_AUTH_URL,
"OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID, "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
"OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID, "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
"OS_USERNAME": test_shell.DEFAULT_USERNAME, "OS_USERNAME": test_shell.DEFAULT_USERNAME,
@ -435,29 +309,11 @@ class TestShellCliPrecedence(TestShellInteg):
} }
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env))) self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = ksa_fixture.V3Token( self.token = test_base.make_v3_token(self.requests_mock)
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 # Patch a v3 auth URL into the o-c-c data
test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \ test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \
= V3_AUTH_URL = test_base.V3_AUTH_URL
def test_shell_args_options(self): def test_shell_args_options(self):
"""Verify command line options override environment variables""" """Verify command line options override environment variables"""
@ -473,7 +329,7 @@ class TestShellCliPrecedence(TestShellInteg):
# Check discovery request # Check discovery request
self.assertEqual( self.assertEqual(
V3_AUTH_URL, test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url, self.requests_mock.request_history[0].url,
) )
@ -502,7 +358,7 @@ class TestShellCliPrecedence(TestShellInteg):
) )
class TestShellCliPrecedenceOCC(TestShellInteg): class TestIntegShellCliPrecedenceOCC(test_base.TestInteg):
"""Validate option precedence rules with clouds.yaml """Validate option precedence rules with clouds.yaml
Global option values may be set in three places: Global option values may be set in three places:
@ -515,10 +371,10 @@ class TestShellCliPrecedenceOCC(TestShellInteg):
""" """
def setUp(self): def setUp(self):
super(TestShellCliPrecedenceOCC, self).setUp() super(TestIntegShellCliPrecedenceOCC, self).setUp()
env = { env = {
"OS_CLOUD": "megacloud", "OS_CLOUD": "megacloud",
"OS_AUTH_URL": V3_AUTH_URL, "OS_AUTH_URL": test_base.V3_AUTH_URL,
"OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID, "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
"OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID, "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
"OS_USERNAME": test_shell.DEFAULT_USERNAME, "OS_USERNAME": test_shell.DEFAULT_USERNAME,
@ -527,29 +383,11 @@ class TestShellCliPrecedenceOCC(TestShellInteg):
} }
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env))) self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
self.token = ksa_fixture.V3Token( self.token = test_base.make_v3_token(self.requests_mock)
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 # Patch a v3 auth URL into the o-c-c data
test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \ test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \
= V3_AUTH_URL = test_base.V3_AUTH_URL
@mock.patch("os_client_config.config.OpenStackConfig._load_vendor_file") @mock.patch("os_client_config.config.OpenStackConfig._load_vendor_file")
@mock.patch("os_client_config.config.OpenStackConfig._load_config_file") @mock.patch("os_client_config.config.OpenStackConfig._load_config_file")
@ -577,7 +415,7 @@ class TestShellCliPrecedenceOCC(TestShellInteg):
# Check discovery request # Check discovery request
self.assertEqual( self.assertEqual(
V3_AUTH_URL, test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url, self.requests_mock.request_history[0].url,
) )
@ -647,7 +485,7 @@ class TestShellCliPrecedenceOCC(TestShellInteg):
# Check discovery request # Check discovery request
self.assertEqual( self.assertEqual(
V3_AUTH_URL, test_base.V3_AUTH_URL,
self.requests_mock.request_history[0].url, self.requests_mock.request_history[0].url,
) )