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 import uuid
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Optional, Any, OrderedDict from typing import Optional
from iottb.definitions import ReturnCodes, CAPTURE_METADATA_FILE from iottb.definitions import ReturnCodes, CAPTURE_METADATA_FILE
from iottb.models.device_metadata_model import DeviceMetadata from iottb.models.device_metadata_model import DeviceMetadata
@ -36,7 +36,7 @@ class CaptureMetadata:
app_version: Optional[str] = None app_version: Optional[str] = None
firmware_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}') logger.info(f'Creating CaptureMetadata model from DeviceMetadata: {device_metadata}')
self.device_metadata = device_metadata self.device_metadata = device_metadata

View File

@ -56,14 +56,14 @@ def handle_metadata():
if response.lower() == 'y': if response.lower() == 'y':
start_guided_device_root_dir_setup() start_guided_device_root_dir_setup()
else: else:
print(''iottb init-device-root --help' for more information.') print('\'iottb init-device-root --help\' for more information.')
exit(ReturnCodes.ABORTED) exit(ReturnCodes.ABORTED)
# device_id = handle_capture_metadata() # device_id = handle_capture_metadata()
return ReturnCodes.SUCCESS return ReturnCodes.SUCCESS
def get_device_metadata_from_file(device_metadata_filename: Path) -> str: 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) device_metadata = DeviceMetadata.load_from_json(device_metadata_filename)
return device_metadata return device_metadata
@ -82,7 +82,7 @@ def run_tcpdump(cmd):
def handle_capture(args): def handle_capture(args):
assert args.device_root is not None, f'Device root directory is required' 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 # get device metadata
if args.safe and not dir_contains_device_metadata(args.device_root): if args.safe and not dir_contains_device_metadata(args.device_root):
print(f'Supplied folder contains no device metadata. ' print(f'Supplied folder contains no device metadata. '

View File

@ -5,18 +5,18 @@ from typing import Optional
def check_installed() -> bool: 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 return shutil.which('tcpdump') is not None
def ensure_installed(): 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(): if not check_installed():
raise RuntimeError('tcpdump is not installed. Please install it to continue.') raise RuntimeError('tcpdump is not installed. Please install it to continue.')
def list_interfaces() -> str: def list_interfaces() -> str:
'''List available network interfaces using tcpdump.''' """List available network interfaces using tcpdump."""
ensure_installed() ensure_installed()
try: try:
result = subprocess.run(['tcpdump', '--list-interfaces'], capture_output=True, text=True, check=True) 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 expected_file = self.test_dir / DEVICE_METADATA_FILE
self.assertTrue(expected_file.exists()), f'Expected file not created: {expected_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__': if __name__ == '__main__':
unittest.main() unittest.main()