Skip to content

Commit

Permalink
Included firmware revision and hw revision for wwan resource job (Bug…
Browse files Browse the repository at this point in the history
…fix) (#1168)

* Included fw and hw revision for wwan resource

included fw and hw revision for wwan resource job

* Fixed the test failed issue on CI

fixed the test failed issue on CI environment

* Fixed unittest failed on python3.5 issue

fixed unittest failed on python3.5 issue

* Fixed unit tests

fixed unit tests

* Fixed black coding style issue

fixed black coding style issue
  • Loading branch information
stanley31huang authored May 30, 2024
1 parent 769295a commit 67fbbb3
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 0 deletions.
16 changes: 16 additions & 0 deletions providers/base/bin/wwan_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,14 @@ def get_model_name(self, mm_id):
pi = self._modem_props_iface(mm_id)
return pi.Get(DBUS_MM1_IF_MODEM, "Model")

def get_firmware_revision(self, mm_id):
pi = self._modem_props_iface(mm_id)
return pi.Get(DBUS_MM1_IF_MODEM, "Revision").replace("\r\n", " ")

def get_hardware_revision(self, mm_id):
pi = self._modem_props_iface(mm_id)
return pi.Get(DBUS_MM1_IF_MODEM, "HardwareRevision")

def sim_present(self, mm_id):
pi = self._modem_props_iface(mm_id)
if pi.Get(DBUS_MM1_IF_MODEM, "Sim") != "/":
Expand Down Expand Up @@ -217,6 +225,12 @@ def get_model_name(self, mm_id):
def get_primary_port(self, mm_id):
return _value_from_table("modem", mm_id, "primary port")

def get_firmware_revision(self, mm_id):
return _value_from_table("modem", mm_id, "firmware revision")

def get_hardware_revision(self, mm_id):
return _value_from_table("modem", mm_id, "h/w revision")

def sim_present(self, mm_id):
if self._get_sim_id(mm_id) is None:
return False
Expand Down Expand Up @@ -384,6 +398,8 @@ def invoked(self):
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()


Expand Down
111 changes: 111 additions & 0 deletions providers/base/tests/test_wwan_tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
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_tests


class TestMMDbus(unittest.TestCase):

@patch("wwan_tests.MMDbus.__init__", Mock(return_value=None))
def test_get_firmware_revision(self):
fw_revision_pattern = "81600.0000.00.29.21.24_GC\r\nD24"
mock_get = Mock(return_value=fw_revision_pattern)
obj_mmdbus = wwan_tests.MMDbus()
obj_mmdbus._modem_props_iface = Mock(return_value=Mock(Get=mock_get))

resp = obj_mmdbus.get_firmware_revision(1)

self.assertEqual(obj_mmdbus.__init__.call_count, 1)
obj_mmdbus._modem_props_iface.assert_called_with(1)
mock_get.assert_called_with(wwan_tests.DBUS_MM1_IF_MODEM, "Revision")
self.assertEqual(resp, "81600.0000.00.29.21.24_GC D24")

@patch("wwan_tests.MMDbus.__init__", Mock(return_value=None))
def test_get_hardware_revision(self):
hw_revision_pattern = "V1.0.6"
mock_get = Mock(return_value=hw_revision_pattern)
obj_mmdbus = wwan_tests.MMDbus()
obj_mmdbus._modem_props_iface = Mock(return_value=Mock(Get=mock_get))

resp = obj_mmdbus.get_hardware_revision(1)

self.assertEqual(obj_mmdbus.__init__.call_count, 1)
obj_mmdbus._modem_props_iface.assert_called_with(1)
mock_get.assert_called_with(
wwan_tests.DBUS_MM1_IF_MODEM, "HardwareRevision"
)
self.assertEqual(resp, hw_revision_pattern)


class TestMMCli(unittest.TestCase):

@patch("wwan_tests.MMCLI.__init__", Mock(return_value=None))
@patch("wwan_tests._value_from_table")
def test_get_firmware_revision(self, mock_value_from_table):
fw_revision_pattern = "81600.0000.00.29.21.24_GC"
obj_mmcli = wwan_tests.MMCLI()
mock_value_from_table.return_value = fw_revision_pattern

resp = obj_mmcli.get_firmware_revision(1)

self.assertEqual(obj_mmcli.__init__.call_count, 1)
mock_value_from_table.assert_called_with(
"modem", 1, "firmware revision"
)
self.assertEqual(resp, fw_revision_pattern)

@patch("wwan_tests.MMCLI.__init__", Mock(return_value=None))
@patch("wwan_tests._value_from_table")
def test_get_hardware_revision(self, mock_value_from_table):
hw_revision_pattern = "81600.0000.00.29.21.24_GC"
obj_mmcli = wwan_tests.MMCLI()
mock_value_from_table.return_value = hw_revision_pattern

resp = obj_mmcli.get_hardware_revision(1)

self.assertEqual(obj_mmcli.__init__.call_count, 1)
mock_value_from_table.assert_called_with("modem", 1, "h/w revision")
self.assertEqual(resp, hw_revision_pattern)


class TestResources(unittest.TestCase):

@patch("wwan_tests.MMCLI")
def test_invoked_with_mmcli(self, mock_mmcli):
mmcli_instance = Mock()
mmcli_instance.get_modem_ids.return_value = ["test"]
mock_mmcli.return_value = mmcli_instance

sys.argv = ["wwan_tests.py", "resources", "--use-cli"]

with redirect_stdout(StringIO()):
wwan_tests.Resources().invoked()
self.assertTrue(mock_mmcli.called)
self.assertTrue(mmcli_instance.get_equipment_id.called)
self.assertTrue(mmcli_instance.get_manufacturer.called)
self.assertTrue(mmcli_instance.get_model_name.called)
self.assertTrue(mmcli_instance.get_firmware_revision.called)
self.assertTrue(mmcli_instance.get_hardware_revision.called)

@patch("wwan_tests.MMDbus")
def test_invoked_with_mmdbus(self, mock_mmdbus):
mmdbus_instance = Mock()
mmdbus_instance.get_modem_ids.return_value = ["test"]
mock_mmdbus.return_value = mmdbus_instance

sys.argv = ["wwan_tests.py", "resources"]

with redirect_stdout(StringIO()):
wwan_tests.Resources().invoked()
self.assertTrue(mock_mmdbus.called)
self.assertTrue(mmdbus_instance.get_equipment_id.called)
self.assertTrue(mmdbus_instance.get_manufacturer.called)
self.assertTrue(mmdbus_instance.get_model_name.called)
self.assertTrue(mmdbus_instance.get_firmware_revision.called)
self.assertTrue(mmdbus_instance.get_hardware_revision.called)

0 comments on commit 67fbbb3

Please sign in to comment.