diff --git a/ceilometer/storage/impl_test.py b/ceilometer/storage/impl_test.py index fa76b0020..c6e2d7e89 100644 --- a/ceilometer/storage/impl_test.py +++ b/ceilometer/storage/impl_test.py @@ -21,7 +21,12 @@ This driver is based on MIM, an in-memory version of MongoDB. """ import os -from ming import mim +import nose + +try: + from ming import mim +except ImportError: + mim = None from ceilometer.openstack.common import log as logging @@ -103,6 +108,22 @@ class TestConnection(impl_mongodb.Connection): # MIM will die if we have too many connections, so use a # Singleton if TestConnection._mim_instance is None: - LOG.debug('Creating a new MIM Connection object') - TestConnection._mim_instance = mim.Connection() + if mim: + LOG.debug('Creating a new MIM Connection object') + TestConnection._mim_instance = mim.Connection() + else: + raise nose.SkipTest("Ming not found") return TestConnection._mim_instance + + +def require_map_reduce(conn): + """Raises SkipTest if the connection is using mim. + """ + # NOTE(dhellmann): mim requires spidermonkey to implement the + # map-reduce functions, so if we can't import it then just + # skip these tests unless we aren't using mim. + try: + import spidermonkey + except BaseException: + if isinstance(conn.conn, mim.Connection): + raise skip.SkipTest('requires spidermonkey') diff --git a/ceilometer/tests/db.py b/ceilometer/tests/db.py index 6e4df8e25..df1f13968 100644 --- a/ceilometer/tests/db.py +++ b/ceilometer/tests/db.py @@ -20,7 +20,6 @@ """Base classes for API tests.""" -from ming import mim from nose.plugins import skip from oslo.config import cfg @@ -43,16 +42,3 @@ class TestBase(test_base.TestCase): self.conn = storage.get_connection(cfg.CONF) self.conn.upgrade() self.conn.clear() - - -def require_map_reduce(conn): - """Raises SkipTest if the connection is using mim. - """ - # NOTE(dhellmann): mim requires spidermonkey to implement the - # map-reduce functions, so if we can't import it then just - # skip these tests unless we aren't using mim. - try: - import spidermonkey - except BaseException: - if isinstance(conn.conn, mim.Connection): - raise skip.SkipTest('requires spidermonkey') diff --git a/tests/api/v1/max_project_volume.py b/tests/api/v1/max_project_volume.py index bfccc3b92..121513ff0 100644 --- a/tests/api/v1/max_project_volume.py +++ b/tests/api/v1/max_project_volume.py @@ -27,7 +27,7 @@ from ceilometer.collector import meter from ceilometer import counter from ceilometer.tests import api as tests_api -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestMaxProjectVolume(tests_api.TestBase): diff --git a/tests/api/v1/test_max_resource_volume.py b/tests/api/v1/test_max_resource_volume.py index 92785d5b7..85f0d007e 100644 --- a/tests/api/v1/test_max_resource_volume.py +++ b/tests/api/v1/test_max_resource_volume.py @@ -26,7 +26,7 @@ from ceilometer.collector import meter from ceilometer import counter from ceilometer.tests import api as tests_api -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestMaxResourceVolume(tests_api.TestBase): diff --git a/tests/api/v1/test_sum_project_volume.py b/tests/api/v1/test_sum_project_volume.py index d4f35d2aa..7ee6e10a8 100644 --- a/tests/api/v1/test_sum_project_volume.py +++ b/tests/api/v1/test_sum_project_volume.py @@ -27,7 +27,7 @@ from ceilometer.collector import meter from ceilometer import counter from ceilometer.tests import api as tests_api -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestSumProjectVolume(tests_api.TestBase): diff --git a/tests/api/v1/test_sum_resource_volume.py b/tests/api/v1/test_sum_resource_volume.py index 19f917636..3af09e295 100644 --- a/tests/api/v1/test_sum_resource_volume.py +++ b/tests/api/v1/test_sum_resource_volume.py @@ -27,7 +27,7 @@ from ceilometer.collector import meter from ceilometer import counter from ceilometer.tests import api as tests_api -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestSumResourceVolume(tests_api.TestBase): diff --git a/tests/api/v2/test_max_project_volume.py b/tests/api/v2/test_max_project_volume.py index fa4515bdc..ee0c83204 100644 --- a/tests/api/v2/test_max_project_volume.py +++ b/tests/api/v2/test_max_project_volume.py @@ -25,7 +25,7 @@ from oslo.config import cfg from ceilometer.collector import meter from ceilometer import counter -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce from .base import FunctionalTest diff --git a/tests/api/v2/test_max_resource_volume.py b/tests/api/v2/test_max_resource_volume.py index a2c5d4401..a8fd65da9 100644 --- a/tests/api/v2/test_max_resource_volume.py +++ b/tests/api/v2/test_max_resource_volume.py @@ -26,7 +26,7 @@ from ceilometer.collector import meter from ceilometer import counter from .base import FunctionalTest -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestMaxResourceVolume(FunctionalTest): diff --git a/tests/api/v2/test_sum_project_volume.py b/tests/api/v2/test_sum_project_volume.py index 83c738756..92876c6ea 100644 --- a/tests/api/v2/test_sum_project_volume.py +++ b/tests/api/v2/test_sum_project_volume.py @@ -26,7 +26,7 @@ from ceilometer.collector import meter from ceilometer import counter from .base import FunctionalTest -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestSumProjectVolume(FunctionalTest): diff --git a/tests/api/v2/test_sum_resource_volume.py b/tests/api/v2/test_sum_resource_volume.py index 1e645f2af..7d6925443 100644 --- a/tests/api/v2/test_sum_resource_volume.py +++ b/tests/api/v2/test_sum_resource_volume.py @@ -26,7 +26,7 @@ from ceilometer.collector import meter from ceilometer import counter from .base import FunctionalTest -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import require_map_reduce class TestSumResourceVolume(FunctionalTest): diff --git a/tests/storage/test_impl_mongodb.py b/tests/storage/test_impl_mongodb.py index 88e1febdc..4d7759558 100644 --- a/tests/storage/test_impl_mongodb.py +++ b/tests/storage/test_impl_mongodb.py @@ -54,8 +54,7 @@ from tests.storage import base from ceilometer.collector import meter from ceilometer import counter -from ceilometer.storage.impl_test import TestConnection -from ceilometer.tests.db import require_map_reduce +from ceilometer.storage.impl_test import TestConnection, require_map_reduce class MongoDBEngine(base.DBEngineBase): diff --git a/tools/test-requires b/tools/test-requires index f1a9cb161..672a55475 100644 --- a/tools/test-requires +++ b/tools/test-requires @@ -7,7 +7,7 @@ Babel>=0.9.6 # NOTE(dhellmann): Ming is necessary to provide the Mongo-in-memory # implementation of MongoDB. # NOTE(jd): the support for finalize in map reduce in MIM is not yet merged -git+http://git.naquadah.org/git/~jd/merciless.git#egg=Ming +# git+http://git.naquadah.org/git/~jd/merciless.git#egg=Ming http://tarballs.openstack.org/nova/nova-master.tar.gz http://tarballs.openstack.org/glance/glance-master.tar.gz setuptools-git>=0.4 diff --git a/tools/test-requires-folsom b/tools/test-requires-folsom index 4ee3b3ff5..336565127 100644 --- a/tools/test-requires-folsom +++ b/tools/test-requires-folsom @@ -7,7 +7,7 @@ mox # NOTE(dhellmann): Ming is necessary to provide the Mongo-in-memory # implementation of MongoDB. # NOTE(jd): the support for finalize in map reduce in MIM is not yet merged -git+http://git.naquadah.org/git/~jd/merciless.git#egg=Ming +# git+http://git.naquadah.org/git/~jd/merciless.git#egg=Ming http://tarballs.openstack.org/glance/glance-stable-folsom.tar.gz setuptools-git>=0.4 # 1.7.4 is the Folsom release