rally/tests/benchmark/context/cleanup/test_user_cleanup.py
Aswad Rangnekar 2fb4ba41d5 Split user and admin cleanup to 2 separate classes
Partially implements: blueprint benchmark-context-cleanup-refactor
Change-Id: I3ba0deeb5a2793b8c45f6160fe0eda22250a1ece
2014-08-08 18:04:19 +03:00

93 lines
3.3 KiB
Python

# Copyright 2014: Mirantis Inc.
# 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.
import mock
from rally.benchmark.context.cleanup import user_cleanup
from tests import fakes
from tests import test
BASE = "rally.benchmark.context.cleanup.user_cleanup"
class UserCleanupTestCase(test.TestCase):
def test_with_statement_no_user(self):
context = {
"task": mock.MagicMock(),
"admin": mock.MagicMock(),
"users": [],
"tenants": [],
}
user_cleaner = user_cleanup.UserCleanup(context)
with user_cleaner:
user_cleaner.setup()
def test_with_statement(self):
fake_user_ctx = fakes.FakeUserContext({}).context
fake_user_ctx["config"] = {"cleanup": ["nova"]}
user_cleaner = user_cleanup.UserCleanup(fake_user_ctx)
user_cleaner.setup()
user_cleaner._cleanup_resources = mock.MagicMock()
with user_cleaner as cleaner:
self.assertEqual(user_cleaner, cleaner)
user_cleaner._cleanup_resources.assert_called_once_with()
@mock.patch("%s.osclients.Clients" % BASE)
@mock.patch("%s.utils.delete_nova_resources" % BASE)
@mock.patch("%s.utils.delete_glance_resources" % BASE)
@mock.patch("%s.utils.delete_cinder_resources" % BASE)
@mock.patch("%s.utils.delete_neutron_resources" % BASE)
def test_cleaner_resources(self, mock_del_neutron, mock_del_cinder,
mock_del_glance, mock_del_nova, mock_clients):
context = {
"task": mock.MagicMock(),
"users": [{"endpoint": mock.MagicMock()},
{"endpoint": mock.MagicMock()}],
"config": {"cleanup": ["cinder", "nova", "glance", "neutron"]},
"tenants": [mock.MagicMock()]
}
user_cleaner = user_cleanup.UserCleanup(context)
with user_cleaner:
user_cleaner.setup()
expected = [mock.call(context["users"][0]["endpoint"]),
mock.call(context["users"][1]["endpoint"])]
mock_clients.assert_has_calls(expected, any_order=True)
self.assertEqual(mock_del_nova.call_count, 2)
self.assertEqual(mock_del_glance.call_count, 2)
self.assertEqual(mock_del_cinder.call_count, 2)
self.assertEqual(mock_del_neutron.call_count, 2)
@mock.patch("%s.UserCleanup._cleanup_resources" % BASE)
def test_cleaner_default_behavior(self, mock_cleanup):
context = {
"task": mock.MagicMock(),
"users": [{"endpoint": mock.MagicMock()},
{"endpoint": mock.MagicMock()}],
}
user_cleaner = user_cleanup.UserCleanup(context)
with user_cleaner:
user_cleaner.setup()
self.assertEqual(mock_cleanup.call_count, 0)