summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2011-07-08 18:35:01 +0900
committerIsaku Yamahata <yamahata@valinux.co.jp>2011-07-08 18:35:01 +0900
commitd5307a2e1575778fcbfcf3d8ad65733be7544a54 (patch)
treef7fc0d43da472c2dc5afaccd1092d46195100e80
parent58d7fa8bf8610ac2fa65e974061bf8ae78ca321f (diff)
downloadnova-d5307a2e1575778fcbfcf3d8ad65733be7544a54.tar.gz
nova-d5307a2e1575778fcbfcf3d8ad65733be7544a54.tar.xz
nova-d5307a2e1575778fcbfcf3d8ad65733be7544a54.zip
image/fake: added teardown method
Unit tests may alter images in FakeImageService which has pre-defined images. Since some unit tests depend on those images, so it needs to be cleaned up after image alternation. Otherwise running many unit tests may fail.
-rw-r--r--nova/image/fake.py11
-rw-r--r--nova/test.py4
2 files changed, 14 insertions, 1 deletions
diff --git a/nova/image/fake.py b/nova/image/fake.py
index c4b3d5fd6..28e912534 100644
--- a/nova/image/fake.py
+++ b/nova/image/fake.py
@@ -137,7 +137,11 @@ class _FakeImageService(service.BaseImageService):
try:
image_id = metadata['id']
except KeyError:
- image_id = random.randint(0, 2 ** 31 - 1)
+ while True:
+ image_id = random.randint(0, 2 ** 31 - 1)
+ if not self.images.get(str(image_id)):
+ break
+
image_id = str(image_id)
if self.images.get(image_id):
@@ -176,3 +180,8 @@ _fakeImageService = _FakeImageService()
def FakeImageService():
return _fakeImageService
+
+
+def FakeImageService_reset():
+ global _fakeImageService
+ _fakeImageService = _FakeImageService()
diff --git a/nova/test.py b/nova/test.py
index b2599d4be..9790b0aa1 100644
--- a/nova/test.py
+++ b/nova/test.py
@@ -31,6 +31,7 @@ import unittest
import mox
import nose.plugins.skip
+import nova.image.fake
import shutil
import stubout
from eventlet import greenthread
@@ -119,6 +120,9 @@ class TestCase(unittest.TestCase):
if hasattr(fake.FakeConnection, '_instance'):
del fake.FakeConnection._instance
+ if FLAGS.image_service == 'nova.image.fake.FakeImageService':
+ nova.image.fake.FakeImageService_reset()
+
# Reset any overriden flags
self.reset_flags()