Moving of Ceilometer Eventss scenarios into separate classes

This patch moving methods from one CeilometerEventss base class into
several independed classes (by one on each method) with keeping of
original names of scenarios. Also this patch contains updated unit
tests for CeilometerEvents scenarios

Change-Id: Ib99bdf7f1ea84ffa01617a7dfe623518bc133bd3
This commit is contained in:
Anton Staroverov
2016-08-12 13:57:44 +03:00
committed by Staroverov Anton
parent b7af1ceb30
commit 76f370dd68
2 changed files with 42 additions and 30 deletions

View File

@@ -19,19 +19,20 @@ from rally.plugins.openstack.scenarios.keystone import utils as kutils
from rally.task import validation
class CeilometerEvents(cutils.CeilometerScenario, kutils.KeystoneScenario):
# NOTE(idegtiarov): to work with event we need to create it, there are
# no other way except emit suitable notification from one of services,
# for example create new user in keystone.
@validation.required_services(consts.Service.CEILOMETER,
consts.Service.KEYSTONE)
@validation.required_openstack(admin=True)
@scenario.configure(context={"admin_cleanup": ["keystone"],
"cleanup": ["ceilometer"]},
name="CeilometerEvents.create_user_and_list_events")
class CeilometerEventsCreateUserAndListEvents(cutils.CeilometerScenario,
kutils.KeystoneScenario):
"""Benchmark scenarios for Ceilometer Events API."""
# NOTE(idegtiarov): to work with event we need to create it, there are
# no other way except emit suitable notification from one of services,
# for example create new user in keystone.
@validation.required_services(consts.Service.CEILOMETER,
consts.Service.KEYSTONE)
@validation.required_openstack(admin=True)
@scenario.configure(context={"admin_cleanup": ["keystone"],
"cleanup": ["ceilometer"]})
def create_user_and_list_events(self):
def run(self):
"""Create user and fetch all events.
This scenario creates user to store new event and
@@ -40,12 +41,17 @@ class CeilometerEvents(cutils.CeilometerScenario, kutils.KeystoneScenario):
self._user_create()
self._list_events()
@validation.required_services(consts.Service.CEILOMETER,
consts.Service.KEYSTONE)
@validation.required_openstack(admin=True)
@scenario.configure(context={"admin_cleanup": ["keystone"],
"cleanup": ["ceilometer"]})
def create_user_and_list_event_types(self):
@validation.required_services(consts.Service.CEILOMETER,
consts.Service.KEYSTONE)
@validation.required_openstack(admin=True)
@scenario.configure(context={"admin_cleanup": ["keystone"],
"cleanup": ["ceilometer"]},
name="CeilometerEvents.create_user_and_list_event_types")
class CeilometerEventsCreateUserAndListEventTypes(cutils.CeilometerScenario,
kutils.KeystoneScenario):
"""Benchmark scenarios for Ceilometer Events API."""
def run(self):
"""Create user and fetch all event types.
This scenario creates user to store new event and
@@ -54,12 +60,17 @@ class CeilometerEvents(cutils.CeilometerScenario, kutils.KeystoneScenario):
self._user_create()
self._list_event_types()
@validation.required_services(consts.Service.CEILOMETER,
consts.Service.KEYSTONE)
@validation.required_openstack(admin=True)
@scenario.configure(context={"admin_cleanup": ["keystone"],
"cleanup": ["ceilometer"]})
def create_user_and_get_event(self):
@validation.required_services(consts.Service.CEILOMETER,
consts.Service.KEYSTONE)
@validation.required_openstack(admin=True)
@scenario.configure(context={"admin_cleanup": ["keystone"],
"cleanup": ["ceilometer"]},
name="CeilometerEvents.create_user_and_get_event")
class CeilometerEventsCreateUserAndGetEvent(cutils.CeilometerScenario,
kutils.KeystoneScenario):
"""Benchmark scenarios for Ceilometer Events API."""
def run(self):
"""Create user and gets event.
This scenario creates user to store new event and

View File

@@ -21,31 +21,32 @@ from tests.unit import test
class CeilometerEventsTestCase(test.ScenarioTestCase):
def test_list_events(self):
scenario = events.CeilometerEvents(self.context)
scenario = events.CeilometerEventsCreateUserAndListEvents(self.context)
scenario._user_create = mock.MagicMock()
scenario._list_events = mock.MagicMock()
scenario.create_user_and_list_events()
scenario.run()
scenario._user_create.assert_called_once_with()
scenario._list_events.assert_called_once_with()
def test_list_event_types(self):
scenario = events.CeilometerEvents(self.context)
scenario = events.CeilometerEventsCreateUserAndListEventTypes(
self.context)
scenario._list_event_types = mock.MagicMock()
scenario._user_create = mock.MagicMock()
scenario.create_user_and_list_event_types()
scenario.run()
scenario._user_create.assert_called_once_with()
scenario._list_event_types.assert_called_once_with()
def test_get_event(self):
scenario = events.CeilometerEvents(self.context)
scenario = events.CeilometerEventsCreateUserAndGetEvent(self.context)
scenario._user_create = mock.MagicMock()
scenario._list_events = mock.MagicMock()
scenario._get_event = mock.MagicMock()
scenario._list_events.return_value = [mock.Mock(message_id="fake_id")]
scenario.create_user_and_get_event()
scenario.run()
scenario._user_create.assert_called_once_with()
scenario._list_events.assert_called_with()
scenario._get_event.assert_called_with(event_id="fake_id")