Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion sonic_platform_base/sonic_xcvr/cdb/cdb_fw.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@ def __init__(self, reader, writer, mem_map):
self.start_payload_size = 0
self.is_lpl_only = False
self.rw_length_ext = 0
assert True == self.initFwHandler(), "Failed to initialize firmware handler"

if not self.initFwHandler():
# Don’t kill the whole xcvr API if FW mgmt isn’t supported
print("Warning: CDB firmware handler init failed; disabling FW mgmt for this module")
# Leave defaults; FW-mgmt calls can just return failure later.
return

def initFwHandler(self):
"""
Expand Down
18 changes: 9 additions & 9 deletions tests/sonic_xcvr/test_cdb_fw.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ def test_init_success(self):
# Manually call initFwHandler
assert handler.initFwHandler() == True

def test_init_failure_assertion(self):
"""Test initialization failure raises assertion"""
def test_init_failure_graceful(self):
"""Test initialization failure is handled gracefully"""
with patch.object(CdbFwHandler, 'initFwHandler', return_value=False):
with pytest.raises(AssertionError, match="Failed to initialize firmware handler"):
CdbFwHandler(self.reader, self.writer, self.mem_map)
handler = CdbFwHandler(self.reader, self.writer, self.mem_map)
assert handler is not None

def test_initFwHandler_send_cmd_failure(self):
"""Test initFwHandler when send_cmd fails"""
Expand All @@ -54,11 +54,11 @@ def test_initFwHandler_send_cmd_failure(self):
handler.start_payload_size = 0
handler.is_lpl_only = False
handler.rw_length_ext = 0

handler.send_cmd = MagicMock(return_value=False)

result = handler.initFwHandler()

assert result == True

def test_initFwHandler_read_reply_none(self):
Expand All @@ -69,10 +69,10 @@ def test_initFwHandler_read_reply_none(self):
handler.start_payload_size = 0
handler.is_lpl_only = False
handler.rw_length_ext = 0

handler.send_cmd = MagicMock(return_value=True)
handler.read_reply = MagicMock(return_value=None)

result = handler.initFwHandler()

assert result == True
Expand Down
Loading