X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/91dc5f1d7f5ad9eb2640f6089e2d0476cbf87c8e..1586823b65c7ec7656626e491a31f3f9516a4a56:/sdk/python/tests/test_collections.py diff --git a/sdk/python/tests/test_collections.py b/sdk/python/tests/test_collections.py index fc30a242eb..fd31664a52 100644 --- a/sdk/python/tests/test_collections.py +++ b/sdk/python/tests/test_collections.py @@ -861,6 +861,8 @@ class NewCollectionTestCase(unittest.TestCase, CollectionTestMixin): c.find("/.") with self.assertRaises(arvados.errors.ArgumentError): c.find("") + self.assertIs(c.find("./nonexistant.txt"), None) + self.assertIs(c.find("./nonexistantsubdir/nonexistant.txt"), None) def test_remove_in_subdir(self): c = Collection('. 781e5e245d69b566979b86e28d23f2c7+10 0:10:count1.txt\n./foo 781e5e245d69b566979b86e28d23f2c7+10 0:10:count2.txt\n') @@ -1109,7 +1111,7 @@ class NewCollectionTestCaseWithServers(run_test_server.TestCaseWithServers): def test_only_small_blocks_are_packed_together(self): c = Collection() - # Write a couple of small files, + # Write a couple of small files, f = c.open("count.txt", "w") f.write("0123456789") f.close(flush=False) @@ -1124,6 +1126,64 @@ class NewCollectionTestCaseWithServers(run_test_server.TestCaseWithServers): c.manifest_text("."), '. 2d303c138c118af809f39319e5d507e9+34603008 a8430a058b8fbf408e1931b794dbd6fb+13 0:34603008:bigfile.txt 34603008:10:count.txt 34603018:3:foo.txt\n') + def test_flush_after_small_block_packing(self): + c = Collection() + # Write a couple of small files, + f = c.open("count.txt", "w") + f.write("0123456789") + f.close(flush=False) + foo = c.open("foo.txt", "w") + foo.write("foo") + foo.close(flush=False) + + self.assertEqual( + c.manifest_text(), + '. a8430a058b8fbf408e1931b794dbd6fb+13 0:10:count.txt 10:3:foo.txt\n') + + f = c.open("count.txt", "r+") + f.close(flush=True) + + self.assertEqual( + c.manifest_text(), + '. a8430a058b8fbf408e1931b794dbd6fb+13 0:10:count.txt 10:3:foo.txt\n') + + def test_write_after_small_block_packing2(self): + c = Collection() + # Write a couple of small files, + f = c.open("count.txt", "w") + f.write("0123456789") + f.close(flush=False) + foo = c.open("foo.txt", "w") + foo.write("foo") + foo.close(flush=False) + + self.assertEqual( + c.manifest_text(), + '. a8430a058b8fbf408e1931b794dbd6fb+13 0:10:count.txt 10:3:foo.txt\n') + + f = c.open("count.txt", "r+") + f.write("abc") + f.close(flush=False) + + self.assertEqual( + c.manifest_text(), + '. 900150983cd24fb0d6963f7d28e17f72+3 a8430a058b8fbf408e1931b794dbd6fb+13 0:3:count.txt 6:7:count.txt 13:3:foo.txt\n') + + + def test_small_block_packing_with_overwrite(self): + c = Collection() + c.open("b1", "w").close() + c["b1"].writeto(0, "b1", 0) + + c.open("b2", "w").close() + c["b2"].writeto(0, "b2", 0) + + c["b1"].writeto(0, "1b", 0) + + self.assertEquals(c.manifest_text(), ". ed4f3f67c70b02b29c50ce1ea26666bd+4 0:2:b1 2:2:b2\n") + self.assertEquals(c["b1"].manifest_text(), ". ed4f3f67c70b02b29c50ce1ea26666bd+4 0:2:b1\n") + self.assertEquals(c["b2"].manifest_text(), ". ed4f3f67c70b02b29c50ce1ea26666bd+4 2:2:b2\n") + class CollectionCreateUpdateTest(run_test_server.TestCaseWithServers): MAIN_SERVER = {}