Fix places where quote replacement lead to issues.

This commit is contained in:
Sebastian Lenzlinger 2024-05-08 02:52:37 +02:00
parent e569eb3e5b
commit 2e95bd2fd2
4 changed files with 14 additions and 8 deletions

View File

@ -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

View File

@ -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. '

View File

@ -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)

View File

@ -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()