summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2012-02-13 16:04:59 -0500
committerMark Washenberger <mark.washenberger@rackspace.com>2012-02-13 16:04:59 -0500
commit04d38feb65b06d33224d356f6db1b9202532e2ed (patch)
tree2760ef7a9be7dff9d3e4776900ede5e410a47970 /nova
parent632789c55b505e3a6cf122329eeae6c616077eba (diff)
downloadnova-04d38feb65b06d33224d356f6db1b9202532e2ed.tar.gz
nova-04d38feb65b06d33224d356f6db1b9202532e2ed.tar.xz
nova-04d38feb65b06d33224d356f6db1b9202532e2ed.zip
Use stubs in libvirt/utils get_fs_info test
This test frequently breaks for me because of a race condition where some small change will happen to the file system between when df is called and when os.statvfs is called. By refactoring the test to stubs, we can eliminate the race condition. Note that I do not modify the code under test at all in this change, so the risk of introducing a defect is zero. Change-Id: I83e4b38b25fef7e5e27fcf81b5e5a566406b05dd
Diffstat (limited to 'nova')
-rw-r--r--nova/tests/test_libvirt.py39
1 files changed, 28 insertions, 11 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 2d50344d6..1f9dc3eb8 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1920,17 +1920,34 @@ disk size: 4.4M''', ''))
os.unlink(dst_path)
def test_get_fs_info(self):
- # Use a 1024-byte block size (df -k) because OS X does not support
- # the -B flag
- blocksize = 1024
- stdout, stderr = utils.execute('df', '-k', '/tmp')
- info_line = ' '.join(stdout.split('\n')[1:])
- _dev, total, used, free, _percentage, _mntpnt = info_line.split()
-
- fs_info = libvirt_utils.get_fs_info('/tmp')
- self.assertEquals(int(total) * blocksize, fs_info['total'])
- self.assertEquals(int(free) * blocksize, fs_info['free'])
- self.assertEquals(int(used) * blocksize, fs_info['used'])
+
+ class FakeStatResult(object):
+
+ def __init__(self):
+ self.f_bsize = 4096
+ self.f_frsize = 4096
+ self.f_blocks = 2000
+ self.f_bfree = 1000
+ self.f_bavail = 900
+ self.f_files = 2000
+ self.f_ffree = 1000
+ self.f_favail = 900
+ self.f_flag = 4096
+ self.f_namemax = 255
+
+ self.path = None
+
+ def fake_statvfs(path):
+ self.path = path
+ return FakeStatResult()
+
+ self.stubs.Set(os, 'statvfs', fake_statvfs)
+
+ fs_info = libvirt_utils.get_fs_info('/some/file/path')
+ self.assertEquals('/some/file/path', self.path)
+ self.assertEquals(8192000, fs_info['total'])
+ self.assertEquals(3686400, fs_info['free'])
+ self.assertEquals(4096000, fs_info['used'])
def test_fetch_image(self):
self.mox.StubOutWithMock(images, 'fetch')