Merge dev into feature/1716-accounts-and-groups
This commit is contained in:
@@ -112,7 +112,7 @@ def temp_session_path() -> Path:
|
||||
session_timestamp = datetime.now()
|
||||
date_dir = session_timestamp.strftime("%Y-%m-%d")
|
||||
session_path = session_timestamp.strftime("%Y-%m-%d_%H-%M-%S")
|
||||
session_path = Path(tempfile.gettempdir()) / "primaite" / date_dir / session_path
|
||||
session_path = Path(tempfile.gettempdir()) / "_primaite" / date_dir / session_path
|
||||
session_path.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
return session_path
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
from primaite.simulator.file_system.file_system import FileSystem
|
||||
from primaite.simulator.file_system.file_system_folder import FileSystemFolder
|
||||
|
||||
|
||||
def test_create_folder_and_file():
|
||||
"""Test creating a folder and a file."""
|
||||
file_system = FileSystem()
|
||||
folder = file_system.create_folder(folder_name="test_folder")
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
file = file_system.create_file(file_name="test_file", size=10, folder_uuid=folder.uuid)
|
||||
assert len(file_system.get_folder_by_id(folder.uuid).files) is 1
|
||||
|
||||
assert file_system.get_file_by_id(file.uuid).name is "test_file"
|
||||
assert file_system.get_file_by_id(file.uuid).size == 10
|
||||
|
||||
|
||||
def test_create_file():
|
||||
"""Tests that creating a file without a folder creates a folder and sets that as the file's parent."""
|
||||
file_system = FileSystem()
|
||||
|
||||
file = file_system.create_file(file_name="test_file", size=10)
|
||||
assert len(file_system.folders) is 1
|
||||
assert file_system.get_folder_by_name("root").get_file_by_id(file.uuid) is file
|
||||
|
||||
|
||||
def test_delete_file():
|
||||
"""Tests that a file can be deleted."""
|
||||
file_system = FileSystem()
|
||||
|
||||
file = file_system.create_file(file_name="test_file", size=10)
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
folder_id = list(file_system.folders.keys())[0]
|
||||
folder = file_system.get_folder_by_id(folder_id)
|
||||
assert folder.get_file_by_id(file.uuid) is file
|
||||
|
||||
file_system.delete_file(file=file)
|
||||
assert len(file_system.folders) is 1
|
||||
assert len(file_system.get_folder_by_id(folder.uuid).files) is 0
|
||||
|
||||
|
||||
def test_delete_non_existent_file():
|
||||
"""Tests deleting a non existent file."""
|
||||
file_system = FileSystem()
|
||||
|
||||
file = file_system.create_file(file_name="test_file", size=10)
|
||||
not_added_file = file_system.create_file(file_name="test_file", size=10)
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
folder_id = list(file_system.folders.keys())[0]
|
||||
folder = file_system.get_folder_by_id(folder_id)
|
||||
assert folder.get_file_by_id(file.uuid) is file
|
||||
|
||||
file_system.delete_file(file=not_added_file)
|
||||
assert len(file_system.folders) is 1
|
||||
assert len(file_system.get_folder_by_id(folder.uuid).files) is 1
|
||||
|
||||
|
||||
def test_delete_folder():
|
||||
file_system = FileSystem()
|
||||
folder = file_system.create_folder(folder_name="test_folder")
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
file_system.delete_folder(folder)
|
||||
assert len(file_system.folders) is 0
|
||||
|
||||
|
||||
def test_deleting_a_non_existent_folder():
|
||||
file_system = FileSystem()
|
||||
folder = file_system.create_folder(folder_name="test_folder")
|
||||
not_added_folder = FileSystemFolder(name="fake_folder")
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
file_system.delete_folder(not_added_folder)
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
|
||||
def test_move_file():
|
||||
"""Tests the file move function."""
|
||||
file_system = FileSystem()
|
||||
src_folder = file_system.create_folder(folder_name="test_folder_1")
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
target_folder = file_system.create_folder(folder_name="test_folder_2")
|
||||
assert len(file_system.folders) is 2
|
||||
|
||||
file = file_system.create_file(file_name="test_file", size=10, folder_uuid=src_folder.uuid)
|
||||
assert len(file_system.get_folder_by_id(src_folder.uuid).files) is 1
|
||||
assert len(file_system.get_folder_by_id(target_folder.uuid).files) is 0
|
||||
|
||||
file_system.move_file(file=file, src_folder=src_folder, target_folder=target_folder)
|
||||
|
||||
assert len(file_system.get_folder_by_id(src_folder.uuid).files) is 0
|
||||
assert len(file_system.get_folder_by_id(target_folder.uuid).files) is 1
|
||||
|
||||
|
||||
def test_copy_file():
|
||||
"""Tests the file copy function."""
|
||||
file_system = FileSystem()
|
||||
src_folder = file_system.create_folder(folder_name="test_folder_1")
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
target_folder = file_system.create_folder(folder_name="test_folder_2")
|
||||
assert len(file_system.folders) is 2
|
||||
|
||||
file = file_system.create_file(file_name="test_file", size=10, folder_uuid=src_folder.uuid)
|
||||
assert len(file_system.get_folder_by_id(src_folder.uuid).files) is 1
|
||||
assert len(file_system.get_folder_by_id(target_folder.uuid).files) is 0
|
||||
|
||||
file_system.copy_file(file=file, src_folder=src_folder, target_folder=target_folder)
|
||||
|
||||
assert len(file_system.get_folder_by_id(src_folder.uuid).files) is 1
|
||||
assert len(file_system.get_folder_by_id(target_folder.uuid).files) is 1
|
||||
|
||||
|
||||
def test_serialisation():
|
||||
"""Test to check that the object serialisation works correctly."""
|
||||
file_system = FileSystem()
|
||||
folder = file_system.create_folder(folder_name="test_folder")
|
||||
assert len(file_system.folders) is 1
|
||||
|
||||
file_system.create_file(file_name="test_file", size=10, folder_uuid=folder.uuid)
|
||||
assert file_system.get_folder_by_id(folder.uuid) is folder
|
||||
|
||||
serialised_file_sys = file_system.model_dump_json()
|
||||
deserialised_file_sys = FileSystem.model_validate_json(serialised_file_sys)
|
||||
|
||||
assert file_system.model_dump_json() == deserialised_file_sys.model_dump_json()
|
||||
@@ -0,0 +1,23 @@
|
||||
from primaite.simulator.file_system.file_system_file import FileSystemFile
|
||||
from primaite.simulator.file_system.file_system_file_type import FileSystemFileType
|
||||
|
||||
|
||||
def test_file_type():
|
||||
"""Tests tha the FileSystemFile type is set correctly."""
|
||||
file = FileSystemFile(name="test", file_type=FileSystemFileType.DOC)
|
||||
assert file.file_type is FileSystemFileType.DOC
|
||||
|
||||
|
||||
def test_get_size():
|
||||
"""Tests that the file size is being returned properly."""
|
||||
file = FileSystemFile(name="test", size=1.5)
|
||||
assert file.size == 1.5
|
||||
|
||||
|
||||
def test_serialisation():
|
||||
"""Test to check that the object serialisation works correctly."""
|
||||
file = FileSystemFile(name="test", size=1.5, file_type=FileSystemFileType.DOC)
|
||||
serialised_file = file.model_dump_json()
|
||||
deserialised_file = FileSystemFile.model_validate_json(serialised_file)
|
||||
|
||||
assert file.model_dump_json() == deserialised_file.model_dump_json()
|
||||
@@ -0,0 +1,75 @@
|
||||
from primaite.simulator.file_system.file_system_file import FileSystemFile
|
||||
from primaite.simulator.file_system.file_system_file_type import FileSystemFileType
|
||||
from primaite.simulator.file_system.file_system_folder import FileSystemFolder
|
||||
|
||||
|
||||
def test_adding_removing_file():
|
||||
"""Test the adding and removing of a file from a folder."""
|
||||
folder = FileSystemFolder(name="test")
|
||||
|
||||
file = FileSystemFile(name="test_file", size=10, file_type=FileSystemFileType.DOC)
|
||||
|
||||
folder.add_file(file)
|
||||
assert folder.size == 10
|
||||
assert len(folder.files) is 1
|
||||
|
||||
folder.remove_file(file)
|
||||
assert folder.size == 0
|
||||
assert len(folder.files) is 0
|
||||
|
||||
|
||||
def test_remove_non_existent_file():
|
||||
"""Test the removing of a file that does not exist."""
|
||||
folder = FileSystemFolder(name="test")
|
||||
|
||||
file = FileSystemFile(name="test_file", size=10, file_type=FileSystemFileType.DOC)
|
||||
not_added_file = FileSystemFile(name="fake_file", size=10, file_type=FileSystemFileType.DOC)
|
||||
|
||||
folder.add_file(file)
|
||||
assert folder.size == 10
|
||||
assert len(folder.files) is 1
|
||||
|
||||
folder.remove_file(not_added_file)
|
||||
assert folder.size == 10
|
||||
assert len(folder.files) is 1
|
||||
|
||||
|
||||
def test_get_file_by_id():
|
||||
"""Test to make sure that the correct file is returned."""
|
||||
folder = FileSystemFolder(name="test")
|
||||
|
||||
file = FileSystemFile(name="test_file", size=10, file_type=FileSystemFileType.DOC)
|
||||
file2 = FileSystemFile(name="test_file_2", size=10, file_type=FileSystemFileType.DOC)
|
||||
|
||||
folder.add_file(file)
|
||||
folder.add_file(file2)
|
||||
assert folder.size == 20
|
||||
assert len(folder.files) is 2
|
||||
|
||||
assert folder.get_file_by_id(file_id=file.uuid) is file
|
||||
|
||||
|
||||
def test_folder_quarantine_state():
|
||||
"""Tests the changing of folder quarantine status."""
|
||||
folder = FileSystemFolder(name="test")
|
||||
|
||||
assert folder.quarantine_status() is False
|
||||
|
||||
folder.quarantine()
|
||||
assert folder.quarantine_status() is True
|
||||
|
||||
folder.end_quarantine()
|
||||
assert folder.quarantine_status() is False
|
||||
|
||||
|
||||
def test_serialisation():
|
||||
"""Test to check that the object serialisation works correctly."""
|
||||
folder = FileSystemFolder(name="test")
|
||||
file = FileSystemFile(name="test_file", size=10, file_type=FileSystemFileType.DOC)
|
||||
folder.add_file(file)
|
||||
|
||||
serialised_folder = folder.model_dump_json()
|
||||
|
||||
deserialised_folder = FileSystemFolder.model_validate_json(serialised_folder)
|
||||
|
||||
assert folder.model_dump_json() == deserialised_folder.model_dump_json()
|
||||
@@ -42,8 +42,8 @@ class TestIsolatedSimComponent:
|
||||
return {}
|
||||
|
||||
comp = TestComponent(name="computer", size=(5, 10))
|
||||
dump = comp.model_dump()
|
||||
assert dump == {"name": "computer", "size": (5, 10)}
|
||||
dump = comp.model_dump_json()
|
||||
assert comp == TestComponent.model_validate_json(dump)
|
||||
|
||||
def test_apply_action(self):
|
||||
"""Validate that we can override apply_action behaviour and it updates the state of the component."""
|
||||
|
||||
Reference in New Issue
Block a user