From 6b35d2085975407d8526ad312c855fe4a9bbd9b7 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 12 Nov 2013 18:15:38 +0100 Subject: [PATCH] Replace mox with mock in tests.api.v2.test_compute tests/api/v2/test_compute_duration_by_resource_scenarios.py Change-Id: Iced06504b1ac292bc9be0397e92f68067c53f1e2 --- ..._compute_duration_by_resource_scenarios.py | 147 +++++++++--------- 1 file changed, 72 insertions(+), 75 deletions(-) diff --git a/tests/api/v2/test_compute_duration_by_resource_scenarios.py b/tests/api/v2/test_compute_duration_by_resource_scenarios.py index 01318f6b0..46f2d19f0 100644 --- a/tests/api/v2/test_compute_duration_by_resource_scenarios.py +++ b/tests/api/v2/test_compute_duration_by_resource_scenarios.py @@ -21,10 +21,10 @@ import datetime import logging +import mock import testscenarios from .base import FunctionalTest -from ceilometer.openstack.common.fixture import moxstubout from ceilometer.openstack.common import timeutils from ceilometer.storage import models from ceilometer.tests import db as tests_db @@ -39,7 +39,6 @@ class TestComputeDurationByResource(FunctionalTest, def setUp(self): super(TestComputeDurationByResource, self).setUp() - self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs # Create events relative to the range and pretend # that the intervening events exist. @@ -56,11 +55,8 @@ class TestComputeDurationByResource(FunctionalTest, self.late1 = datetime.datetime(2012, 8, 29, 9, 0) self.late2 = datetime.datetime(2012, 8, 29, 19, 0) - def _stub_interval_func(self, func): - self.stubs.Set(type(self.conn), 'get_meter_statistics', func) - - def _set_interval(self, start, end): - def get_interval(ignore_self, event_filter, period, groupby): + def _patch_get_interval(self, start, end): + def get_interval(event_filter, period, groupby): assert event_filter.start assert event_filter.end if (event_filter.start > end or event_filter.end < start): @@ -85,7 +81,8 @@ class TestComputeDurationByResource(FunctionalTest, groupby=None, ) ] - self._stub_interval_func(get_interval) + return mock.patch.object(type(self.conn), 'get_meter_statistics', + side_effect=get_interval) def _invoke_api(self): return self.get_json('/meters/instance:m1.tiny/statistics', @@ -99,8 +96,8 @@ class TestComputeDurationByResource(FunctionalTest, 'value': 10}]) def test_before_range(self): - self._set_interval(self.early1, self.early2) - data = self._invoke_api() + with self._patch_get_interval(self.early1, self.early2): + data = self._invoke_api() self.assertEqual(data, []) def _assert_times_match(self, actual, expected): @@ -110,97 +107,97 @@ class TestComputeDurationByResource(FunctionalTest, self.assertEqual(actual, expected) def test_overlap_range_start(self): - self._set_interval(self.early1, self.middle1) - data = self._invoke_api() + with self._patch_get_interval(self.early1, self.middle1): + data = self._invoke_api() self._assert_times_match(data[0]['duration_start'], self.start) self._assert_times_match(data[0]['duration_end'], self.middle1) self.assertEqual(data[0]['duration'], 8 * 60 * 60) def test_within_range(self): - self._set_interval(self.middle1, self.middle2) - data = self._invoke_api() + with self._patch_get_interval(self.middle1, self.middle2): + data = self._invoke_api() self._assert_times_match(data[0]['duration_start'], self.middle1) self._assert_times_match(data[0]['duration_end'], self.middle2) self.assertEqual(data[0]['duration'], 10 * 60 * 60) def test_within_range_zero_duration(self): - self._set_interval(self.middle1, self.middle1) - data = self._invoke_api() + with self._patch_get_interval(self.middle1, self.middle1): + data = self._invoke_api() self._assert_times_match(data[0]['duration_start'], self.middle1) self._assert_times_match(data[0]['duration_end'], self.middle1) self.assertEqual(data[0]['duration'], 0) def test_overlap_range_end(self): - self._set_interval(self.middle2, self.late1) - data = self._invoke_api() + with self._patch_get_interval(self.middle2, self.late1): + data = self._invoke_api() self._assert_times_match(data[0]['duration_start'], self.middle2) self._assert_times_match(data[0]['duration_end'], self.end) self.assertEqual(data[0]['duration'], ((6 * 60) - 1) * 60) def test_after_range(self): - self._set_interval(self.late1, self.late2) - data = self._invoke_api() + with self._patch_get_interval(self.late1, self.late2): + data = self._invoke_api() self.assertEqual(data, []) def test_without_end_timestamp(self): - def get_interval(ignore_self, event_filter, period, groupby): - return [ - models.Statistics( - unit=None, - count=0, - min=None, - max=None, - avg=None, - duration=None, - duration_start=self.late1, - duration_end=self.late2, - sum=0, - period=None, - period_start=None, - period_end=None, - groupby=None, - ) - ] - self._stub_interval_func(get_interval) - data = self.get_json('/meters/instance:m1.tiny/statistics', - q=[{'field': 'timestamp', - 'op': 'ge', - 'value': self.late1.isoformat()}, - {'field': 'resource_id', - 'value': 'resource-id'}, - {'field': 'search_offset', - 'value': 10}]) + statistics = [ + models.Statistics( + unit=None, + count=0, + min=None, + max=None, + avg=None, + duration=None, + duration_start=self.late1, + duration_end=self.late2, + sum=0, + period=None, + period_start=None, + period_end=None, + groupby=None, + ) + ] + with mock.patch.object(type(self.conn), 'get_meter_statistics', + return_value=statistics): + data = self.get_json('/meters/instance:m1.tiny/statistics', + q=[{'field': 'timestamp', + 'op': 'ge', + 'value': self.late1.isoformat()}, + {'field': 'resource_id', + 'value': 'resource-id'}, + {'field': 'search_offset', + 'value': 10}]) self._assert_times_match(data[0]['duration_start'], self.late1) self._assert_times_match(data[0]['duration_end'], self.late2) def test_without_start_timestamp(self): - def get_interval(ignore_self, event_filter, period, groupby): - return [ - models.Statistics( - unit=None, - count=0, - min=None, - max=None, - avg=None, - duration=None, - duration_start=self.early1, - duration_end=self.early2, - sum=0, - period=None, - period_start=None, - period_end=None, - groupby=None, - ) - ] - return (self.early1, self.early2) - self._stub_interval_func(get_interval) - data = self.get_json('/meters/instance:m1.tiny/statistics', - q=[{'field': 'timestamp', - 'op': 'le', - 'value': self.early2.isoformat()}, - {'field': 'resource_id', - 'value': 'resource-id'}, - {'field': 'search_offset', - 'value': 10}]) + statistics = [ + models.Statistics( + unit=None, + count=0, + min=None, + max=None, + avg=None, + duration=None, + duration_start=self.early1, + duration_end=self.early2, + sum=0, + period=None, + period_start=None, + period_end=None, + groupby=None, + ) + ] + + with mock.patch.object(type(self.conn), 'get_meter_statistics', + return_value=statistics): + data = self.get_json('/meters/instance:m1.tiny/statistics', + q=[{'field': 'timestamp', + 'op': 'le', + 'value': self.early2.isoformat()}, + {'field': 'resource_id', + 'value': 'resource-id'}, + {'field': 'search_offset', + 'value': 10}]) self._assert_times_match(data[0]['duration_start'], self.early1) self._assert_times_match(data[0]['duration_end'], self.early2)