def test_create_folder_repeat(self): """Test create folder with identifier factory that not always returns a unique identifier. """ store = DefaultObjectStore(identifier_factory=IdFactory( max_attempts=MAX_ATTEMPS - 1)) id1 = store.create_folder(BASE_DIRECTORY) id2 = store.create_folder(BASE_DIRECTORY) self.assertNotEqual(id1, id2) self.assertTrue(store.exists(store.join(BASE_DIRECTORY, id1))) self.assertTrue(store.exists(store.join(BASE_DIRECTORY, id2))) store.delete_folder(store.join(BASE_DIRECTORY, id1)) store.delete_folder(store.join(BASE_DIRECTORY, id2)) store = DefaultObjectStore(identifier_factory=IdFactory( max_attempts=MAX_ATTEMPS + 1)) id1 = store.create_folder(BASE_DIRECTORY) with self.assertRaises(RuntimeError): store.create_folder(BASE_DIRECTORY)
def test_create_and_delete_folder(self): """Test default functionality of create_folder and delete_folder methods. """ store = DefaultObjectStore() self.assertEqual(store.create_folder(BASE_DIRECTORY, identifier='A'), 'A') self.assertTrue(store.exists(store.join(BASE_DIRECTORY, 'A'))) self.assertTrue(os.path.isdir(os.path.join(BASE_DIRECTORY, 'A'))) identifier = store.create_folder(BASE_DIRECTORY) self.assertTrue(store.exists(store.join(BASE_DIRECTORY, identifier))) self.assertTrue(os.path.isdir(os.path.join(BASE_DIRECTORY, identifier))) # New store with short identifier factory store = DefaultObjectStore(identifier_factory=get_short_identifier) short_id = store.create_folder(BASE_DIRECTORY) self.assertTrue(store.exists(store.join(BASE_DIRECTORY, short_id))) self.assertTrue(os.path.isdir(os.path.join(BASE_DIRECTORY, short_id))) # Delete folder with identifier store.delete_folder(store.join(BASE_DIRECTORY, identifier)) self.assertFalse(store.exists(store.join(BASE_DIRECTORY, identifier))) self.assertFalse( os.path.isdir(os.path.join(BASE_DIRECTORY, identifier))) # Delete folder with short_id when the keep_deleted_files flag is True store = DefaultObjectStore(keep_deleted_files=True) store.delete_folder(store.join(BASE_DIRECTORY, short_id)) self.assertTrue(store.exists(store.join(BASE_DIRECTORY, short_id))) self.assertTrue(os.path.isdir(os.path.join(BASE_DIRECTORY, short_id))) # Delete folder 'A' overriding the keep_deleted_files flag self.assertTrue(store.exists(store.join(BASE_DIRECTORY, 'A'))) self.assertTrue(os.path.isdir(os.path.join(BASE_DIRECTORY, 'A'))) store.delete_folder(store.join(BASE_DIRECTORY, 'A'), force_delete=True) self.assertFalse(store.exists(store.join(BASE_DIRECTORY, 'A'))) self.assertFalse(os.path.isdir(os.path.join(BASE_DIRECTORY, 'A')))