#1947: added ability for files and folders to be scanned, corrupted and repaired
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
|
||||
from primaite.simulator.file_system.file_system import FileSystem
|
||||
from primaite.simulator.file_system.file_system import File, FileSystem, FileSystemItemStatus, Folder
|
||||
from primaite.simulator.file_system.file_type import FileType
|
||||
|
||||
|
||||
@@ -135,6 +135,40 @@ def test_folder_quarantine_state(file_system):
|
||||
assert folder.quarantine_status() is False
|
||||
|
||||
|
||||
def test_file_corrupt_repair(file_system):
|
||||
"""Test the ability to corrupt and repair files."""
|
||||
folder: Folder = file_system.create_folder(folder_name="test_folder")
|
||||
file: File = file_system.create_file(file_name="test_file.txt", folder_name="test_folder")
|
||||
|
||||
file.corrupt()
|
||||
|
||||
assert folder.status == FileSystemItemStatus.GOOD
|
||||
assert file.status == FileSystemItemStatus.CORRUPTED
|
||||
|
||||
file.repair()
|
||||
|
||||
assert folder.status == FileSystemItemStatus.GOOD
|
||||
assert file.status == FileSystemItemStatus.GOOD
|
||||
|
||||
|
||||
def test_folder_corrupt_repair(file_system):
|
||||
"""Test the ability to corrupt and repair folders."""
|
||||
folder: Folder = file_system.create_folder(folder_name="test_folder")
|
||||
file_system.create_file(file_name="test_file.txt", folder_name="test_folder")
|
||||
|
||||
folder.corrupt()
|
||||
|
||||
file = folder.get_file(file_name="test_file.txt")
|
||||
assert folder.status == FileSystemItemStatus.CORRUPTED
|
||||
assert file.status == FileSystemItemStatus.CORRUPTED
|
||||
|
||||
folder.repair()
|
||||
|
||||
file = folder.get_file(file_name="test_file.txt")
|
||||
assert folder.status == FileSystemItemStatus.GOOD
|
||||
assert file.status == FileSystemItemStatus.GOOD
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Skipping until we tackle serialisation")
|
||||
def test_serialisation(file_system):
|
||||
"""Test to check that the object serialisation works correctly."""
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
from primaite.simulator.network.transmission.transport_layer import Port
|
||||
from primaite.simulator.system.core.sys_log import SysLog
|
||||
from primaite.simulator.system.services.service import Service, ServiceOperatingState
|
||||
|
||||
|
||||
class TestService(Service):
|
||||
"""Test Service class"""
|
||||
|
||||
def receive(self, payload: Any, session_id: str, **kwargs) -> bool:
|
||||
pass
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def service(file_system) -> TestService:
|
||||
return TestService(
|
||||
name="TestService", port=Port.ARP, file_system=file_system, sys_log=SysLog(hostname="test_service")
|
||||
)
|
||||
|
||||
|
||||
def test_scan(service):
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
assert service.visible_operating_state == ServiceOperatingState.STOPPED
|
||||
|
||||
service.start()
|
||||
assert service.operating_state == ServiceOperatingState.RUNNING
|
||||
assert service.visible_operating_state == ServiceOperatingState.STOPPED
|
||||
|
||||
service.scan()
|
||||
assert service.operating_state == ServiceOperatingState.RUNNING
|
||||
assert service.visible_operating_state == ServiceOperatingState.RUNNING
|
||||
|
||||
|
||||
def test_start_service(service):
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
service.start()
|
||||
|
||||
assert service.operating_state == ServiceOperatingState.RUNNING
|
||||
|
||||
|
||||
def test_stop_service(service):
|
||||
service.start()
|
||||
assert service.operating_state == ServiceOperatingState.RUNNING
|
||||
|
||||
service.stop()
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
|
||||
|
||||
def test_pause_and_resume_service(service):
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
service.resume()
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
|
||||
service.start()
|
||||
service.pause()
|
||||
assert service.operating_state == ServiceOperatingState.PAUSED
|
||||
|
||||
service.resume()
|
||||
assert service.operating_state == ServiceOperatingState.RUNNING
|
||||
|
||||
|
||||
def test_restart(service):
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
service.restart()
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
|
||||
service.start()
|
||||
service.restart()
|
||||
assert service.operating_state == ServiceOperatingState.RESTARTING
|
||||
|
||||
|
||||
def test_enable_disable(service):
|
||||
service.disable()
|
||||
assert service.operating_state == ServiceOperatingState.DISABLED
|
||||
|
||||
service.enable()
|
||||
assert service.operating_state == ServiceOperatingState.STOPPED
|
||||
Reference in New Issue
Block a user