UT: Move a ransomware test to integration_tests
This commit is contained in:
parent
baa1687487
commit
b5c6240190
|
@ -0,0 +1,6 @@
|
|||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture(params=[".m0nk3y", ".test", ""], ids=["monkeyext", "testext", "noext"])
|
||||
def ransomware_file_extension(request):
|
||||
return request.param
|
|
@ -0,0 +1,29 @@
|
|||
import threading
|
||||
|
||||
import pytest
|
||||
|
||||
import infection_monkey.payload.ransomware.ransomware_builder as ransomware_builder
|
||||
from monkey.common.agent_configuration.default_agent_configuration import RANSOMWARE_OPTIONS
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def ransomware_options_dict(ransomware_file_extension):
|
||||
options = RANSOMWARE_OPTIONS
|
||||
options["encryption"]["file_extension"] = ransomware_file_extension
|
||||
return options
|
||||
|
||||
|
||||
def test_uses_correct_extension(ransomware_options_dict, tmp_path, ransomware_file_extension):
|
||||
target_dir = tmp_path
|
||||
ransomware_directories = ransomware_options_dict["encryption"]["directories"]
|
||||
ransomware_directories["linux_target_dir"] = target_dir
|
||||
ransomware_directories["windows_target_dir"] = target_dir
|
||||
ransomware = ransomware_builder.build_ransomware(ransomware_options_dict)
|
||||
file = target_dir / "file.txt"
|
||||
file.write_text("Do your worst!")
|
||||
|
||||
ransomware.run(threading.Event())
|
||||
|
||||
# Verify that the file has been encrypted with the correct ending
|
||||
encrypted_file = file.with_suffix(file.suffix + ransomware_file_extension)
|
||||
assert encrypted_file.is_file()
|
|
@ -11,11 +11,6 @@ def patched_home_env(monkeypatch, tmp_path):
|
|||
return tmp_path
|
||||
|
||||
|
||||
@pytest.fixture(params=[".m0nk3y", ".test", ""], ids=["monkeyext", "testext", "noext"])
|
||||
def ransomware_file_extension(request):
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def ransomware_test_data(data_for_tests_dir):
|
||||
return Path(data_for_tests_dir) / "ransomware_targets"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import tempfile
|
||||
import threading
|
||||
from pathlib import Path, PurePosixPath
|
||||
from pathlib import PurePosixPath
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
import pytest
|
||||
|
@ -10,11 +9,9 @@ from tests.unit_tests.infection_monkey.payload.ransomware.ransomware_target_file
|
|||
TEST_KEYBOARD_TXT,
|
||||
)
|
||||
|
||||
import infection_monkey.payload.ransomware.ransomware_builder as ransomware_builder
|
||||
from infection_monkey.payload.ransomware.consts import README_FILE_NAME, README_SRC
|
||||
from infection_monkey.payload.ransomware.ransomware import Ransomware
|
||||
from infection_monkey.payload.ransomware.ransomware_options import RansomwareOptions
|
||||
from monkey.common.agent_configuration.default_agent_configuration import RANSOMWARE_OPTIONS
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -55,19 +52,6 @@ def ransomware_options(ransomware_file_extension, ransomware_test_data):
|
|||
return RansomwareOptionsStub(True, False, ransomware_file_extension, ransomware_test_data)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def ransomware_options_dict(ransomware_file_extension):
|
||||
options = RANSOMWARE_OPTIONS
|
||||
options["encryption"]["file_extension"] = ransomware_file_extension
|
||||
return options
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def encrypt_target_directory():
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
yield Path(tmpdir)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_file_encryptor():
|
||||
return MagicMock()
|
||||
|
@ -235,20 +219,3 @@ def test_leave_readme_exceptions_handled(build_ransomware, ransomware_options):
|
|||
|
||||
# Test will fail if exception is raised and not handled
|
||||
ransomware.run(threading.Event())
|
||||
|
||||
|
||||
def test_uses_correct_extension(
|
||||
ransomware_options_dict, encrypt_target_directory, ransomware_file_extension
|
||||
):
|
||||
ransomware_directories = ransomware_options_dict["encryption"]["directories"]
|
||||
ransomware_directories["linux_target_dir"] = encrypt_target_directory
|
||||
ransomware_directories["windows_target_dir"] = encrypt_target_directory
|
||||
ransomware = ransomware_builder.build_ransomware(ransomware_options_dict)
|
||||
file = encrypt_target_directory / "file.txt"
|
||||
file.write_text("Do your worst!")
|
||||
|
||||
ransomware.run(threading.Event())
|
||||
|
||||
# Verify that the file has been encrypted with the correct ending
|
||||
encrypted_file = file.with_suffix(file.suffix + ransomware_file_extension)
|
||||
assert encrypted_file.is_file()
|
||||
|
|
|
@ -20,7 +20,7 @@ log_cli = 1
|
|||
log_cli_level = "DEBUG"
|
||||
log_cli_format = "%(asctime)s [%(levelname)s] %(module)s.%(funcName)s.%(lineno)d: %(message)s"
|
||||
log_cli_date_format = "%H:%M:%S"
|
||||
addopts = "-v --capture=sys tests/unit_tests"
|
||||
addopts = "-v --capture=sys tests/unit_tests tests/integration_tests"
|
||||
norecursedirs = "node_modules dist"
|
||||
markers = ["slow: mark test as slow"]
|
||||
pythonpath = "./monkey"
|
||||
|
|
Loading…
Reference in New Issue