![Andrey Kurilin](/assets/img/avatar_default.png)
Move all modules under the next structure: - rally_openstack.common - rally_openstack.enviromnet - rally_openstack.task - rally_openstack.verification Change-Id: I41702d017cd49b117da3b8e12b19c7327229ae32
145 lines
5.4 KiB
Python
145 lines
5.4 KiB
Python
# All Rights Reserved.
|
|
#
|
|
# 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 unittest import mock
|
|
|
|
from rally_openstack.task.contexts.sahara import sahara_job_binaries
|
|
from rally_openstack.task.scenarios.sahara import utils as sahara_utils
|
|
from tests.unit import test
|
|
|
|
CTX = "rally_openstack.task.contexts.sahara"
|
|
|
|
|
|
class SaharaJobBinariesTestCase(test.ScenarioTestCase):
|
|
|
|
def setUp(self):
|
|
super(SaharaJobBinariesTestCase, self).setUp()
|
|
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 = []
|
|
|
|
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)]
|
|
|
|
self.context.update({
|
|
"config": {
|
|
"users": {
|
|
"tenants": self.tenants_num,
|
|
"users_per_tenant": self.users_per_tenant,
|
|
},
|
|
"sahara_job_binaries": {
|
|
"libs": [
|
|
{
|
|
"name": "test.jar",
|
|
"download_url": "http://example.com/test.jar"
|
|
}
|
|
],
|
|
"mains": [
|
|
{
|
|
"name": "test.jar",
|
|
"download_url": "http://example.com/test.jar"
|
|
}
|
|
]
|
|
},
|
|
},
|
|
"admin": {"credential": mock.MagicMock()},
|
|
"task": mock.MagicMock(),
|
|
"users": self.users_key,
|
|
"tenants": self.tenants
|
|
})
|
|
|
|
@mock.patch("%s.sahara_job_binaries.resource_manager.cleanup" % CTX)
|
|
@mock.patch(("%s.sahara_job_binaries.SaharaJobBinaries."
|
|
"download_and_save_lib") % CTX)
|
|
@mock.patch("%s.sahara_job_binaries.osclients" % CTX)
|
|
def test_setup_and_cleanup(
|
|
self,
|
|
mock_osclients,
|
|
mock_sahara_job_binaries_download_and_save_lib,
|
|
mock_cleanup):
|
|
|
|
mock_sahara = mock_osclients.Clients(mock.MagicMock()).sahara()
|
|
|
|
sahara_ctx = sahara_job_binaries.SaharaJobBinaries(self.context)
|
|
|
|
download_calls = []
|
|
|
|
for i in range(self.tenants_num):
|
|
download_calls.append(mock.call(
|
|
sahara=mock_sahara,
|
|
lib_type="mains",
|
|
name="test.jar",
|
|
download_url="http://example.com/test.jar",
|
|
tenant_id=str(i)))
|
|
download_calls.append(mock.call(
|
|
sahara=mock_sahara,
|
|
lib_type="libs",
|
|
name="test.jar",
|
|
download_url="http://example.com/test.jar",
|
|
tenant_id=str(i)))
|
|
|
|
sahara_ctx.setup()
|
|
|
|
(mock_sahara_job_binaries_download_and_save_lib.
|
|
assert_has_calls(download_calls))
|
|
|
|
sahara_ctx.cleanup()
|
|
|
|
mock_cleanup.assert_called_once_with(
|
|
names=["sahara.job_binary_internals", "sahara.job_binaries"],
|
|
users=self.context["users"],
|
|
superclass=sahara_utils.SaharaScenario,
|
|
task_id=self.context["task"]["uuid"])
|
|
|
|
@mock.patch("%s.sahara_job_binaries.requests" % CTX)
|
|
@mock.patch("%s.sahara_job_binaries.osclients" % CTX)
|
|
def test_download_and_save_lib(self, mock_osclients, mock_requests):
|
|
|
|
mock_requests.get.content.return_value = "some_binary_content"
|
|
mock_sahara = mock_osclients.Clients(mock.MagicMock()).sahara()
|
|
mock_sahara.job_binary_internals.create.return_value = (
|
|
mock.MagicMock(id=42))
|
|
|
|
sahara_ctx = sahara_job_binaries.SaharaJobBinaries(self.context)
|
|
|
|
sahara_ctx.context["tenants"]["0"]["sahara"] = {"mains": []}
|
|
sahara_ctx.context["tenants"]["0"]["sahara"]["libs"] = []
|
|
|
|
sahara_ctx.download_and_save_lib(sahara=mock_sahara,
|
|
lib_type="mains",
|
|
name="test_binary",
|
|
download_url="http://somewhere",
|
|
tenant_id="0")
|
|
|
|
sahara_ctx.download_and_save_lib(sahara=mock_sahara,
|
|
lib_type="libs",
|
|
name="test_binary_2",
|
|
download_url="http://somewhere",
|
|
tenant_id="0")
|
|
|
|
mock_requests.get.assert_called_once_with("http://somewhere")
|