#1962: clean up tests + improve the show command which shows the folders and files in file system
This commit is contained in:
@@ -94,7 +94,7 @@ class FileSystem(SimComponent):
|
|||||||
:param markdown: Flag indicating if output should be in markdown format.
|
:param markdown: Flag indicating if output should be in markdown format.
|
||||||
:param full: Flag indicating if to show full files.
|
:param full: Flag indicating if to show full files.
|
||||||
"""
|
"""
|
||||||
headers = ["Folder", "Size"]
|
headers = ["Folder", "Size", "Deleted"]
|
||||||
if full:
|
if full:
|
||||||
headers[0] = "File Path"
|
headers[0] = "File Path"
|
||||||
table = PrettyTable(headers)
|
table = PrettyTable(headers)
|
||||||
@@ -102,12 +102,17 @@ class FileSystem(SimComponent):
|
|||||||
table.set_style(MARKDOWN)
|
table.set_style(MARKDOWN)
|
||||||
table.align = "l"
|
table.align = "l"
|
||||||
table.title = f"{self.sys_log.hostname} File System"
|
table.title = f"{self.sys_log.hostname} File System"
|
||||||
for folder in self.folders.values():
|
folders = {**self.folders, **self.deleted_folders}
|
||||||
|
for folder in folders.values():
|
||||||
if not full:
|
if not full:
|
||||||
table.add_row([folder.name, folder.size_str])
|
table.add_row([folder.name, folder.size_str, folder.deleted])
|
||||||
else:
|
else:
|
||||||
for file in folder.files.values():
|
files = {**folder.files, **folder.deleted_files}
|
||||||
table.add_row([file.path, file.size_str])
|
if not files:
|
||||||
|
table.add_row([folder.name, folder.size_str, folder.deleted])
|
||||||
|
else:
|
||||||
|
for file in files.values():
|
||||||
|
table.add_row([file.path, file.size_str, file.deleted])
|
||||||
if full:
|
if full:
|
||||||
print(table.get_string(sortby="File Path"))
|
print(table.get_string(sortby="File Path"))
|
||||||
else:
|
else:
|
||||||
@@ -380,6 +385,7 @@ class FileSystem(SimComponent):
|
|||||||
"""
|
"""
|
||||||
state = super().describe_state()
|
state = super().describe_state()
|
||||||
state["folders"] = {folder.name: folder.describe_state() for folder in self.folders.values()}
|
state["folders"] = {folder.name: folder.describe_state() for folder in self.folders.values()}
|
||||||
|
state["deleted_folders"] = {folder.name: folder.describe_state() for folder in self.deleted_folders.values()}
|
||||||
return state
|
return state
|
||||||
|
|
||||||
def apply_timestep(self, timestep: int) -> None:
|
def apply_timestep(self, timestep: int) -> None:
|
||||||
|
|||||||
@@ -76,13 +76,13 @@ class Folder(FileSystemItemABC):
|
|||||||
|
|
||||||
:param markdown: Whether to display the table in Markdown format or not. Default is `False`.
|
:param markdown: Whether to display the table in Markdown format or not. Default is `False`.
|
||||||
"""
|
"""
|
||||||
table = PrettyTable(["File", "Size"])
|
table = PrettyTable(["File", "Size", "Deleted"])
|
||||||
if markdown:
|
if markdown:
|
||||||
table.set_style(MARKDOWN)
|
table.set_style(MARKDOWN)
|
||||||
table.align = "l"
|
table.align = "l"
|
||||||
table.title = f"{self.sys_log.hostname} File System Folder ({self.name})"
|
table.title = f"{self.sys_log.hostname} File System Folder ({self.name})"
|
||||||
for file in self.files.values():
|
for file in self.files.values():
|
||||||
table.add_row([file.name, file.size_str])
|
table.add_row([file.name, file.size_str, file.deleted])
|
||||||
print(table.get_string(sortby="File"))
|
print(table.get_string(sortby="File"))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -55,7 +55,23 @@ def test_file_repair_request(populated_file_system):
|
|||||||
|
|
||||||
|
|
||||||
def test_file_restore_request(populated_file_system):
|
def test_file_restore_request(populated_file_system):
|
||||||
pass
|
"""Test that an agent can request that a file can be restored."""
|
||||||
|
fs, folder, file = populated_file_system
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid) is not None
|
||||||
|
|
||||||
|
fs.apply_request(request=["delete", "file", folder.uuid, file.uuid])
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is True
|
||||||
|
|
||||||
|
fs.apply_request(request=["restore", "file", folder.uuid, file.uuid])
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).deleted is False
|
||||||
|
|
||||||
|
fs.apply_request(request=["file", file.uuid, "corrupt"])
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
||||||
|
|
||||||
|
fs.apply_request(request=["restore", "file", folder.uuid, file.uuid])
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.GOOD
|
||||||
|
|
||||||
|
|
||||||
def test_file_corrupt_request(populated_file_system):
|
def test_file_corrupt_request(populated_file_system):
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ def test_create_folder_and_file(file_system):
|
|||||||
|
|
||||||
assert file_system.get_folder("test_folder").get_file("test_file.txt")
|
assert file_system.get_folder("test_folder").get_file("test_file.txt")
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_create_file_no_folder(file_system):
|
def test_create_file_no_folder(file_system):
|
||||||
"""Tests that creating a file without a folder creates a folder and sets that as the file's parent."""
|
"""Tests that creating a file without a folder creates a folder and sets that as the file's parent."""
|
||||||
@@ -27,6 +29,8 @@ def test_create_file_no_folder(file_system):
|
|||||||
assert file_system.get_folder("root").get_file("test_file.txt").file_type == FileType.TXT
|
assert file_system.get_folder("root").get_file("test_file.txt").file_type == FileType.TXT
|
||||||
assert file_system.get_folder("root").get_file("test_file.txt").size == 10
|
assert file_system.get_folder("root").get_file("test_file.txt").size == 10
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_delete_file(file_system):
|
def test_delete_file(file_system):
|
||||||
"""Tests that a file can be deleted."""
|
"""Tests that a file can be deleted."""
|
||||||
@@ -39,6 +43,8 @@ def test_delete_file(file_system):
|
|||||||
assert len(file_system.get_folder("root").files) == 0
|
assert len(file_system.get_folder("root").files) == 0
|
||||||
assert len(file_system.get_folder("root").deleted_files) == 1
|
assert len(file_system.get_folder("root").deleted_files) == 1
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_delete_non_existent_file(file_system):
|
def test_delete_non_existent_file(file_system):
|
||||||
"""Tests deleting a non existent file."""
|
"""Tests deleting a non existent file."""
|
||||||
@@ -56,6 +62,8 @@ def test_delete_non_existent_file(file_system):
|
|||||||
# The folder should still have 1 file
|
# The folder should still have 1 file
|
||||||
assert len(file_system.get_folder("root").files) == 1
|
assert len(file_system.get_folder("root").files) == 1
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_delete_folder(file_system):
|
def test_delete_folder(file_system):
|
||||||
file_system.create_folder(folder_name="test_folder")
|
file_system.create_folder(folder_name="test_folder")
|
||||||
@@ -66,6 +74,8 @@ def test_delete_folder(file_system):
|
|||||||
|
|
||||||
assert len(file_system.deleted_folders) == 1
|
assert len(file_system.deleted_folders) == 1
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_create_duplicate_folder(file_system):
|
def test_create_duplicate_folder(file_system):
|
||||||
"""Test that creating a duplicate folder throws exception."""
|
"""Test that creating a duplicate folder throws exception."""
|
||||||
@@ -78,6 +88,8 @@ def test_create_duplicate_folder(file_system):
|
|||||||
|
|
||||||
assert len(file_system.folders) is 2
|
assert len(file_system.folders) is 2
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_create_duplicate_file(file_system):
|
def test_create_duplicate_file(file_system):
|
||||||
"""Test that creating a duplicate file throws exception."""
|
"""Test that creating a duplicate file throws exception."""
|
||||||
@@ -94,6 +106,8 @@ def test_create_duplicate_file(file_system):
|
|||||||
|
|
||||||
assert len(file_system.get_folder("test_folder").files) == 1
|
assert len(file_system.get_folder("test_folder").files) == 1
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_deleting_a_non_existent_folder(file_system):
|
def test_deleting_a_non_existent_folder(file_system):
|
||||||
file_system.create_folder(folder_name="test_folder")
|
file_system.create_folder(folder_name="test_folder")
|
||||||
@@ -102,6 +116,8 @@ def test_deleting_a_non_existent_folder(file_system):
|
|||||||
file_system.delete_folder(folder_name="does not exist!")
|
file_system.delete_folder(folder_name="does not exist!")
|
||||||
assert len(file_system.folders) == 2
|
assert len(file_system.folders) == 2
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_deleting_root_folder_fails(file_system):
|
def test_deleting_root_folder_fails(file_system):
|
||||||
assert len(file_system.folders) == 1
|
assert len(file_system.folders) == 1
|
||||||
@@ -109,6 +125,8 @@ def test_deleting_root_folder_fails(file_system):
|
|||||||
file_system.delete_folder(folder_name="root")
|
file_system.delete_folder(folder_name="root")
|
||||||
assert len(file_system.folders) == 1
|
assert len(file_system.folders) == 1
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_move_file(file_system):
|
def test_move_file(file_system):
|
||||||
"""Tests the file move function."""
|
"""Tests the file move function."""
|
||||||
@@ -127,6 +145,8 @@ def test_move_file(file_system):
|
|||||||
assert len(file_system.get_folder("dst_folder").files) == 1
|
assert len(file_system.get_folder("dst_folder").files) == 1
|
||||||
assert file_system.get_file("dst_folder", "test_file.txt").uuid == original_uuid
|
assert file_system.get_file("dst_folder", "test_file.txt").uuid == original_uuid
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_copy_file(file_system):
|
def test_copy_file(file_system):
|
||||||
"""Tests the file copy function."""
|
"""Tests the file copy function."""
|
||||||
@@ -145,6 +165,8 @@ def test_copy_file(file_system):
|
|||||||
assert len(file_system.get_folder("dst_folder").files) == 1
|
assert len(file_system.get_folder("dst_folder").files) == 1
|
||||||
assert file_system.get_file("dst_folder", "test_file.txt").uuid != original_uuid
|
assert file_system.get_file("dst_folder", "test_file.txt").uuid != original_uuid
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_get_file(file_system):
|
def test_get_file(file_system):
|
||||||
"""Test that files can be retrieved."""
|
"""Test that files can be retrieved."""
|
||||||
@@ -162,6 +184,8 @@ def test_get_file(file_system):
|
|||||||
file_system.delete_folder(folder_name="test_folder")
|
file_system.delete_folder(folder_name="test_folder")
|
||||||
assert file_system.get_file_by_id(file_uuid=file2.uuid, include_deleted=True) is not None
|
assert file_system.get_file_by_id(file_uuid=file2.uuid, include_deleted=True) is not None
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip(reason="Skipping until we tackle serialisation")
|
@pytest.mark.skip(reason="Skipping until we tackle serialisation")
|
||||||
def test_serialisation(file_system):
|
def test_serialisation(file_system):
|
||||||
@@ -172,3 +196,5 @@ def test_serialisation(file_system):
|
|||||||
deserialised_file_sys = FileSystem.model_validate_json(serialised_file_sys)
|
deserialised_file_sys = FileSystem.model_validate_json(serialised_file_sys)
|
||||||
|
|
||||||
assert file_system.model_dump_json() == deserialised_file_sys.model_dump_json()
|
assert file_system.model_dump_json() == deserialised_file_sys.model_dump_json()
|
||||||
|
|
||||||
|
file_system.show(full=True)
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ def test_file_delete_request(populated_file_system):
|
|||||||
fs.apply_request(request=["delete", "file", folder.uuid, file.uuid])
|
fs.apply_request(request=["delete", "file", folder.uuid, file.uuid])
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
||||||
|
|
||||||
|
fs.show(full=True)
|
||||||
|
|
||||||
|
|
||||||
def test_folder_delete_request(populated_file_system):
|
def test_folder_delete_request(populated_file_system):
|
||||||
"""Test that an agent can request a folder deletion."""
|
"""Test that an agent can request a folder deletion."""
|
||||||
@@ -34,87 +36,4 @@ def test_folder_delete_request(populated_file_system):
|
|||||||
assert fs.get_folder_by_id(folder_uuid=folder.uuid) is None
|
assert fs.get_folder_by_id(folder_uuid=folder.uuid) is None
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid) is None
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid) is None
|
||||||
|
|
||||||
|
fs.show(full=True)
|
||||||
def test_file_restore_request(populated_file_system):
|
|
||||||
"""Test that an agent can request that a file can be restored."""
|
|
||||||
fs, folder, file = populated_file_system
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid) is not None
|
|
||||||
|
|
||||||
fs.apply_request(request=["delete", "file", folder.uuid, file.uuid])
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is True
|
|
||||||
|
|
||||||
fs.apply_request(request=["restore", "file", folder.uuid, file.uuid])
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).deleted is False
|
|
||||||
|
|
||||||
fs.apply_request(request=["file", file.uuid, "corrupt"])
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
|
||||||
|
|
||||||
fs.apply_request(request=["restore", "file", folder.uuid, file.uuid])
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.GOOD
|
|
||||||
|
|
||||||
|
|
||||||
def test_folder_restore_request(populated_file_system):
|
|
||||||
"""Test that an agent can request that a folder can be restored."""
|
|
||||||
fs, folder, file = populated_file_system
|
|
||||||
assert fs.get_folder_by_id(folder_uuid=folder.uuid) is not None
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid) is not None
|
|
||||||
|
|
||||||
# delete folder
|
|
||||||
fs.apply_request(request=["delete", "folder", folder.uuid])
|
|
||||||
assert fs.get_folder(folder_name=folder.name) is None
|
|
||||||
assert fs.get_folder_by_id(folder_uuid=folder.uuid, include_deleted=True).deleted is True
|
|
||||||
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is True
|
|
||||||
|
|
||||||
# restore folder
|
|
||||||
fs.apply_request(request=["restore", "folder", folder.uuid])
|
|
||||||
fs.apply_timestep(timestep=0)
|
|
||||||
assert fs.get_folder(folder_name=folder.name) is not None
|
|
||||||
assert (
|
|
||||||
fs.get_folder_by_id(folder_uuid=folder.uuid, include_deleted=True).health_status
|
|
||||||
== FileSystemItemHealthStatus.RESTORING
|
|
||||||
)
|
|
||||||
assert fs.get_folder_by_id(folder_uuid=folder.uuid, include_deleted=True).deleted is False
|
|
||||||
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is True
|
|
||||||
|
|
||||||
fs.apply_timestep(timestep=1)
|
|
||||||
fs.apply_timestep(timestep=2)
|
|
||||||
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
|
||||||
assert (
|
|
||||||
fs.get_file(folder_name=folder.name, file_name=file.name).health_status
|
|
||||||
is not FileSystemItemHealthStatus.RESTORING
|
|
||||||
)
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).deleted is False
|
|
||||||
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is False
|
|
||||||
|
|
||||||
# corrupt folder
|
|
||||||
fs.apply_request(request=["folder", folder.uuid, "corrupt"])
|
|
||||||
assert fs.get_folder(folder_name=folder.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
|
||||||
|
|
||||||
# restore folder
|
|
||||||
fs.apply_request(request=["restore", "folder", folder.uuid])
|
|
||||||
fs.apply_timestep(timestep=0)
|
|
||||||
assert fs.get_folder(folder_name=folder.name).health_status == FileSystemItemHealthStatus.RESTORING
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
|
||||||
|
|
||||||
fs.apply_timestep(timestep=1)
|
|
||||||
fs.apply_timestep(timestep=2)
|
|
||||||
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
|
||||||
assert (
|
|
||||||
fs.get_file(folder_name=folder.name, file_name=file.name).health_status
|
|
||||||
is not FileSystemItemHealthStatus.RESTORING
|
|
||||||
)
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name).deleted is False
|
|
||||||
|
|
||||||
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
|
||||||
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is False
|
|
||||||
|
|||||||
@@ -74,7 +74,68 @@ def test_folder_repair_request(populated_file_system):
|
|||||||
|
|
||||||
|
|
||||||
def test_folder_restore_request(populated_file_system):
|
def test_folder_restore_request(populated_file_system):
|
||||||
pass
|
"""Test that an agent can request that a folder can be restored."""
|
||||||
|
fs, folder, file = populated_file_system
|
||||||
|
assert fs.get_folder_by_id(folder_uuid=folder.uuid) is not None
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid) is not None
|
||||||
|
|
||||||
|
# delete folder
|
||||||
|
fs.apply_request(request=["delete", "folder", folder.uuid])
|
||||||
|
assert fs.get_folder(folder_name=folder.name) is None
|
||||||
|
assert fs.get_folder_by_id(folder_uuid=folder.uuid, include_deleted=True).deleted is True
|
||||||
|
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is True
|
||||||
|
|
||||||
|
# restore folder
|
||||||
|
fs.apply_request(request=["restore", "folder", folder.uuid])
|
||||||
|
fs.apply_timestep(timestep=0)
|
||||||
|
assert fs.get_folder(folder_name=folder.name) is not None
|
||||||
|
assert (
|
||||||
|
fs.get_folder_by_id(folder_uuid=folder.uuid, include_deleted=True).health_status
|
||||||
|
== FileSystemItemHealthStatus.RESTORING
|
||||||
|
)
|
||||||
|
assert fs.get_folder_by_id(folder_uuid=folder.uuid, include_deleted=True).deleted is False
|
||||||
|
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is None
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is True
|
||||||
|
|
||||||
|
fs.apply_timestep(timestep=1)
|
||||||
|
fs.apply_timestep(timestep=2)
|
||||||
|
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
||||||
|
assert (
|
||||||
|
fs.get_file(folder_name=folder.name, file_name=file.name).health_status
|
||||||
|
is not FileSystemItemHealthStatus.RESTORING
|
||||||
|
)
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).deleted is False
|
||||||
|
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is False
|
||||||
|
|
||||||
|
# corrupt folder
|
||||||
|
fs.apply_request(request=["folder", folder.uuid, "corrupt"])
|
||||||
|
assert fs.get_folder(folder_name=folder.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
||||||
|
|
||||||
|
# restore folder
|
||||||
|
fs.apply_request(request=["restore", "folder", folder.uuid])
|
||||||
|
fs.apply_timestep(timestep=0)
|
||||||
|
assert fs.get_folder(folder_name=folder.name).health_status == FileSystemItemHealthStatus.RESTORING
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).health_status == FileSystemItemHealthStatus.CORRUPT
|
||||||
|
|
||||||
|
fs.apply_timestep(timestep=1)
|
||||||
|
fs.apply_timestep(timestep=2)
|
||||||
|
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
||||||
|
assert (
|
||||||
|
fs.get_file(folder_name=folder.name, file_name=file.name).health_status
|
||||||
|
is not FileSystemItemHealthStatus.RESTORING
|
||||||
|
)
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name).deleted is False
|
||||||
|
|
||||||
|
assert fs.get_file(folder_name=folder.name, file_name=file.name) is not None
|
||||||
|
assert fs.get_file_by_id(folder_uuid=folder.uuid, file_uuid=file.uuid, include_deleted=True).deleted is False
|
||||||
|
|
||||||
|
|
||||||
def test_folder_corrupt_request(populated_file_system):
|
def test_folder_corrupt_request(populated_file_system):
|
||||||
|
|||||||
Reference in New Issue
Block a user