summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-08-13 16:17:08 +0000
committerGerrit Code Review <review@openstack.org>2012-08-13 16:17:08 +0000
commitdafa79ff7880af907b5836d832e6c5dbfd7e0529 (patch)
tree2ed64a97450761726b0fc722f4e9c06b7aa40fb0 /nova/tests
parent2db23f6ba4db8fe95d05874dc3c6bef017a412ae (diff)
parent56a6fa2bb68a8738f8d02f41f92983ee3115a19d (diff)
Merge "Move results filtering to db."
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/compute/test_compute.py35
-rw-r--r--nova/tests/test_db_api.py28
2 files changed, 31 insertions, 32 deletions
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index da3f8c1e1..e54fd44cf 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -3206,14 +3206,14 @@ class ComputeAPITestCase(BaseTestCase):
'display_name': 'not-woot'})
instances = self.compute_api.get_all(c,
- search_opts={'name': 'woo.*'})
+ search_opts={'name': '^woo.*'})
self.assertEqual(len(instances), 2)
instance_uuids = [instance['uuid'] for instance in instances]
self.assertTrue(instance1['uuid'] in instance_uuids)
self.assertTrue(instance2['uuid'] in instance_uuids)
instances = self.compute_api.get_all(c,
- search_opts={'name': 'woot.*'})
+ search_opts={'name': '^woot.*'})
instance_uuids = [instance['uuid'] for instance in instances]
self.assertEqual(len(instances), 1)
self.assertTrue(instance1['uuid'] in instance_uuids)
@@ -3226,7 +3226,7 @@ class ComputeAPITestCase(BaseTestCase):
self.assertTrue(instance3['uuid'] in instance_uuids)
instances = self.compute_api.get_all(c,
- search_opts={'name': 'n.*'})
+ search_opts={'name': '^n.*'})
self.assertEqual(len(instances), 1)
instance_uuids = [instance['uuid'] for instance in instances]
self.assertTrue(instance3['uuid'] in instance_uuids)
@@ -3239,35 +3239,6 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(c, instance2['uuid'])
db.instance_destroy(c, instance3['uuid'])
- def test_get_all_by_instance_name_regexp(self):
- """Test searching instances by name"""
- self.flags(instance_name_template='instance-%d')
-
- c = context.get_admin_context()
- instance1 = self._create_fake_instance()
- instance2 = self._create_fake_instance({'id': 2})
- instance3 = self._create_fake_instance({'id': 10})
-
- instances = self.compute_api.get_all(c,
- search_opts={'instance_name': 'instance.*'})
- self.assertEqual(len(instances), 3)
-
- instances = self.compute_api.get_all(c,
- search_opts={'instance_name': '.*\-\d$'})
- self.assertEqual(len(instances), 2)
- instance_uuids = [instance['uuid'] for instance in instances]
- self.assertTrue(instance1['uuid'] in instance_uuids)
- self.assertTrue(instance2['uuid'] in instance_uuids)
-
- instances = self.compute_api.get_all(c,
- search_opts={'instance_name': 'i.*2'})
- self.assertEqual(len(instances), 1)
- self.assertEqual(instances[0]['uuid'], instance2['uuid'])
-
- db.instance_destroy(c, instance1['uuid'])
- db.instance_destroy(c, instance2['uuid'])
- db.instance_destroy(c, instance3['uuid'])
-
def test_get_all_by_multiple_options_at_once(self):
"""Test searching by multiple options at once"""
c = context.get_admin_context()
diff --git a/nova/tests/test_db_api.py b/nova/tests/test_db_api.py
index b664f54e4..9acc964cf 100644
--- a/nova/tests/test_db_api.py
+++ b/nova/tests/test_db_api.py
@@ -66,6 +66,34 @@ class DbApiTestCase(test.TestCase):
result = db.instance_get_all_by_filters(self.context, {})
self.assertEqual(2, len(result))
+ def test_instance_get_all_by_filters_regex(self):
+ self.create_instances_with_args(display_name='test1')
+ self.create_instances_with_args(display_name='teeeest2')
+ self.create_instances_with_args(display_name='diff')
+ result = db.instance_get_all_by_filters(self.context,
+ {'display_name': 't.*st.'})
+ self.assertEqual(2, len(result))
+
+ def test_instance_get_all_by_filters_regex_unsupported_db(self):
+ """Ensure that the 'LIKE' operator is used for unsupported dbs."""
+ self.flags(sql_connection="notdb://")
+ self.create_instances_with_args(display_name='test1')
+ self.create_instances_with_args(display_name='test.*')
+ self.create_instances_with_args(display_name='diff')
+ result = db.instance_get_all_by_filters(self.context,
+ {'display_name': 'test.*'})
+ self.assertEqual(1, len(result))
+ result = db.instance_get_all_by_filters(self.context,
+ {'display_name': '%test%'})
+ self.assertEqual(2, len(result))
+
+ def test_instance_get_all_by_filters_metadata(self):
+ self.create_instances_with_args(metadata={'foo': 'bar'})
+ self.create_instances_with_args()
+ result = db.instance_get_all_by_filters(self.context,
+ {'metadata': {'foo': 'bar'}})
+ self.assertEqual(1, len(result))
+
def test_instance_get_all_by_filters_unicode_value(self):
self.create_instances_with_args(display_name=u'test♥')
result = db.instance_get_all_by_filters(self.context,