summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wolf <throughnothing@gmail.com>2011-05-31 14:21:15 -0400
committerWilliam Wolf <throughnothing@gmail.com>2011-05-31 14:21:15 -0400
commitf668339effa089360c1989082c83afc35489f71e (patch)
treeabd9e614fe9186e942897962549e5dd930ff25af
parent1eee07811f9fb5fd29192b17610a6b2d2e6c3578 (diff)
added tests for GlanceImageService
-rw-r--r--nova/tests/api/openstack/fakes.py38
-rw-r--r--nova/tests/api/openstack/test_images.py68
2 files changed, 103 insertions, 3 deletions
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index 2e28e421c..e7006debe 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -167,12 +167,44 @@ def stub_out_glance(stubs, initial_fixtures=None):
self.fixtures = initial_fixtures or []
def fake_get_images(self, filters=None, marker=None, limit=None):
- return [dict(id=f['id'], name=f['name'])
- for f in self.fixtures]
+ found = True
+ if marker: found = False
+ if limit == 0: limit = None
+
+ fixtures = []
+ count = 0
+ for f in self.fixtures:
+ if limit and count >= limit:
+ break
+ if found:
+ fixtures.append(f)
+ count = count + 1
+ if f['id'] == marker:
+ found = True
+
+ return [dict(id=f['id'], name=f['name'])
+ for f in fixtures]
def fake_get_images_detailed(self, filters=None,
marker=None, limit=None):
- return copy.deepcopy(self.fixtures)
+ found = True
+ if marker: found = False
+ if limit == 0: limit = None
+
+ fixtures = []
+ count = 0
+ for f in self.fixtures:
+ if limit and count >= limit:
+ break
+ if found:
+ fixtures.append(f)
+ count = count + 1
+ if f['id'] == marker:
+ found = True
+
+
+ return fixtures
+
def fake_get_image_meta(self, image_id):
image = self._find_image(image_id)
diff --git a/nova/tests/api/openstack/test_images.py b/nova/tests/api/openstack/test_images.py
index 82bf66e49..310fbd5b4 100644
--- a/nova/tests/api/openstack/test_images.py
+++ b/nova/tests/api/openstack/test_images.py
@@ -226,6 +226,74 @@ class GlanceImageServiceTest(_BaseImageServiceTests):
expected = {'name': 'test image', 'properties': {}}
self.assertDictMatch(self.sent_to_glance['metadata'], expected)
+ def test_index_default_limit(self):
+ fixtures = []
+ ids = []
+ for i in range(10):
+ fixture = self._make_fixture('TestImage %d' % (i))
+ fixtures.append(fixture)
+ ids.append(self.service.create(self.context, fixture)['id'])
+
+ image_metas = self.service.index(self.context)
+ i = 0
+ for meta in image_metas:
+ expected = {'id': 'DONTCARE',
+ 'name': 'TestImage %d' % (i)}
+ self.assertDictMatch(meta, expected)
+ i = i + 1
+
+ def test_index_marker(self):
+ fixtures = []
+ ids = []
+ for i in range(10):
+ fixture = self._make_fixture('TestImage %d' % (i))
+ fixtures.append(fixture)
+ ids.append(self.service.create(self.context, fixture)['id'])
+
+ image_metas = self.service.index(self.context, marker=ids[1])
+ self.assertEquals(len(image_metas), 8)
+ i = 2
+ for meta in image_metas:
+ expected = {'id': 'DONTCARE',
+ 'name': 'TestImage %d' % (i)}
+ self.assertDictMatch(meta, expected)
+ i = i + 1
+
+ def test_index_limit(self):
+ fixtures = []
+ ids = []
+ for i in range(10):
+ fixture = self._make_fixture('TestImage %d' % (i))
+ fixtures.append(fixture)
+ ids.append(self.service.create(self.context, fixture)['id'])
+
+ image_metas = self.service.index(self.context, limit=3)
+ self.assertEquals(len(image_metas), 3)
+
+ def test_index_marker_and_limit(self):
+ fixtures = []
+ ids = []
+ for i in range(10):
+ fixture = self._make_fixture('TestImage %d' % (i))
+ fixtures.append(fixture)
+ ids.append(self.service.create(self.context, fixture)['id'])
+
+ image_metas = self.service.index(self.context, marker=ids[3], limit=1)
+ self.assertEquals(len(image_metas), 1)
+ i = 4
+ for meta in image_metas:
+ expected = {'id': 'DONTCARE',
+ 'name': 'TestImage %d' % (i)}
+ self.assertDictMatch(meta, expected)
+ i = i + 1
+
+ def test_detail(self):
+ fixture = self._make_fixture('test image')
+ image_id = self.service.create(self.context, fixture)['id']
+ image_metas = self.service.index(self.context)
+ expected = [{'id': 'DONTCARE', 'name': 'test image'}]
+ self.assertDictListMatch(image_metas, expected)
+
class ImageControllerWithGlanceServiceTest(test.TestCase):
"""