diff options
author | Edwin Zhai <edwin.zhai@intel.com> | 2015-01-14 11:10:11 +0800 |
---|---|---|
committer | Lianhao Lu <lianhao.lu@intel.com> | 2015-01-15 16:47:43 +0800 |
commit | 33e7fd8c62a3a5b9107410461edb9a87d09f549e (patch) | |
tree | 29c0061bb72f392443f0f6acdca8011ea086784e | |
parent | b275dae9729a165e8a10060940efad41057e53d9 (diff) | |
download | ceilometer-33e7fd8c62a3a5b9107410461edb9a87d09f549e.tar.gz |
Combined fixes for ipmitool, timeutils, and read from stderr
This is a combination of 3 changes meant to fix various gate issues.
Co-Authored-By: lianhao-lu <lianhao.lu@intel.com>
The first one is:
IPMI unit tests call ipmitool accidently, and sudo requirements cause tox
failure. Mock the executing engine completely to fix it.
Change-Id: Ifa2f13b324f1e244cc0982bf850de928e37ecca5
Closes-bug:1410411
(cherry picked from commit 9307f9703191f527fbcb9bdae22c59d8911c407d)
The second one is:
the event api tests incorrectly reference a private attribute
from oslo_utils. this is not required and should not be done in
general. this patch changes this.
Change-Id: I03610078123edbe8ef89e8ea271d9c72ed4ba696
Closes-Bug: #1408737
(cherry picked from commit 160513ddb680ffb66758fb003c58a75b41a89785)
The third one is committed here directly as it is only relevant to
stable/juno:
Increase the amount of stderr read from 1024 to 2048 in test_bin.py
These test currently asserts a specific message is contained in the first
1024 bytes of the stderr message. oslo_utils now spits a bunch of deprecation
messages that fill this quickly and the message being asserted on is cut off.
This bumps the read() from 1024 to 2048 to account for deprecation spam.
Change-Id: I03610078123edbe8ef89e8ea271d9c72ed4ba696
(cherry picked from commit 3197c9be0731522a9bb1a47eafa10218893dbe13)
-rw-r--r-- | ceilometer/tests/api/v2/test_event_scenarios.py | 14 | ||||
-rw-r--r-- | ceilometer/tests/ipmi/pollsters/base.py | 7 | ||||
-rw-r--r-- | ceilometer/tests/ipmi/test_manager.py | 8 | ||||
-rw-r--r-- | ceilometer/tests/test_bin.py | 2 |
4 files changed, 18 insertions, 13 deletions
diff --git a/ceilometer/tests/api/v2/test_event_scenarios.py b/ceilometer/tests/api/v2/test_event_scenarios.py index 355d7b64..d80e080e 100644 --- a/ceilometer/tests/api/v2/test_event_scenarios.py +++ b/ceilometer/tests/api/v2/test_event_scenarios.py @@ -16,7 +16,6 @@ import datetime -from oslo.utils import timeutils import webtest.app from ceilometer.storage import models @@ -36,7 +35,7 @@ class EventTestBase(v2.FunctionalTest, def _generate_models(self): event_models = [] base = 0 - self.trait_time = datetime.datetime(2013, 12, 31, 5, 0) + self.s_time = self.trait_time = datetime.datetime(2013, 12, 31, 5, 0) for event_type in ['Foo', 'Bar', 'Zoo']: trait_models = [models.Trait(name, type, value) for name, type, value in [ @@ -130,18 +129,15 @@ class TestTraitAPI(EventTestBase): class TestEventAPI(EventTestBase): PATH = '/events' - START_TRAIT_TIME = datetime.datetime(2013, 12, 31, 5, 0) def test_get_events(self): data = self.get_json(self.PATH, headers=headers) self.assertEqual(3, len(data)) # We expect to get native UTC generated time back - trait_time = self.START_TRAIT_TIME + trait_time = self.s_time for event in data: - expected_generated = timeutils.strtime( - at=timeutils.normalize_time(trait_time), - fmt=timeutils._ISO8601_TIME_FORMAT) - self.assertTrue(event['event_type'] in ['Foo', 'Bar', 'Zoo']) + expected_generated = trait_time.isoformat() + self.assertIn(event['event_type'], ['Foo', 'Bar', 'Zoo']) self.assertEqual(4, len(event['traits'])) self.assertEqual(expected_generated, event['generated']) for trait_name in ['trait_A', 'trait_B', @@ -410,4 +406,4 @@ class TestEventAPI(EventTestBase): q=[{'field': 'trait_B', 'value': '1', 'type': 'integer', - 'op': 'el'}])
\ No newline at end of file + 'op': 'el'}]) diff --git a/ceilometer/tests/ipmi/pollsters/base.py b/ceilometer/tests/ipmi/pollsters/base.py index 5b72edf0..90d11c75 100644 --- a/ceilometer/tests/ipmi/pollsters/base.py +++ b/ceilometer/tests/ipmi/pollsters/base.py @@ -44,9 +44,8 @@ class TestPollsterBase(base.BaseTestCase): nm.read_temperature_all.side_effect = self.fake_data nm.read_power_all.side_effect = self.fake_data nm.read_sensor_any.side_effect = self.fake_sensor_data - - self.mgr = manager.AgentManager() - + # We should mock the pollster first before initialize the Manager + # so that we don't trigger the sudo in pollsters' __init__(). self.useFixture(mockpatch.Patch( 'ceilometer.ipmi.platform.intel_node_manager.NodeManager', return_value=nm)) @@ -55,6 +54,8 @@ class TestPollsterBase(base.BaseTestCase): 'ceilometer.ipmi.platform.ipmi_sensor.IPMISensor', return_value=nm)) + self.mgr = manager.AgentManager() + self.pollster = self.make_pollster() def _verify_metering(self, length, expected_vol=None, node=None): diff --git a/ceilometer/tests/ipmi/test_manager.py b/ceilometer/tests/ipmi/test_manager.py index 795fb0eb..8b005ef7 100644 --- a/ceilometer/tests/ipmi/test_manager.py +++ b/ceilometer/tests/ipmi/test_manager.py @@ -26,6 +26,10 @@ from oslotest import base class TestManager(base.BaseTestCase): @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock()) + @mock.patch('ceilometer.ipmi.pollsters.node._Base.__init__', + mock.Mock(return_value=None)) + @mock.patch('ceilometer.ipmi.pollsters.sensor.SensorPollster.__init__', + mock.Mock(return_value=None)) def test_load_plugins(self): mgr = manager.AgentManager() self.assertIsNotNone(list(mgr.pollster_manager)) @@ -34,6 +38,10 @@ class TestManager(base.BaseTestCase): class TestRunTasks(agentbase.BaseAgentManagerTestCase): @staticmethod + @mock.patch('ceilometer.ipmi.pollsters.node._Base.__init__', + mock.Mock(return_value=None)) + @mock.patch('ceilometer.ipmi.pollsters.sensor.SensorPollster.__init__', + mock.Mock(return_value=None)) def create_manager(): return manager.AgentManager() diff --git a/ceilometer/tests/test_bin.py b/ceilometer/tests/test_bin.py index fe75cf6d..0eb8af37 100644 --- a/ceilometer/tests/test_bin.py +++ b/ceilometer/tests/test_bin.py @@ -120,7 +120,7 @@ class BinAlarmEvaluatorServiceTestCase(base.BaseTestCase): self.subp = subprocess.Popen(['ceilometer-alarm-evaluator', "--config-file=%s" % self.tempfile], stderr=subprocess.PIPE) - err = self.subp.stderr.read(1024) + err = self.subp.stderr.read(2048) self.assertIn("Alarm evaluator loaded: %s" % driver_class, err) def tearDown(self): |