45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
import sys
|
|
import unittest
|
|
from io import StringIO
|
|
from unittest.mock import patch, MagicMock
|
|
from pathlib import Path
|
|
from iottb.definitions import DEVICE_METADATA_FILE
|
|
import shutil
|
|
from iottb.__main__ import main
|
|
|
|
|
|
class TestDeviceMetadataFileCreation(unittest.TestCase):
|
|
def setUp(self):
|
|
self.test_dir = Path('/tmp/iottbtest/test_add_device')
|
|
self.test_dir.mkdir(parents=True, exist_ok=True)
|
|
# self.captured_output = StringIO()
|
|
# sys.stdout = self.captured_output
|
|
|
|
def tearDown(self):
|
|
# shutil.rmtree(str(self.test_dir))
|
|
for item in self.test_dir.iterdir():
|
|
if item.is_dir():
|
|
item.rmdir()
|
|
else:
|
|
item.unlink()
|
|
self.test_dir.rmdir()
|
|
# sys.stdout = sys.__stdout__
|
|
|
|
@patch('builtins.input', side_effect=['iPhone 14', 'y', 'y'])
|
|
def test_guided_device_setup(self, mock_input):
|
|
sys.argv = ['__main__.py', 'add', '--root_dir', str(self.test_dir), '--guided']
|
|
main()
|
|
expected_file = self.test_dir / DEVICE_METADATA_FILE
|
|
self.assertTrue(expected_file.exists()), f'Expected file not created: {expected_file}'
|
|
|
|
@patch('builtins.input', side_effect=['y']) # need mock_input else wont work
|
|
def test_device_setup(self, mock_input):
|
|
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()
|