2752: Add ResumeCache.restart().
authorBrett Smith <brett@curoverse.com>
Fri, 23 May 2014 20:46:49 +0000 (16:46 -0400)
committerBrett Smith <brett@curoverse.com>
Mon, 26 May 2014 12:07:36 +0000 (08:07 -0400)
This will make it easier for the user to bypass the cache.

sdk/python/arvados/commands/put.py
sdk/python/tests/test_arv-put.py

index 37974c09459cd19e9615368fd8a21c245ce46214..439504786ec033de6a3b07a32ea82206e7e0237a 100644 (file)
@@ -198,6 +198,10 @@ class ResumeCache(object):
                 raise
         self.close()
 
+    def restart(self):
+        self.destroy()
+        self.__init__(self.filename)
+
 
 class ArvPutCollectionWriter(arvados.ResumableCollectionWriter):
     def __init__(self, cache=None, reporter=None, bytes_expected=None):
index e765482106554ff77eedd63e79abbf9b27dc67f3..a98eaa6a5eca83ee5b7eb7f5a173df53119ff93e 100644 (file)
@@ -170,6 +170,15 @@ class ArvadosPutResumeCacheTest(ArvadosBaseTestCase):
             if os.path.exists(cachefile.name):
                 os.unlink(cachefile.name)
 
+    def test_restart_cache(self):
+        path = os.path.join(self.make_tmpdir(), 'cache')
+        cache = arv_put.ResumeCache(path)
+        cache.save('test')
+        cache.restart()
+        self.assertRaises(ValueError, cache.load)
+        self.assertRaises(arv_put.ResumeCacheConflict,
+                          arv_put.ResumeCache, path)
+
 
 class ArvadosPutCollectionWriterTest(ArvadosKeepLocalStoreTestCase):
     def setUp(self):