Skip to content

Commit 5940439

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Rearrange integration tests"
2 parents a24d6ba + ca15cd4 commit 5940439

5 files changed

Lines changed: 411 additions & 195 deletions

File tree

openstackclient/tests/integ/__init__.py

Whitespace-only changes.
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# Licensed under the Apache License, Version 2.0 (the "License"); you may
2+
# not use this file except in compliance with the License. You may obtain
3+
# a copy of the License at
4+
#
5+
# http://www.apache.org/licenses/LICENSE-2.0
6+
#
7+
# Unless required by applicable law or agreed to in writing, software
8+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10+
# License for the specific language governing permissions and limitations
11+
# under the License.
12+
13+
from keystoneauth1 import fixture as ksa_fixture
14+
from requests_mock.contrib import fixture
15+
16+
from openstackclient.tests import test_shell
17+
from openstackclient.tests import utils
18+
19+
20+
HOST = "192.168.5.41"
21+
URL_BASE = "http://%s/identity" % HOST
22+
23+
V2_AUTH_URL = URL_BASE + "/v2.0/"
24+
V2_VERSION_RESP = {
25+
"version": {
26+
"status": "stable",
27+
"updated": "2014-04-17T00:00:00Z",
28+
"media-types": [
29+
{
30+
"base": "application/json",
31+
"type": "application/vnd.openstack.identity-v2.0+json",
32+
},
33+
],
34+
"id": "v2.0",
35+
"links": [
36+
{
37+
"href": V2_AUTH_URL,
38+
"rel": "self",
39+
},
40+
{
41+
"href": "http://docs.openstack.org/",
42+
"type": "text/html",
43+
"rel": "describedby",
44+
},
45+
],
46+
},
47+
}
48+
49+
V3_AUTH_URL = URL_BASE + "/v3/"
50+
V3_VERSION_RESP = {
51+
"version": {
52+
"status": "stable",
53+
"updated": "2016-04-04T00:00:00Z",
54+
"media-types": [{
55+
"base": "application/json",
56+
"type": "application/vnd.openstack.identity-v3+json",
57+
}],
58+
"id": "v3.6",
59+
"links": [{
60+
"href": V3_AUTH_URL,
61+
"rel": "self",
62+
}]
63+
}
64+
}
65+
66+
67+
def make_v2_token(req_mock):
68+
"""Create an Identity v2 token and register the responses"""
69+
70+
token = ksa_fixture.V2Token(
71+
tenant_name=test_shell.DEFAULT_PROJECT_NAME,
72+
user_name=test_shell.DEFAULT_USERNAME,
73+
)
74+
75+
# Set up the v2 auth routes
76+
req_mock.register_uri(
77+
'GET',
78+
V2_AUTH_URL,
79+
json=V2_VERSION_RESP,
80+
status_code=200,
81+
)
82+
req_mock.register_uri(
83+
'POST',
84+
V2_AUTH_URL + 'tokens',
85+
json=token,
86+
status_code=200,
87+
)
88+
return token
89+
90+
91+
def make_v3_token(req_mock):
92+
"""Create an Identity v3 token and register the response"""
93+
94+
token = ksa_fixture.V3Token(
95+
# project_domain_id=test_shell.DEFAULT_PROJECT_DOMAIN_ID,
96+
user_domain_id=test_shell.DEFAULT_USER_DOMAIN_ID,
97+
user_name=test_shell.DEFAULT_USERNAME,
98+
)
99+
100+
# Set up the v3 auth routes
101+
req_mock.register_uri(
102+
'GET',
103+
V3_AUTH_URL,
104+
json=V3_VERSION_RESP,
105+
status_code=200,
106+
)
107+
req_mock.register_uri(
108+
'POST',
109+
V3_AUTH_URL + 'auth/tokens',
110+
json=token,
111+
status_code=200,
112+
)
113+
return token
114+
115+
116+
class TestInteg(utils.TestCase):
117+
118+
def setUp(self):
119+
super(TestInteg, self).setUp()
120+
121+
self.requests_mock = self.useFixture(fixture.Fixture())

openstackclient/tests/integ/cli/__init__.py

Whitespace-only changes.
Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
# Licensed under the Apache License, Version 2.0 (the "License"); you may
2+
# not use this file except in compliance with the License. You may obtain
3+
# a copy of the License at
4+
#
5+
# http://www.apache.org/licenses/LICENSE-2.0
6+
#
7+
# Unless required by applicable law or agreed to in writing, software
8+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10+
# License for the specific language governing permissions and limitations
11+
# under the License.
12+
13+
import copy
14+
15+
from osc_lib.tests import utils as osc_lib_utils
16+
17+
from openstackclient import shell
18+
from openstackclient.tests.integ import base as test_base
19+
from openstackclient.tests import test_shell
20+
21+
22+
class TestIntegV2ProjectID(test_base.TestInteg):
23+
24+
def setUp(self):
25+
super(TestIntegV2ProjectID, self).setUp()
26+
env = {
27+
"OS_AUTH_URL": test_base.V2_AUTH_URL,
28+
"OS_PROJECT_ID": test_shell.DEFAULT_PROJECT_ID,
29+
"OS_USERNAME": test_shell.DEFAULT_USERNAME,
30+
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
31+
"OS_IDENTITY_API_VERSION": "2",
32+
}
33+
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
34+
35+
self.token = test_base.make_v2_token(self.requests_mock)
36+
37+
def test_project_id_env(self):
38+
_shell = shell.OpenStackShell()
39+
_shell.run("configuration show".split())
40+
41+
# Check general calls
42+
self.assertEqual(len(self.requests_mock.request_history), 2)
43+
44+
# Check discovery request
45+
self.assertEqual(
46+
test_base.V2_AUTH_URL,
47+
self.requests_mock.request_history[0].url,
48+
)
49+
50+
# Check auth request
51+
auth_req = self.requests_mock.request_history[1].json()
52+
53+
self.assertEqual(
54+
test_shell.DEFAULT_PROJECT_ID,
55+
auth_req['auth']['tenantId'],
56+
)
57+
58+
def test_project_id_arg(self):
59+
_shell = shell.OpenStackShell()
60+
_shell.run("--os-project-id wsx configuration show".split())
61+
62+
# Check general calls
63+
self.assertEqual(len(self.requests_mock.request_history), 2)
64+
65+
# Check discovery request
66+
self.assertEqual(
67+
test_base.V2_AUTH_URL,
68+
self.requests_mock.request_history[0].url,
69+
)
70+
71+
# Check auth request
72+
auth_req = self.requests_mock.request_history[1].json()
73+
74+
self.assertEqual(
75+
"wsx",
76+
auth_req['auth']['tenantId'],
77+
)
78+
79+
80+
class TestIntegV2ProjectName(test_base.TestInteg):
81+
82+
def setUp(self):
83+
super(TestIntegV2ProjectName, self).setUp()
84+
env = {
85+
"OS_AUTH_URL": test_base.V2_AUTH_URL,
86+
"OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME,
87+
"OS_USERNAME": test_shell.DEFAULT_USERNAME,
88+
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
89+
"OS_IDENTITY_API_VERSION": "2",
90+
}
91+
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
92+
93+
self.token = test_base.make_v2_token(self.requests_mock)
94+
95+
def test_project_name_env(self):
96+
_shell = shell.OpenStackShell()
97+
_shell.run("configuration show".split())
98+
99+
# Check general calls
100+
self.assertEqual(len(self.requests_mock.request_history), 2)
101+
102+
# Check discovery request
103+
self.assertEqual(
104+
test_base.V2_AUTH_URL,
105+
self.requests_mock.request_history[0].url,
106+
)
107+
108+
# Check auth request
109+
auth_req = self.requests_mock.request_history[1].json()
110+
111+
self.assertEqual(
112+
test_shell.DEFAULT_PROJECT_NAME,
113+
auth_req['auth']['tenantName'],
114+
)
115+
116+
def test_project_name_arg(self):
117+
_shell = shell.OpenStackShell()
118+
_shell.run("--os-project-name qaz configuration show".split())
119+
120+
# Check general calls
121+
self.assertEqual(len(self.requests_mock.request_history), 2)
122+
123+
# Check discovery request
124+
self.assertEqual(
125+
test_base.V2_AUTH_URL,
126+
self.requests_mock.request_history[0].url,
127+
)
128+
129+
# Check auth request
130+
auth_req = self.requests_mock.request_history[1].json()
131+
132+
self.assertEqual(
133+
"qaz",
134+
auth_req['auth']['tenantName'],
135+
)
136+
137+
138+
class TestIntegV3ProjectID(test_base.TestInteg):
139+
140+
def setUp(self):
141+
super(TestIntegV3ProjectID, self).setUp()
142+
env = {
143+
"OS_AUTH_URL": test_base.V3_AUTH_URL,
144+
"OS_PROJECT_ID": test_shell.DEFAULT_PROJECT_NAME,
145+
# "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
146+
# "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
147+
"OS_USERNAME": test_shell.DEFAULT_USERNAME,
148+
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
149+
"OS_IDENTITY_API_VERSION": "3",
150+
}
151+
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
152+
153+
self.token = test_base.make_v3_token(self.requests_mock)
154+
155+
def test_project_id_env(self):
156+
_shell = shell.OpenStackShell()
157+
_shell.run("configuration show".split())
158+
159+
# Check general calls
160+
self.assertEqual(len(self.requests_mock.request_history), 2)
161+
162+
# Check discovery request
163+
self.assertEqual(
164+
test_base.V3_AUTH_URL,
165+
self.requests_mock.request_history[0].url,
166+
)
167+
168+
# Check auth request
169+
auth_req = self.requests_mock.request_history[1].json()
170+
171+
self.assertIsNone(auth_req['auth'].get('tenantId', None))
172+
self.assertIsNone(auth_req['auth'].get('tenantName', None))
173+
174+
def test_project_id_arg(self):
175+
_shell = shell.OpenStackShell()
176+
_shell.run("--os-project-id wsx configuration show".split())
177+
178+
# Check general calls
179+
self.assertEqual(len(self.requests_mock.request_history), 2)
180+
181+
# Check discovery request
182+
self.assertEqual(
183+
test_base.V3_AUTH_URL,
184+
self.requests_mock.request_history[0].url,
185+
)
186+
187+
# Check auth request
188+
auth_req = self.requests_mock.request_history[1].json()
189+
190+
self.assertIsNone(auth_req['auth'].get('tenantId', None))
191+
self.assertIsNone(auth_req['auth'].get('tenantName', None))
192+
193+
194+
class TestIntegV3ProjectName(test_base.TestInteg):
195+
196+
def setUp(self):
197+
super(TestIntegV3ProjectName, self).setUp()
198+
env = {
199+
"OS_AUTH_URL": test_base.V3_AUTH_URL,
200+
"OS_PROJECT_NAME": test_shell.DEFAULT_PROJECT_NAME,
201+
# "OS_PROJECT_DOMAIN_ID": test_shell.DEFAULT_PROJECT_DOMAIN_ID,
202+
# "OS_USER_DOMAIN_ID": test_shell.DEFAULT_USER_DOMAIN_ID,
203+
"OS_USERNAME": test_shell.DEFAULT_USERNAME,
204+
"OS_PASSWORD": test_shell.DEFAULT_PASSWORD,
205+
"OS_IDENTITY_API_VERSION": "3",
206+
}
207+
self.useFixture(osc_lib_utils.EnvFixture(copy.deepcopy(env)))
208+
209+
self.token = test_base.make_v3_token(self.requests_mock)
210+
211+
def test_project_name_env(self):
212+
_shell = shell.OpenStackShell()
213+
_shell.run("configuration show".split())
214+
215+
# Check general calls
216+
self.assertEqual(len(self.requests_mock.request_history), 2)
217+
218+
# Check discovery request
219+
self.assertEqual(
220+
test_base.V3_AUTH_URL,
221+
self.requests_mock.request_history[0].url,
222+
)
223+
224+
# Check auth request
225+
auth_req = self.requests_mock.request_history[1].json()
226+
227+
self.assertEqual(
228+
test_shell.DEFAULT_PROJECT_NAME,
229+
auth_req['auth']['scope']['project']['name'],
230+
)
231+
232+
self.assertIsNone(auth_req['auth'].get('tenantId', None))
233+
self.assertIsNone(auth_req['auth'].get('tenantName', None))
234+
235+
def test_project_name_arg(self):
236+
_shell = shell.OpenStackShell()
237+
_shell.run("--os-project-name wsx configuration show".split())
238+
239+
# Check general calls
240+
self.assertEqual(len(self.requests_mock.request_history), 2)
241+
242+
# Check discovery request
243+
self.assertEqual(
244+
test_base.V3_AUTH_URL,
245+
self.requests_mock.request_history[0].url,
246+
)
247+
248+
# Check auth request
249+
auth_req = self.requests_mock.request_history[1].json()
250+
251+
self.assertEqual(
252+
"wsx",
253+
auth_req['auth']['scope']['project']['name'],
254+
)
255+
256+
self.assertIsNone(auth_req['auth'].get('tenantId', None))
257+
self.assertIsNone(auth_req['auth'].get('tenantName', None))

0 commit comments

Comments
 (0)