Fix inconsisent filesytem tests on some platforms

This commit is contained in:
Donncha Ó Cearbhaill
2023-07-31 11:45:53 +02:00
parent 4c175530a8
commit ae0e470c56
2 changed files with 23 additions and 4 deletions

View File

@@ -2,25 +2,32 @@
# Copyright (c) 2021-2023 Claudio Guarnieri.
# Use of this software is governed by the MVT License 1.1 that can be found at
# https://license.mvt.re/1.1/
import pytest
import logging
from mvt.common.indicators import Indicators
from mvt.common.module import run_module
from mvt.ios.modules.fs.filesystem import Filesystem
from ..utils import get_ios_backup_folder
from ..utils import get_ios_backup_folder, delete_tmp_db_files
@pytest.fixture()
def cleanup_tmp_artifacts():
ios_backup_folder = get_ios_backup_folder()
delete_tmp_db_files(ios_backup_folder)
return
class TestFilesystem:
def test_filesystem(self):
def test_filesystem(self, cleanup_tmp_artifacts):
m = Filesystem(target_path=get_ios_backup_folder())
run_module(m)
assert len(m.results) == 14
assert len(m.timeline) == 14
assert len(m.detected) == 0
def test_detection(self, indicator_file):
def test_detection(self, indicator_file, cleanup_tmp_artifacts):
m = Filesystem(target_path=get_ios_backup_folder())
ind = Indicators(log=logging.getLogger())
ind.parse_stix2(indicator_file)

View File

@@ -37,6 +37,18 @@ def get_indicator_file():
print("PYTEST env", os.getenv("PYTEST_CURRENT_TEST"))
def delete_tmp_db_files(file_path):
"""
Remove Sqlite temporary files that appear on some platforms
These can cause filesystem tests to fail depending on the OS.
"""
for file_name in ["Manifest.db-wal", "Manifest.db-shm"]:
path = os.path.join(file_path, file_name)
if os.path.isfile(path):
os.remove(path)
def list_files(path: str):
files = []
parent_path = Path(path).absolute().parent.as_posix()