Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 440ca61

Browse files
committedJun 16, 2024··
[Python] Fix src/python_testing tests
1 parent 4df0874 commit 440ca61

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed
 

‎src/controller/python/chip/exceptions/__init__.py

+13
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
"UnknownCommand",
2727
]
2828

29+
from ..native import PyChipError
30+
2931

3032
class ChipStackException(Exception):
3133
pass
@@ -34,8 +36,19 @@ class ChipStackException(Exception):
3436
class ChipStackError(ChipStackException):
3537
def __init__(self, err, msg=None):
3638
self.err = err
39+
self.chip_error = None
3740
self.msg = msg if msg else "Chip Stack Error %d" % err
3841

42+
@classmethod
43+
def from_chip_error(cls, err: PyChipError):
44+
exc = cls(err, err.sdk_code, str(err))
45+
exc.chip_error = err
46+
return exc
47+
48+
@property
49+
def chip_error(self) -> PyChipError | None:
50+
return self.chip_error
51+
3952
def __str__(self):
4053
return self.msg
4154

‎src/controller/python/chip/native/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def sdk_code(self) -> int:
116116

117117
def to_exception(self) -> typing.Union[None, chip.exceptions.ChipStackError]:
118118
if not self.is_success:
119-
return chip.exceptions.ChipStackError(self.code, str(self))
119+
return chip.exceptions.ChipStackError.from_chip_error(self)
120120

121121
def __str__(self):
122122
buf = ctypes.create_string_buffer(256)

‎src/python_testing/TC_ACE_1_5.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ async def test_TC_ACE_1_5(self):
5454
params = self.openCommissioningWindow(self.th1, self.dut_node_id)
5555
self.print_step(2, "TH1 opens the commissioning window on the DUT")
5656

57-
errcode = self.th2.CommissionOnNetwork(
57+
self.th2.CommissionOnNetwork(
5858
nodeId=self.dut_node_id, setupPinCode=params.commissioningParameters.setupPinCode,
5959
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=params.randomDiscriminator)
60-
logging.info('Commissioning complete done. Successful? {}, errorcode = {}'.format(errcode.is_success, errcode))
60+
logging.info('Commissioning complete done. Successful.')
6161
self.print_step(3, "TH2 commissions DUT using admin node ID N2")
6262

6363
self.print_step(4, "TH2 reads its fabric index from the Operational Credentials cluster CurrentFabricIndex attribute")

‎src/python_testing/TC_CGEN_2_4.py

+12-9
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import chip.clusters as Clusters
2424
import chip.clusters.enum
2525
import chip.FabricAdmin
26+
from chip.exception import ChipStackError
2627
from chip import ChipDeviceCtrl
2728
from chip.ChipDeviceCtrl import CommissioningParameters
2829
from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
@@ -60,13 +61,15 @@ async def CommissionToStageSendCompleteAndCleanup(
6061
# This will run the commissioning up to the point where stage x is run and the
6162
# response is sent before the test commissioner simulates a failure
6263
self.th2.SetTestCommissionerPrematureCompleteAfter(stage)
63-
errcode = self.th2.CommissionOnNetwork(
64-
nodeId=self.dut_node_id, setupPinCode=params.setupPinCode,
65-
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=self.discriminator)
66-
logging.info('Commissioning complete done. Successful? {}, errorcode = {}'.format(errcode.is_success, errcode))
67-
asserts.assert_false(errcode.is_success, 'Commissioning complete did not error as expected')
68-
asserts.assert_true(errcode.sdk_part == expectedErrorPart, 'Unexpected error type returned from CommissioningComplete')
69-
asserts.assert_true(errcode.sdk_code == expectedErrCode, 'Unexpected error code returned from CommissioningComplete')
64+
try:
65+
self.th2.CommissionOnNetwork(
66+
nodeId=self.dut_node_id, setupPinCode=params.setupPinCode,
67+
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=self.discriminator)
68+
asserts.assert_false(True, 'Commissioning complete did not error as expected')
69+
except ChipStackError as e:
70+
logging.info('Commissioning complete done. Successful? {}, errorcode = {}'.format(False, e.chip_error.sdk_code))
71+
asserts.assert_true(e.chip_error.sdk_part == expectedErrorPart, 'Unexpected error type returned from CommissioningComplete')
72+
asserts.assert_true(e.chip_error.sdk_code == expectedErrCode, 'Unexpected error code returned from CommissioningComplete')
7073
revokeCmd = Clusters.AdministratorCommissioning.Commands.RevokeCommissioning()
7174
await self.th1.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=revokeCmd, timedRequestTimeoutMs=6000)
7275
# The failsafe cleanup is scheduled after the command completes, so give it a bit of time to do that
@@ -101,10 +104,10 @@ async def test_TC_CGEN_2_4(self):
101104

102105
logging.info('Step 16 - TH2 fully commissions the DUT')
103106
self.th2.ResetTestCommissioner()
104-
errcode = self.th2.CommissionOnNetwork(
107+
self.th2.CommissionOnNetwork(
105108
nodeId=self.dut_node_id, setupPinCode=params.setupPinCode,
106109
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=self.discriminator)
107-
logging.info('Commissioning complete done. Successful? {}, errorcode = {}'.format(errcode.is_success, errcode))
110+
logging.info('Commissioning complete done. Successful.')
108111

109112
logging.info('Step 17 - TH1 sends an arm failsafe')
110113
cmd = Clusters.GeneralCommissioning.Commands.ArmFailSafe(expiryLengthSeconds=900, breadcrumb=0)

0 commit comments

Comments
 (0)
Please sign in to comment.