Update specs to 2013.2.3 version
[openstack-build/ceilometer-build.git] / debian / patches / skip-database-tests.patch
index 4d479a8e88668c24fe78dfcc31376020d3682d29..b0183787328c86e43d90c9aa26c937428bbce813 100644 (file)
@@ -1,6 +1,31 @@
-diff -Naurp ceilometer-2013.2.rc1.orig/ceilometer/tests/db.py ceilometer-2013.2.rc1/ceilometer/tests/db.py
---- ceilometer-2013.2.rc1.orig/ceilometer/tests/db.py  2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/ceilometer/tests/db.py       2013-10-02 18:00:51.237793017 -0400
+From baf40de9892278d59069d380b254c379d4f66504 Mon Sep 17 00:00:00 2001
+From: Dmitry Burmistrov <dburmistrov@mirantis.com>
+Date: Thu, 15 May 2014 22:24:43 +0400
+Subject: [PATCH] skip-database-tests
+
+---
+ ceilometer/tests/db.py                             |   11 +-
+ tests/agentbase.py                                 |   10 +-
+ tests/alarm/test_notifier.py                       |   39 +++-
+ .../test_compute_duration_by_resource_scenarios.py |    5 +-
+ tests/api/v2/test_app.py                           |   16 +-
+ tests/api/v2/test_app.py.orig                      |  220 ++++++++++++++++++++
+ tests/api/v2/test_statistics_scenarios.py          |   10 +-
+ tests/collector/dispatcher/test_db.py              |    5 +-
+ tests/collector/test_service.py                    |   24 ++-
+ tests/compute/pollsters/test_location_metadata.py  |    5 +-
+ tests/compute/test_manager.py                      |   10 +-
+ tests/storage/test_get_engine.py                   |    5 +-
+ tests/test_bin.py                                  |   38 ++--
+ tests/test_notifier.py                             |    5 +-
+ tests/test_service.py                              |   19 +-
+ 15 files changed, 362 insertions(+), 60 deletions(-)
+ create mode 100644 tests/api/v2/test_app.py.orig
+
+diff --git a/ceilometer/tests/db.py b/ceilometer/tests/db.py
+index 6a767cf..58f2539 100644
+--- a/ceilometer/tests/db.py
++++ b/ceilometer/tests/db.py
 @@ -41,8 +41,8 @@ class TestBase(test_base.TestCase):
                  message='.*you must provide a username and password.*')
              try:
@@ -23,7 +48,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/ceilometer/tests/db.py ceilometer-2013.2.
  
      def __str__(self):
          return '%(url)s_%(db)s' % dict(url=self.url, db=uuid.uuid4().hex)
-@@ -83,7 +81,4 @@ class MixinTestsWithBackendScenarios(obj
+@@ -83,7 +81,4 @@ class MixinTestsWithBackendScenarios(object):
  
      scenarios = [
          ('sqlalchemy', dict(database_connection='sqlite://')),
@@ -31,10 +56,11 @@ diff -Naurp ceilometer-2013.2.rc1.orig/ceilometer/tests/db.py ceilometer-2013.2.
 -        ('hbase', dict(database_connection='hbase://__test__')),
 -        ('db2', dict(database_connection=DB2FakeConnectionUrl())),
      ]
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/agentbase.py ceilometer-2013.2.rc1/tests/agentbase.py
---- ceilometer-2013.2.rc1.orig/tests/agentbase.py      2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/agentbase.py   2013-10-02 18:00:51.237793017 -0400
-@@ -175,7 +175,10 @@ class BaseAgentManagerTestCase(base.Test
+diff --git a/tests/agentbase.py b/tests/agentbase.py
+index 383b8e7..23d6f65 100644
+--- a/tests/agentbase.py
++++ b/tests/agentbase.py
+@@ -175,7 +175,10 @@ class BaseAgentManagerTestCase(base.TestCase):
          self.assertEqual(len(polling_tasks), 1)
          self.assertTrue(60 in polling_tasks.keys())
          self.mgr.interval_task(polling_tasks.values()[0])
@@ -46,7 +72,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/agentbase.py ceilometer-2013.2.rc1/
          self.assertEqual(pub.samples[0], self.Pollster.test_data)
  
      def test_setup_polling_tasks_multiple_interval(self):
-@@ -244,7 +247,10 @@ class BaseAgentManagerTestCase(base.Test
+@@ -244,7 +247,10 @@ class BaseAgentManagerTestCase(base.TestCase):
          self.assertEqual(len(polling_tasks.keys()), 1)
          polling_tasks.get(10)
          self.mgr.interval_task(polling_tasks.get(10))
@@ -58,9 +84,10 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/agentbase.py ceilometer-2013.2.rc1/
          self.assertEqual(len(pub.samples), 0)
  
      def test_agent_manager_initialize_service_hook(self):
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/alarm/test_notifier.py ceilometer-2013.2.rc1/tests/alarm/test_notifier.py
---- ceilometer-2013.2.rc1.orig/tests/alarm/test_notifier.py    2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/alarm/test_notifier.py 2013-10-02 18:00:51.237793017 -0400
+diff --git a/tests/alarm/test_notifier.py b/tests/alarm/test_notifier.py
+index 3d71b75..46ea1aa 100644
+--- a/tests/alarm/test_notifier.py
++++ b/tests/alarm/test_notifier.py
 @@ -58,7 +58,10 @@ class TestAlarmNotifier(base.TestCase):
              'reason': 'Everything is on fire',
          }
@@ -149,10 +176,11 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/alarm/test_notifier.py ceilometer-2
  
          with mock.patch('eventlet.spawn_n', self._fake_spawn_n):
              with mock.patch.object(requests, 'post') as poster:
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v1/test_compute_duration_by_resource_scenarios.py ceilometer-2013.2.rc1/tests/api/v1/test_compute_duration_by_resource_scenarios.py
---- ceilometer-2013.2.rc1.orig/tests/api/v1/test_compute_duration_by_resource_scenarios.py     2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/api/v1/test_compute_duration_by_resource_scenarios.py  2013-10-02 18:00:51.237793017 -0400
-@@ -85,7 +85,10 @@ class TestComputeDurationByResource(test
+diff --git a/tests/api/v1/test_compute_duration_by_resource_scenarios.py b/tests/api/v1/test_compute_duration_by_resource_scenarios.py
+index 775b890..5a2d26a 100644
+--- a/tests/api/v1/test_compute_duration_by_resource_scenarios.py
++++ b/tests/api/v1/test_compute_duration_by_resource_scenarios.py
+@@ -85,7 +85,10 @@ class TestComputeDurationByResource(tests_api.TestBase,
          assert data['duration'] is None
  
      def _assert_times_match(self, actual, expected):
@@ -164,39 +192,271 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v1/test_compute_duration_by_res
          assert actual == expected
  
      def test_overlap_range_start(self):
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v2/test_app.py ceilometer-2013.2.rc1/tests/api/v2/test_app.py
---- ceilometer-2013.2.rc1.orig/tests/api/v2/test_app.py        2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/api/v2/test_app.py     2013-10-02 18:06:51.001801595 -0400
-@@ -46,7 +46,11 @@ class TestApp(base.TestCase):
+diff --git a/tests/api/v2/test_app.py b/tests/api/v2/test_app.py
+index a7c930c..c9f8329 100644
+--- a/tests/api/v2/test_app.py
++++ b/tests/api/v2/test_app.py
+@@ -49,8 +49,12 @@ class TestApp(base.TestCase):
          cfg.CONF.set_override('connection', "log://", group="database")
          cfg.CONF.set_override("auth_uri", None, group=acl.OPT_GROUP_NAME)
  
 -        api_app = app.setup_app()
+-        self.assertTrue(api_app.auth_uri.startswith('file'))
 +        try:
 +            api_app = app.setup_app()
 +        except:
 +            self.skipTest('Skipped by Ubuntu')
 +
-         self.assertTrue(api_app.auth_uri.startswith('foottp'))
++        self.assertTrue(api_app.auth_uri.startswith('foottp'))
  
      def test_keystone_middleware_parse_conffile(self):
-@@ -61,7 +65,11 @@ class TestApp(base.TestCase):
+         tmpfile = self.temp_config_file_path()
+@@ -64,8 +68,12 @@ class TestApp(base.TestCase):
          service.prepare_service(['ceilometer-api',
                                   '--config-file=%s' % tmpfile])
          cfg.CONF.set_override('connection', "log://", group="database")
 -        api_app = app.setup_app()
+-        self.assertTrue(api_app.auth_uri.startswith('file'))
 +        try:
 +            api_app = app.setup_app()
 +        except:
 +            self.skipTest6('Skipped by Ubuntu')
 +
-         self.assertTrue(api_app.auth_uri.startswith('barttp'))
++        self.assertTrue(api_app.auth_uri.startswith('barttp'))
          os.unlink(tmpfile)
  
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v2/test_statistics_scenarios.py ceilometer-2013.2.rc1/tests/api/v2/test_statistics_scenarios.py
---- ceilometer-2013.2.rc1.orig/tests/api/v2/test_statistics_scenarios.py       2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/api/v2/test_statistics_scenarios.py    2013-10-02 18:00:51.241793017 -0400
-@@ -1234,15 +1234,17 @@ class TestGroupBySource(base.FunctionalT
+diff --git a/tests/api/v2/test_app.py.orig b/tests/api/v2/test_app.py.orig
+new file mode 100644
+index 0000000..e2b4a78
+--- /dev/null
++++ b/tests/api/v2/test_app.py.orig
+@@ -0,0 +1,220 @@
++# -*- encoding: utf-8 -*-
++#
++# Copyright 2013 IBM Corp.
++# Copyright © 2013 Julien Danjou
++#
++# Author: Julien Danjou <julien@danjou.info>
++#
++# 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.
++"""Test basic ceilometer-api app
++"""
++import json
++import mock
++import os
++
++from oslo.config import cfg
++import wsme
++
++from ceilometer.api import app
++from ceilometer.api import acl
++from ceilometer import service
++from ceilometer.openstack.common import gettextutils
++from ceilometer.tests import base
++from ceilometer.tests import db as tests_db
++from .base import FunctionalTest
++
++
++class TestApp(base.TestCase):
++
++    def tearDown(self):
++        super(TestApp, self).tearDown()
++        cfg.CONF.reset()
++
++    def test_keystone_middleware_conf(self):
++        cfg.CONF.set_override("auth_protocol", "foottp",
++                              group=acl.OPT_GROUP_NAME)
++        cfg.CONF.set_override("auth_version", "v2.0", group=acl.OPT_GROUP_NAME)
++        cfg.CONF.set_override("pipeline_cfg_file",
++                              self.path_get("etc/ceilometer/pipeline.yaml"))
++        cfg.CONF.set_override('connection', "log://", group="database")
++        cfg.CONF.set_override("auth_uri", None, group=acl.OPT_GROUP_NAME)
++
++        api_app = app.setup_app()
++        self.assertTrue(api_app.auth_uri.startswith('foottp'))
++
++    def test_keystone_middleware_parse_conffile(self):
++        tmpfile = self.temp_config_file_path()
++        with open(tmpfile, "w") as f:
++            f.write("[DEFAULT]\n")
++            f.write("pipeline_cfg_file = %s\n" %
++                    self.path_get("etc/ceilometer/pipeline.yaml"))
++            f.write("[%s]\n" % acl.OPT_GROUP_NAME)
++            f.write("auth_protocol = barttp\n")
++            f.write("auth_version = v2.0\n")
++        service.prepare_service(['ceilometer-api',
++                                 '--config-file=%s' % tmpfile])
++        cfg.CONF.set_override('connection', "log://", group="database")
++        api_app = app.setup_app()
++        self.assertTrue(api_app.auth_uri.startswith('barttp'))
++        os.unlink(tmpfile)
++
++
++class TestPecanApp(FunctionalTest):
++    database_connection = tests_db.MongoDBFakeConnectionUrl()
++
++    def test_pecan_extension_guessing_unset(self):
++        # check Pecan does not assume .jpg is an extension
++        response = self.app.get(self.PATH_PREFIX + '/meters/meter.jpg')
++        self.assertEqual(response.content_type, 'application/json')
++
++
++class TestApiMiddleware(FunctionalTest):
++
++    # This doesn't really matter
++    database_connection = tests_db.MongoDBFakeConnectionUrl()
++
++    no_lang_translated_error = 'No lang translated error'
++    en_US_translated_error = 'en-US translated error'
++
++    def _fake_get_localized_message(self, message, user_locale):
++        if user_locale is None:
++            return self.no_lang_translated_error
++        else:
++            return self.en_US_translated_error
++
++    def test_json_parsable_error_middleware_404(self):
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True,
++                                 headers={"Accept":
++                                          "application/json"}
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/json")
++        self.assertTrue(response.json['error_message'])
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True,
++                                 headers={"Accept":
++                                          "application/json,application/xml"}
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/json")
++        self.assertTrue(response.json['error_message'])
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True,
++                                 headers={"Accept":
++                                          "application/xml;q=0.8, \
++                                          application/json"}
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/json")
++        self.assertTrue(response.json['error_message'])
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/json")
++        self.assertTrue(response.json['error_message'])
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True,
++                                 headers={"Accept":
++                                          "text/html,*/*"}
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/json")
++        self.assertTrue(response.json['error_message'])
++
++    def test_json_parsable_error_middleware_translation_400(self):
++        # Ensure translated messages get placed properly into json faults
++        self.stubs.Set(gettextutils, 'get_localized_message',
++                       self._fake_get_localized_message)
++        response = self.post_json('/alarms', params={},
++                                  expect_errors=True,
++                                  headers={"Accept":
++                                           "application/json"}
++                                  )
++        self.assertEqual(response.status_int, 400)
++        self.assertEqual(response.content_type, "application/json")
++        self.assertTrue(response.json['error_message'])
++        self.assertEqual(response.json['error_message']['faultstring'],
++                         self.no_lang_translated_error)
++
++    def test_xml_parsable_error_middleware_404(self):
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True,
++                                 headers={"Accept":
++                                          "application/xml,*/*"}
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/xml")
++        self.assertEqual(response.xml.tag, 'error_message')
++        response = self.get_json('/invalid_path',
++                                 expect_errors=True,
++                                 headers={"Accept":
++                                          "application/json;q=0.8 \
++                                          ,application/xml"}
++                                 )
++        self.assertEqual(response.status_int, 404)
++        self.assertEqual(response.content_type, "application/xml")
++        self.assertEqual(response.xml.tag, 'error_message')
++
++    def test_xml_parsable_error_middleware_translation_400(self):
++        # Ensure translated messages get placed properly into xml faults
++        self.stubs.Set(gettextutils, 'get_localized_message',
++                       self._fake_get_localized_message)
++
++        response = self.post_json('/alarms', params={},
++                                  expect_errors=True,
++                                  headers={"Accept":
++                                           "application/xml,*/*"}
++                                  )
++        self.assertEqual(response.status_int, 400)
++        self.assertEqual(response.content_type, "application/xml")
++        self.assertEqual(response.xml.tag, 'error_message')
++        fault = response.xml.findall('./error/faultstring')
++        for fault_string in fault:
++            self.assertEqual(fault_string.text, self.no_lang_translated_error)
++
++    def test_best_match_language(self):
++        # Ensure that we are actually invoking language negotiation
++        self.stubs.Set(gettextutils, 'get_localized_message',
++                       self._fake_get_localized_message)
++
++        response = self.post_json('/alarms', params={},
++                                  expect_errors=True,
++                                  headers={"Accept":
++                                           "application/xml,*/*",
++                                           "Accept-Language":
++                                           "en-US"}
++                                  )
++        self.assertEqual(response.status_int, 400)
++        self.assertEqual(response.content_type, "application/xml")
++        self.assertEqual(response.xml.tag, 'error_message')
++        fault = response.xml.findall('./error/faultstring')
++        for fault_string in fault:
++            self.assertEqual(fault_string.text, self.en_US_translated_error)
++
++    def test_translated_then_untranslated_error(self):
++        resp = self.get_json('/alarms/alarm-id-3', expect_errors=True)
++        self.assertEqual(resp.status_code, 404)
++        self.assertEqual(json.loads(resp.body)['error_message']
++                         ['faultstring'], "Alarm alarm-id-3 Not Found")
++
++        cls = 'ceilometer.api.controllers.v2.EntityNotFound'
++        with mock.patch(cls) as CustomErrorClass:
++            CustomErrorClass.return_value = wsme.exc.ClientSideError(
++                "untranslated_error")
++            resp = self.get_json('/alarms/alarm-id-5', expect_errors=True)
++
++        self.assertEqual(resp.status_code, 400)
++        self.assertEqual(json.loads(resp.body)['error_message']
++                         ['faultstring'], "untranslated_error")
+diff --git a/tests/api/v2/test_statistics_scenarios.py b/tests/api/v2/test_statistics_scenarios.py
+index 38da05f..aeb93bc 100644
+--- a/tests/api/v2/test_statistics_scenarios.py
++++ b/tests/api/v2/test_statistics_scenarios.py
+@@ -1234,15 +1234,17 @@ class TestGroupBySource(base.FunctionalTest,
      # tests.
  
      scenarios = [
@@ -218,10 +478,11 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v2/test_statistics_scenarios.py
          super(TestGroupBySource, self).setUp()
  
          test_sample_data = (
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/dispatcher/test_db.py ceilometer-2013.2.rc1/tests/collector/dispatcher/test_db.py
---- ceilometer-2013.2.rc1.orig/tests/collector/dispatcher/test_db.py   2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/collector/dispatcher/test_db.py        2013-10-02 18:00:51.241793017 -0400
-@@ -30,7 +30,10 @@ class TestDispatcherDB(tests_base.TestCa
+diff --git a/tests/collector/dispatcher/test_db.py b/tests/collector/dispatcher/test_db.py
+index a538a5d..7ca68ed 100644
+--- a/tests/collector/dispatcher/test_db.py
++++ b/tests/collector/dispatcher/test_db.py
+@@ -30,7 +30,10 @@ class TestDispatcherDB(tests_base.TestCase):
  
      def setUp(self):
          super(TestDispatcherDB, self).setUp()
@@ -233,10 +494,11 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/dispatcher/test_db.py cei
          self.ctx = None
  
      def test_valid_message(self):
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/test_service.py ceilometer-2013.2.rc1/tests/collector/test_service.py
---- ceilometer-2013.2.rc1.orig/tests/collector/test_service.py 2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/collector/test_service.py      2013-10-02 18:00:51.241793017 -0400
-@@ -114,7 +114,10 @@ class TestUDPCollectorService(TestCollec
+diff --git a/tests/collector/test_service.py b/tests/collector/test_service.py
+index b94d13b..e292e8e 100644
+--- a/tests/collector/test_service.py
++++ b/tests/collector/test_service.py
+@@ -114,7 +114,10 @@ class TestUDPCollectorService(TestCollector):
  
      def setUp(self):
          super(TestUDPCollectorService, self).setUp()
@@ -248,7 +510,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/test_service.py ceilomete
          self.counter = sample.Sample(
              name='foobar',
              type='bad',
-@@ -189,7 +192,10 @@ class TestCollectorService(TestCollector
+@@ -189,7 +192,10 @@ class TestCollectorService(TestCollector):
  
      def setUp(self):
          super(TestCollectorService, self).setUp()
@@ -260,7 +522,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/test_service.py ceilomete
          self.ctx = None
  
      @patch('ceilometer.pipeline.setup_pipeline', MagicMock())
-@@ -197,8 +203,11 @@ class TestCollectorService(TestCollector
+@@ -197,8 +203,11 @@ class TestCollectorService(TestCollector):
          # If we try to create a real RPC connection, init_host() never
          # returns. Mock it out so we can establish the service
          # configuration.
@@ -274,7 +536,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/test_service.py ceilomete
  
      @patch('ceilometer.pipeline.setup_pipeline', MagicMock())
      def test_process_notification(self):
-@@ -206,8 +215,11 @@ class TestCollectorService(TestCollector
+@@ -206,8 +215,11 @@ class TestCollectorService(TestCollector):
          # returns. Mock it out so we can establish the service
          # configuration.
          cfg.CONF.set_override("store_events", False, group="collector")
@@ -288,10 +550,11 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/test_service.py ceilomete
          self.srv.pipeline_manager.pipelines[0] = MagicMock()
          self.srv.notification_manager = test_manager.TestExtensionManager(
              [extension.Extension('test',
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/pollsters/test_location_metadata.py ceilometer-2013.2.rc1/tests/compute/pollsters/test_location_metadata.py
---- ceilometer-2013.2.rc1.orig/tests/compute/pollsters/test_location_metadata.py       2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/compute/pollsters/test_location_metadata.py    2013-10-02 18:00:51.241793017 -0400
-@@ -47,7 +47,10 @@ class TestLocationMetadata(test_base.Tes
+diff --git a/tests/compute/pollsters/test_location_metadata.py b/tests/compute/pollsters/test_location_metadata.py
+index a14ddfc..60619b5 100644
+--- a/tests/compute/pollsters/test_location_metadata.py
++++ b/tests/compute/pollsters/test_location_metadata.py
+@@ -47,7 +47,10 @@ class TestLocationMetadata(test_base.TestCase):
  
      @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock())
      def setUp(self):
@@ -303,9 +566,10 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/pollsters/test_location_met
          super(TestLocationMetadata, self).setUp()
  
          # Mimics an instance returned from nova api call
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/test_manager.py ceilometer-2013.2.rc1/tests/compute/test_manager.py
---- ceilometer-2013.2.rc1.orig/tests/compute/test_manager.py   2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/compute/test_manager.py        2013-10-02 18:00:51.241793017 -0400
+diff --git a/tests/compute/test_manager.py b/tests/compute/test_manager.py
+index b3f3b3d..8e28a50 100644
+--- a/tests/compute/test_manager.py
++++ b/tests/compute/test_manager.py
 @@ -29,7 +29,10 @@ class TestManager(base.TestCase):
  
      @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock())
@@ -318,7 +582,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/test_manager.py ceilometer-
          self.assertIsNotNone(list(mgr.pollster_manager))
  
  
-@@ -45,7 +48,10 @@ class TestRunTasks(agentbase.BaseAgentMa
+@@ -45,7 +48,10 @@ class TestRunTasks(agentbase.BaseAgentManagerTestCase):
          raise Exception
  
      def setup_manager(self):
@@ -330,9 +594,10 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/test_manager.py ceilometer-
  
      @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock())
      def setUp(self):
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/storage/test_get_engine.py ceilometer-2013.2.rc1/tests/storage/test_get_engine.py
---- ceilometer-2013.2.rc1.orig/tests/storage/test_get_engine.py        2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/storage/test_get_engine.py     2013-10-02 18:00:51.241793017 -0400
+diff --git a/tests/storage/test_get_engine.py b/tests/storage/test_get_engine.py
+index 498b6f4..4824461 100644
+--- a/tests/storage/test_get_engine.py
++++ b/tests/storage/test_get_engine.py
 @@ -31,7 +31,10 @@ class EngineTest(testtools.TestCase):
          conf = mox.Mox().CreateMockAnything()
          conf.database = mox.Mox().CreateMockAnything()
@@ -345,9 +610,10 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/storage/test_get_engine.py ceilomet
          self.assertIsInstance(engine, impl_log.LogStorage)
  
      def test_get_engine_no_such_engine(self):
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_bin.py ceilometer-2013.2.rc1/tests/test_bin.py
---- ceilometer-2013.2.rc1.orig/tests/test_bin.py       2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/test_bin.py    2013-10-02 18:00:51.241793017 -0400
+diff --git a/tests/test_bin.py b/tests/test_bin.py
+index a358b57..bc2cd2a 100644
+--- a/tests/test_bin.py
++++ b/tests/test_bin.py
 @@ -36,14 +36,20 @@ class BinTestCase(base.TestCase):
              tmp.write("connection=log://localhost\n")
  
@@ -375,7 +641,7 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_bin.py ceilometer-2013.2.rc1/t
  
  
  class BinSendCounterTestCase(base.TestCase):
-@@ -59,11 +65,14 @@ class BinSendCounterTestCase(base.TestCa
+@@ -59,11 +65,14 @@ class BinSendCounterTestCase(base.TestCase):
                  "pipeline_cfg_file=%s\n" % pipeline_cfg_file)
  
      def test_send_counter_run(self):
@@ -409,9 +675,10 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_bin.py ceilometer-2013.2.rc1/t
  
      def tearDown(self):
          super(BinApiTestCase, self).tearDown()
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_notifier.py ceilometer-2013.2.rc1/tests/test_notifier.py
---- ceilometer-2013.2.rc1.orig/tests/test_notifier.py  2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/test_notifier.py       2013-10-02 18:00:51.241793017 -0400
+diff --git a/tests/test_notifier.py b/tests/test_notifier.py
+index 814dca1..9a659fb 100644
+--- a/tests/test_notifier.py
++++ b/tests/test_notifier.py
 @@ -80,7 +80,10 @@ class TestNotifier(tests_base.TestCase):
              }],
              transformer_manager)
@@ -424,9 +691,10 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_notifier.py ceilometer-2013.2.
          self.assertEqual(len(pub.samples), 0)
          notifier.notify(None, MESSAGE)
          self.assertTrue(len(pub.samples) > 0)
-diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_service.py ceilometer-2013.2.rc1/tests/test_service.py
---- ceilometer-2013.2.rc1.orig/tests/test_service.py   2013-10-02 15:17:37.000000000 -0400
-+++ ceilometer-2013.2.rc1/tests/test_service.py        2013-10-02 18:00:51.241793017 -0400
+diff --git a/tests/test_service.py b/tests/test_service.py
+index 5245c3d..f757dd1 100644
+--- a/tests/test_service.py
++++ b/tests/test_service.py
 @@ -98,8 +98,8 @@ class ServiceRestartTest(base.TestCase):
  
      def tearDown(self):
@@ -466,3 +734,6 @@ diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_service.py ceilometer-2013.2.r
 +            self._service_restart('ceilometer-agent-central')
 +        except:
 +            self.skipTest('Skipped by Ubuntu')
+-- 
+1.7.9.5
+