Skip to content

Commit

Permalink
Add unit test and modified resource scripts
Browse files Browse the repository at this point in the history
Modified the resource scripts and add unit tests
  • Loading branch information
stanley31huang committed Jun 24, 2024
1 parent dcecf29 commit 80a3227
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 14 deletions.
32 changes: 18 additions & 14 deletions providers/base/bin/wwan_resource_with_iterations.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,20 @@
from wwan_tests import MMDbus


def dump_wwan_resource(iterations, use_cli):

if use_cli:
mm = MMCLI()
else:
mm = MMDbus()

def dump_wwan_resource(mm_obj, iterations):
for i in range(1, iterations + 1):
for m in mm.get_modem_ids():
for m in mm_obj.get_modem_ids():
print("iteration: {}".format(i))
print("mm_id: {}".format(m))
print("hw_id: {}".format(mm.get_equipment_id(m)))
print("manufacturer: {}".format(mm.get_manufacturer(m)))
print("model: {}".format(mm.get_model_name(m)))
print("firmware_revision: {}".format(mm.get_firmware_revision(m)))
print("hardware_revision: {}".format(mm.get_hardware_revision(m)))
print("hw_id: {}".format(mm_obj.get_equipment_id(m)))
print("manufacturer: {}".format(mm_obj.get_manufacturer(m)))
print("model: {}".format(mm_obj.get_model_name(m)))
print(
"firmware_revision: {}".format(mm_obj.get_firmware_revision(m))
)
print(
"hardware_revision: {}".format(mm_obj.get_hardware_revision(m))
)
print()


Expand All @@ -64,4 +62,10 @@ def register_arguments():
if __name__ == "__main__":

args = register_arguments()
dump_wwan_resource(args.iteration, args.use_cli)

if args.use_cli:
mm_obj = MMCLI()
else:
mm_obj = MMDbus()

dump_wwan_resource(mm_obj, args.iteration)
54 changes: 54 additions & 0 deletions providers/base/tests/test_wwan_resource_with_iterations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import unittest
import sys
from unittest.mock import patch, call, Mock, MagicMock
from io import StringIO
from contextlib import redirect_stdout

# Mock the dbus module due to is is not available on CI testing environment
sys.modules["dbus"] = MagicMock()

import wwan_resource_with_iterations


class TestMultipleResources(unittest.TestCase):

@patch("builtins.print")
def test_dump_resource(self, mock_print):
mock_instance = Mock()
mock_instance.return_value = ["test"]

mock_mm = Mock()
mock_mm.get_modem_ids = mock_instance
mock_mm.get_equipment_id = mock_instance
mock_mm.get_manufacturer = mock_instance
mock_mm.get_model_name = mock_instance
mock_mm.get_firmware_revision = mock_instance
mock_mm.get_hardware_revision = mock_instance

with redirect_stdout(StringIO()):
wwan_resource_with_iterations.dump_wwan_resource(mock_mm, 2)
self.assertTrue(mock_mm.get_equipment_id.called)
self.assertTrue(mock_mm.get_manufacturer.called)
self.assertTrue(mock_mm.get_model_name.called)
self.assertTrue(mock_mm.get_firmware_revision.called)
self.assertTrue(mock_mm.get_hardware_revision.called)
self.assertEqual(mock_print.call_count, 16)

def test_parser_mmcli(self):
sys.argv = [
"wwan_resource_with_iterations.py",
"-i",
"5",
"--use-cli",
]
args = wwan_resource_with_iterations.register_arguments()

self.assertEqual(args.iteration, 5)
self.assertEqual(args.use_cli, True)

def test_parser_mmdbus(self):
sys.argv = ["wwan_resource_with_iterations.py"]
args = wwan_resource_with_iterations.register_arguments()

self.assertEqual(args.iteration, 3)
self.assertEqual(args.use_cli, False)

0 comments on commit 80a3227

Please sign in to comment.