summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/test_utils.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py
index 15ac0dc2d..d2b122121 100644
--- a/nova/tests/test_utils.py
+++ b/nova/tests/test_utils.py
@@ -14,6 +14,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+import __builtin__
+import mox
import datetime
import os
import tempfile
@@ -330,6 +332,33 @@ class GenericUtilsTestCase(test.TestCase):
actual_url = "http://%s:%d" % (FLAGS.glance_host, FLAGS.glance_port)
self.assertEqual(generated_url, actual_url)
+ def test_read_cached_file(self):
+ self.mox.StubOutWithMock(os.path, "getmtime")
+ os.path.getmtime(mox.IgnoreArg()).AndReturn(1)
+ self.mox.ReplayAll()
+
+ cache_data = {"data": 1123, "mtime": 1}
+ data = utils.read_cached_file("/this/is/a/fake", cache_data)
+ self.assertEqual(cache_data["data"], data)
+
+ def test_read_modified_cached_file(self):
+ self.mox.StubOutWithMock(os.path, "getmtime")
+ self.mox.StubOutWithMock(__builtin__, 'open')
+
+ os.path.getmtime(mox.IgnoreArg()).AndReturn(2)
+
+ fake_contents = "lorem ipsum"
+ fake_file = self.mox.CreateMockAnything()
+ fake_file.read().AndReturn(fake_contents)
+ __builtin__.open(mox.IgnoreArg()).AndReturn(fake_file)
+
+ self.mox.ReplayAll()
+ cache_data = {"data": 1123, "mtime": 1}
+ data = utils.read_cached_file("/this/is/a/fake", cache_data)
+ self.mox.VerifyAll()
+ self.mox.UnsetStubs()
+ self.assertEqual(data, fake_contents)
+
class IsUUIDLikeTestCase(test.TestCase):
def assertUUIDLike(self, val, expected):