[Tests] Some fixes in SaharaInputDataSourcesTestCase
There are some updates in test_sahara_input_data_sources.SaharaInputDataSourcesTestCase The main reason why this patch is submitted is that we have some not mocked modules in this test class, so the result is real calling of python clients and having a message in tests output: "Could not find Sahara endpoint in catalog" This message appears sometimes in tox output (due to side effects of concurrent testing) but always appears while running tests in single thread: .tox/py27/bin/python -m unittest discover tests/unit Affected methods: * setUp() - removed unnecessary usage of objects.Endpoint - better context generation: each user now has different credentials, not same for all - removed unused code * test_setup_inputs_swift() - added missed mocks - added missed assertions Change-Id: If611432bd23a55d39687bc383c3817f284887283
This commit is contained in:
parent
a16f4a012d
commit
ea3672e1f7
@ -14,7 +14,6 @@
|
||||
|
||||
import mock
|
||||
|
||||
from rally.common import objects
|
||||
from rally.plugins.openstack.context.sahara import sahara_input_data_sources
|
||||
from tests.unit import test
|
||||
|
||||
@ -25,26 +24,25 @@ class SaharaInputDataSourcesTestCase(test.ScenarioTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(SaharaInputDataSourcesTestCase, self).setUp()
|
||||
credential = objects.Endpoint("foo_url", "user", "passwd")
|
||||
self.tenants_num = 2
|
||||
self.users_per_tenant = 2
|
||||
self.users = self.tenants_num * self.users_per_tenant
|
||||
self.task = mock.MagicMock()
|
||||
|
||||
self.tenants = {}
|
||||
self.users_key = []
|
||||
self.users = []
|
||||
|
||||
for i in range(self.tenants_num):
|
||||
self.tenants[str(i)] = {"id": str(i), "name": str(i),
|
||||
"sahara": {"image": "42"}}
|
||||
for j in range(self.users_per_tenant):
|
||||
self.users_key.append({"id": "%s_%s" % (str(i), str(j)),
|
||||
"tenant_id": str(i),
|
||||
"credential": credential})
|
||||
|
||||
self.user_key = [{"id": i, "tenant_id": j, "credential": "credential"}
|
||||
for j in range(self.tenants_num)
|
||||
for i in range(self.users_per_tenant)]
|
||||
tenant_id = "tenant_%d" % i
|
||||
self.tenants[tenant_id] = {"id": tenant_id,
|
||||
"name": tenant_id + "_name",
|
||||
"sahara": {"image": "foo_image"}}
|
||||
for u in range(self.users_per_tenant):
|
||||
user_id = "%s_user_%d" % (tenant_id, u)
|
||||
self.users.append(
|
||||
{"id": user_id,
|
||||
"tenant_id": tenant_id,
|
||||
"credential": mock.Mock(auth_url="foo_url",
|
||||
username=user_id + "_name",
|
||||
password="foo_password")})
|
||||
|
||||
self.context.update({
|
||||
"config": {
|
||||
@ -58,7 +56,7 @@ class SaharaInputDataSourcesTestCase(test.ScenarioTestCase):
|
||||
},
|
||||
},
|
||||
"admin": {"credential": mock.MagicMock()},
|
||||
"users": self.users_key,
|
||||
"users": self.users,
|
||||
"tenants": self.tenants
|
||||
})
|
||||
|
||||
@ -95,9 +93,16 @@ class SaharaInputDataSourcesTestCase(test.ScenarioTestCase):
|
||||
|
||||
@mock.patch("requests.get")
|
||||
@mock.patch("%s.sahara_input_data_sources.osclients" % CTX)
|
||||
def test_setup_inputs_swift(self, mock_osclients, mock_get):
|
||||
mock_clients = mock_osclients.Clients(mock.MagicMock())
|
||||
mock_get.content = mock.MagicMock(content="OK")
|
||||
@mock.patch("%s.sahara_input_data_sources.resource_manager" % CTX)
|
||||
@mock.patch("%s.sahara_input_data_sources.swift_utils" % CTX)
|
||||
def test_setup_inputs_swift(self, mock_swift_utils, mock_resource_manager,
|
||||
mock_osclients, mock_get):
|
||||
mock_swift_scenario = mock.Mock()
|
||||
mock_swift_scenario._create_container.side_effect = (
|
||||
lambda container_name: "container_%s" % container_name)
|
||||
mock_swift_scenario._upload_object.side_effect = iter(
|
||||
["uploaded_%d" % i for i in range(10)])
|
||||
mock_swift_utils.SwiftScenario.return_value = mock_swift_scenario
|
||||
|
||||
self.context.update({
|
||||
"config": {
|
||||
@ -115,28 +120,39 @@ class SaharaInputDataSourcesTestCase(test.ScenarioTestCase):
|
||||
},
|
||||
"admin": {"credential": mock.MagicMock()},
|
||||
"task": mock.MagicMock(),
|
||||
"users": self.users_key,
|
||||
"users": self.users,
|
||||
"tenants": self.tenants
|
||||
})
|
||||
sahara_ctx = sahara_input_data_sources.SaharaInputDataSources(
|
||||
self.context)
|
||||
sahara_ctx.generate_random_name = mock.Mock()
|
||||
sahara_ctx.generate_random_name = mock.Mock(
|
||||
side_effect=iter(["random_name_%d" % i for i in range(10)]))
|
||||
|
||||
input_ds_create_calls = []
|
||||
|
||||
for i in range(self.tenants_num):
|
||||
input_ds_create_calls.append(mock.call(
|
||||
name=sahara_ctx.generate_random_name.return_value,
|
||||
name="random_name_%d" % i,
|
||||
description="",
|
||||
data_source_type="swift",
|
||||
url="swift://rally.sahara/input_url",
|
||||
credential_user="user",
|
||||
credential_pass="passwd"
|
||||
credential_user="tenant_%d_user_0_name" % i,
|
||||
credential_pass="foo_password"
|
||||
))
|
||||
|
||||
sahara_ctx.setup()
|
||||
|
||||
self.assertEqual(input_ds_create_calls,
|
||||
mock_clients.sahara().data_sources.create.mock_calls)
|
||||
self.assertEqual(
|
||||
input_ds_create_calls,
|
||||
(mock_osclients.Clients.return_value.sahara.return_value
|
||||
.data_sources.create.mock_calls))
|
||||
|
||||
self.assertEqual({"container_name": "container_rally_rally",
|
||||
"swift_objects": ["uploaded_0", "uploaded_1"]},
|
||||
self.context["sahara"])
|
||||
|
||||
sahara_ctx.cleanup()
|
||||
|
||||
mock_resource_manager.cleanup.assert_called_once_with(
|
||||
names=["sahara.data_sources"],
|
||||
users=self.context["users"])
|
||||
|
Loading…
Reference in New Issue
Block a user