summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdwin Zhai <edwin.zhai@intel.com>2015-01-14 11:10:11 +0800
committerLianhao Lu <lianhao.lu@intel.com>2015-01-15 16:47:43 +0800
commit33e7fd8c62a3a5b9107410461edb9a87d09f549e (patch)
tree29c0061bb72f392443f0f6acdca8011ea086784e
parentb275dae9729a165e8a10060940efad41057e53d9 (diff)
downloadceilometer-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.py14
-rw-r--r--ceilometer/tests/ipmi/pollsters/base.py7
-rw-r--r--ceilometer/tests/ipmi/test_manager.py8
-rw-r--r--ceilometer/tests/test_bin.py2
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):