From 2e95bd2fd2e502a1558eef41ac336e6c0f246838 Mon Sep 17 00:00:00 2001 From: Sebastian Lenzlinger Date: Wed, 8 May 2024 02:52:37 +0200 Subject: [PATCH] Fix places where quote replacement lead to issues. --- code/iottb/models/capture_metadata_model.py | 4 ++-- code/iottb/subcommands/capture.py | 6 +++--- code/iottb/utils/tcpdump_utils.py | 6 +++--- code/tests/subcommands/test_add_device.py | 6 ++++++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/code/iottb/models/capture_metadata_model.py b/code/iottb/models/capture_metadata_model.py index ba2fcd1..4213212 100644 --- a/code/iottb/models/capture_metadata_model.py +++ b/code/iottb/models/capture_metadata_model.py @@ -2,7 +2,7 @@ import json import uuid from datetime import datetime from pathlib import Path -from typing import Optional, Any, OrderedDict +from typing import Optional from iottb.definitions import ReturnCodes, CAPTURE_METADATA_FILE from iottb.models.device_metadata_model import DeviceMetadata @@ -36,7 +36,7 @@ class CaptureMetadata: app_version: Optional[str] = None firmware_version: Optional[str] = None - def __init__(self, device_metadata: DeviceMetadata, capture_dir: Path, /, **data: Any): + def __init__(self, device_metadata: DeviceMetadata, capture_dir: Path): logger.info(f'Creating CaptureMetadata model from DeviceMetadata: {device_metadata}') self.device_metadata = device_metadata diff --git a/code/iottb/subcommands/capture.py b/code/iottb/subcommands/capture.py index a2020f7..b1d76a9 100644 --- a/code/iottb/subcommands/capture.py +++ b/code/iottb/subcommands/capture.py @@ -56,14 +56,14 @@ def handle_metadata(): if response.lower() == 'y': start_guided_device_root_dir_setup() else: - print(''iottb init-device-root --help' for more information.') + print('\'iottb init-device-root --help\' for more information.') exit(ReturnCodes.ABORTED) # device_id = handle_capture_metadata() return ReturnCodes.SUCCESS def get_device_metadata_from_file(device_metadata_filename: Path) -> str: - assert device_metadata_filename.is_file(), f'Device metadata file '{device_metadata_filename} does not exist' + assert device_metadata_filename.is_file(), f'Device metadata file f"{device_metadata_filename}" does not exist' device_metadata = DeviceMetadata.load_from_json(device_metadata_filename) return device_metadata @@ -82,7 +82,7 @@ def run_tcpdump(cmd): def handle_capture(args): assert args.device_root is not None, f'Device root directory is required' - assert dir_contains_device_metadata(args.device_root), f'Device metadata file '{args.device_root}' does not exist' + assert dir_contains_device_metadata(args.device_root), f'Device metadata file \'{args.device_root}\' does not exist' # get device metadata if args.safe and not dir_contains_device_metadata(args.device_root): print(f'Supplied folder contains no device metadata. ' diff --git a/code/iottb/utils/tcpdump_utils.py b/code/iottb/utils/tcpdump_utils.py index ff28cf6..d9df1d5 100644 --- a/code/iottb/utils/tcpdump_utils.py +++ b/code/iottb/utils/tcpdump_utils.py @@ -5,18 +5,18 @@ from typing import Optional def check_installed() -> bool: - '''Check if tcpdump is installed and available on the system path.''' + """Check if tcpdump is installed and available on the system path.""" return shutil.which('tcpdump') is not None def ensure_installed(): - '''Ensure that tcpdump is installed, raise an error if not.''' + """Ensure that tcpdump is installed, raise an error if not.""" if not check_installed(): raise RuntimeError('tcpdump is not installed. Please install it to continue.') def list_interfaces() -> str: - '''List available network interfaces using tcpdump.''' + """List available network interfaces using tcpdump.""" ensure_installed() try: result = subprocess.run(['tcpdump', '--list-interfaces'], capture_output=True, text=True, check=True) diff --git a/code/tests/subcommands/test_add_device.py b/code/tests/subcommands/test_add_device.py index 206d157..1c82ec9 100644 --- a/code/tests/subcommands/test_add_device.py +++ b/code/tests/subcommands/test_add_device.py @@ -32,6 +32,12 @@ class TestDeviceSetup(unittest.TestCase): expected_file = self.test_dir / DEVICE_METADATA_FILE self.assertTrue(expected_file.exists()), f'Expected file not created: {expected_file}' + def test_device_setup(self): + sys.argv = ['__main__.py', 'add', '--root_dir', str(self.test_dir), '--name', 'iPhone 14'] + main() + expected_file = self.test_dir / DEVICE_METADATA_FILE + self.assertTrue(expected_file.exists()), f'Expected file not created: {expected_file}' + if __name__ == '__main__': unittest.main()