Skip to content

Commit af74080

Browse files
committedJun 18, 2024
[Python] Convert tests in src/python_testing/ to asyncio
1 parent ff8190d commit af74080

9 files changed

+39
-39
lines changed
 

‎src/python_testing/TC_ACE_1_5.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ async def test_TC_ACE_1_5(self):
5151
self.th2 = new_fabric_admin.NewController(nodeId=TH2_nodeid,
5252
paaTrustStorePath=str(self.matter_test_config.paa_trust_store_path))
5353

54-
params = self.openCommissioningWindow(self.th1, self.dut_node_id)
54+
params = await self.openCommissioningWindow(self.th1, self.dut_node_id)
5555
self.print_step(2, "TH1 opens the commissioning window on the DUT")
5656

57-
self.th2.CommissionOnNetwork(
57+
await self.th2.CommissionOnNetwork(
5858
nodeId=self.dut_node_id, setupPinCode=params.commissioningParameters.setupPinCode,
5959
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=params.randomDiscriminator)
6060
logging.info('Commissioning complete done. Successful.')

‎src/python_testing/TC_CGEN_2_4.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@
4242

4343
class TC_CGEN_2_4(MatterBaseTest):
4444

45-
def OpenCommissioningWindow(self) -> CommissioningParameters:
45+
async def OpenCommissioningWindow(self) -> CommissioningParameters:
4646
try:
47-
params = self.th1.OpenCommissioningWindow(
47+
params = await self.th1.OpenCommissioningWindow(
4848
nodeid=self.dut_node_id, timeout=600, iteration=10000, discriminator=self.discriminator, option=1)
4949
return params
5050

@@ -56,7 +56,7 @@ async def CommissionToStageSendCompleteAndCleanup(
5656
self, stage: int, expectedErrorPart: chip.native.ErrorSDKPart, expectedErrCode: int):
5757

5858
logging.info("-----------------Fail on step {}-------------------------".format(stage))
59-
params = self.OpenCommissioningWindow()
59+
params = await self.OpenCommissioningWindow()
6060
self.th2.ResetTestCommissioner()
6161
# This will run the commissioning up to the point where stage x is run and the
6262
# response is sent before the test commissioner simulates a failure
@@ -99,7 +99,7 @@ async def test_TC_CGEN_2_4(self):
9999
await self.CommissionToStageSendCompleteAndCleanup(kSendNOC, chip.native.ErrorSDKPart.IM_CLUSTER_STATUS, 0x02)
100100

101101
logging.info('Step 15 - TH1 opens a commissioning window')
102-
params = self.OpenCommissioningWindow()
102+
params = await self.OpenCommissioningWindow()
103103

104104
logging.info('Step 16 - TH2 fully commissions the DUT')
105105
self.th2.ResetTestCommissioner()

‎src/python_testing/TC_DA_1_5.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -162,15 +162,15 @@ async def test_TC_DA_1_5(self):
162162
await self.send_single_cmd(cmd=gcomm.Commands.ArmFailSafe(expiryLengthSeconds=0, breadcrumb=1))
163163

164164
self.print_step(13, "Open commissioning window")
165-
params = self.default_controller.OpenCommissioningWindow(
165+
params = await self.default_controller.OpenCommissioningWindow(
166166
nodeid=self.dut_node_id, timeout=600, iteration=10000, discriminator=1234, option=1)
167167

168168
self.print_step(14, "Commission to TH2")
169169
new_certificate_authority = self.certificate_authority_manager.NewCertificateAuthority()
170170
new_fabric_admin = new_certificate_authority.NewFabricAdmin(vendorId=0xFFF1, fabricId=2)
171171
TH2 = new_fabric_admin.NewController(nodeId=112233)
172172

173-
TH2.CommissionOnNetwork(
173+
await TH2.CommissionOnNetwork(
174174
nodeId=self.dut_node_id, setupPinCode=params.setupPinCode,
175175
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=1234)
176176

‎src/python_testing/TC_IDM_1_2.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,8 @@ async def test_TC_IDM_1_2(self):
201201
device = next(filter(lambda d: d.commissioningMode == 2 and d.longDiscriminator == discriminator, devices))
202202
for a in device.addresses:
203203
try:
204-
TH2.EstablishPASESessionIP(ipaddr=a, setupPinCode=params.setupPinCode,
205-
nodeid=self.dut_node_id+1, port=device.port)
204+
await TH2.EstablishPASESessionIP(ipaddr=a, setupPinCode=params.setupPinCode,
205+
nodeid=self.dut_node_id+1, port=device.port)
206206
break
207207
except ChipStackError:
208208
continue

‎src/python_testing/TC_OPCREDS_3_1.py

+13-13
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ def FindAndEstablishPase(self, longDiscriminator: int, setupPinCode: int, nodeid
4141
Discovery.FilterType.LONG_DISCRIMINATOR and d.longDiscriminator == longDiscriminator, devices))
4242
for a in device.addresses:
4343
try:
44-
dev_ctrl.EstablishPASESessionIP(ipaddr=a, setupPinCode=setupPinCode,
45-
nodeid=nodeid, port=device.port)
44+
await dev_ctrl.EstablishPASESessionIP(ipaddr=a, setupPinCode=setupPinCode,
45+
nodeid=nodeid, port=device.port)
4646
break
4747
except ChipStackError:
4848
continue
@@ -51,11 +51,11 @@ def FindAndEstablishPase(self, longDiscriminator: int, setupPinCode: int, nodeid
5151
except TimeoutError:
5252
asserts.fail("Unable to establish a PASE session to the device")
5353

54-
def OpenCommissioningWindow(self, dev_ctrl: ChipDeviceCtrl, node_id: int):
54+
async def OpenCommissioningWindow(self, dev_ctrl: ChipDeviceCtrl, node_id: int):
5555
# TODO: abstract this in the base layer? Do we do this a lot?
5656
longDiscriminator = random.randint(0, 4095)
5757
try:
58-
params = dev_ctrl.OpenCommissioningWindow(
58+
params = await dev_ctrl.OpenCommissioningWindow(
5959
nodeid=node_id, timeout=600, iteration=10000, discriminator=longDiscriminator, option=ChipDeviceCtrl.ChipDeviceControllerBase.CommissioningWindowPasscode.kTokenWithRandomPin)
6060
except Exception as e:
6161
logging.exception('Error running OpenCommissioningWindow %s', e)
@@ -85,7 +85,7 @@ async def test_TC_OPCREDS_3_1(self):
8585
"Device fabric table is full - please remove one fabric and retry")
8686

8787
self.print_step(1, "TH0 opens a commissioning window on the DUT")
88-
longDiscriminator, params = self.OpenCommissioningWindow(self.default_controller, self.dut_node_id)
88+
longDiscriminator, params = await self.OpenCommissioningWindow(self.default_controller, self.dut_node_id)
8989

9090
self.print_step(
9191
2, "TH0 reads the BasicCommissioningInfo field from the General commissioning cluster saves MaxCumulativeFailsafeSeconds as `failsafe_max`")
@@ -109,7 +109,7 @@ async def test_TC_OPCREDS_3_1(self):
109109
self.print_step(6, "TH1 obtains or generates the NOC, the Root CA Certificate and ICAC using csrResponse and selects an IPK. The certificates shall have their subjects padded with additional data such that they are each the maximum certificate size of 400 bytes when encoded in the MatterCertificateEncoding.")
110110
# Our CA is set up to maximize cert chains already
111111
# Extract the RCAC public key and save as `Root_Public_Key_TH1`
112-
TH1_certs_real = TH1.IssueNOCChain(csrResponse, newNodeId)
112+
TH1_certs_real = await TH1.IssueNOCChain(csrResponse, newNodeId)
113113
if (TH1_certs_real.rcacBytes is None or
114114
TH1_certs_real.icacBytes is None or
115115
TH1_certs_real.nocBytes is None or TH1_certs_real.ipkBytes is None):
@@ -125,7 +125,7 @@ async def test_TC_OPCREDS_3_1(self):
125125
TH1_CA_fake = self.certificate_authority_manager.NewCertificateAuthority()
126126
TH1_fabric_admin_fake = TH1_CA_fake.NewFabricAdmin(vendorId=0xFFF1, fabricId=2)
127127
TH1_fake = TH1_fabric_admin_fake.NewController(nodeId=self.default_controller.nodeId)
128-
TH1_certs_fake = TH1_fake.IssueNOCChain(csrResponse, newNodeId)
128+
TH1_certs_fake = await TH1_fake.IssueNOCChain(csrResponse, newNodeId)
129129
if (TH1_certs_fake.rcacBytes is None or
130130
TH1_certs_fake.icacBytes is None or
131131
TH1_certs_fake.nocBytes is None or TH1_certs_real.ipkBytes is None):
@@ -361,7 +361,7 @@ async def test_TC_OPCREDS_3_1(self):
361361
asserts.assert_equal(len(fabrics), fabrics_original_size, "Fabric list size does not match original")
362362

363363
self.print_step(37, "TH1 fully commissions DUT onto the fabric using a set of valid certificates")
364-
TH1.Commission(newNodeId)
364+
await TH1.Commission(newNodeId)
365365

366366
self.print_step(
367367
38, "TH1 reads the TrustedRootCertificates list from DUT and verify that there are trusted_root_original_size + 1 entries")
@@ -404,7 +404,7 @@ async def test_TC_OPCREDS_3_1(self):
404404
resp.statusCode, opcreds.Enums.NodeOperationalCertStatusEnum.kOk, "Failure on UpdateFabricLabel")
405405

406406
self.print_step(44, "TH1 sends an OpenCommissioningWindow command to the Administrator Commissioning cluster")
407-
longDiscriminator, params = self.OpenCommissioningWindow(TH1, newNodeId)
407+
longDiscriminator, params = await self.OpenCommissioningWindow(TH1, newNodeId)
408408

409409
self.print_step(45, "TH2 commissions the DUT")
410410
TH2_CA = self.certificate_authority_manager.NewCertificateAuthority(maximizeCertChains=True)
@@ -413,7 +413,7 @@ async def test_TC_OPCREDS_3_1(self):
413413
TH2_nodeid = self.default_controller.nodeId+2
414414
TH2 = TH2_fabric_admin.NewController(nodeId=TH2_nodeid)
415415
TH2_dut_nodeid = self.dut_node_id+2
416-
TH2.CommissionOnNetwork(
416+
await TH2.CommissionOnNetwork(
417417
nodeId=TH2_dut_nodeid, setupPinCode=params.setupPinCode,
418418
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=longDiscriminator)
419419

@@ -484,7 +484,7 @@ async def test_TC_OPCREDS_3_1(self):
484484
temp_CA = self.certificate_authority_manager.NewCertificateAuthority()
485485
temp_fabric_admin = temp_CA.NewFabricAdmin(vendorId=0xFFF1, fabricId=3)
486486
temp_controller = temp_fabric_admin.NewController(nodeId=self.default_controller.nodeId)
487-
temp_certs = temp_controller.IssueNOCChain(csrResponse, newNodeId)
487+
temp_certs = await temp_controller.IssueNOCChain(csrResponse, newNodeId)
488488
if (temp_certs.rcacBytes is None or
489489
temp_certs.icacBytes is None or
490490
temp_certs.nocBytes is None or temp_certs.ipkBytes is None):
@@ -521,7 +521,7 @@ async def test_TC_OPCREDS_3_1(self):
521521

522522
self.print_step(61, "TH1 obtains or generates a NOC and ICAC using the CSR elements from the previous step with a different NodeID, but the same Root CA Certificate and fabric ID as step <<TH1-gen-real-creds>>. Save as `Node_Operational_Certificates_TH1_fabric_conflict` and `Intermediate_Certificate_TH1_fabric_conflict`|")
523523
anotherNodeId = newNodeId + 1
524-
TH1_certs_fabric_conflict = TH1.IssueNOCChain(csrResponse_new, anotherNodeId)
524+
TH1_certs_fabric_conflict = await TH1.IssueNOCChain(csrResponse_new, anotherNodeId)
525525
if (TH1_certs_fabric_conflict.rcacBytes is None or
526526
TH1_certs_fabric_conflict.icacBytes is None or
527527
TH1_certs_fabric_conflict.nocBytes is None or TH1_certs_fabric_conflict.ipkBytes is None):
@@ -565,7 +565,7 @@ async def test_TC_OPCREDS_3_1(self):
565565
"Unexpected response type for UpdateNOC csr request")
566566

567567
self.print_step(68, "TH1 obtains or generates a NOC, Root CA Certificate, ICAC using the CSR elements from the previous step")
568-
TH1_certs_3 = TH1.IssueNOCChain(csrResponse, anotherNodeId)
568+
TH1_certs_3 = await TH1.IssueNOCChain(csrResponse, anotherNodeId)
569569
if (TH1_certs_3.rcacBytes is None or
570570
TH1_certs_3.icacBytes is None or
571571
TH1_certs_3.nocBytes is None or TH1_certs_3.ipkBytes is None):

‎src/python_testing/TC_TIMESYNC_2_13.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ async def test_TC_TIMESYNC_2_13(self):
4545
self.print_step(0, "Commissioning, already done")
4646

4747
self.print_step(1, "TH1 opens a commissioning window")
48-
params = self.default_controller.OpenCommissioningWindow(
48+
params = await self.default_controller.OpenCommissioningWindow(
4949
nodeid=self.dut_node_id, timeout=600, iteration=10000, discriminator=1234, option=1)
5050

5151
self.print_step(2, "Commission to TH2")
5252
new_certificate_authority = self.certificate_authority_manager.NewCertificateAuthority()
5353
new_fabric_admin = new_certificate_authority.NewFabricAdmin(vendorId=0xFFF1, fabricId=2)
5454
TH2 = new_fabric_admin.NewController(nodeId=112233)
5555

56-
TH2.CommissionOnNetwork(
56+
await TH2.CommissionOnNetwork(
5757
nodeId=self.dut_node_id, setupPinCode=params.setupPinCode,
5858
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=1234)
5959

‎src/python_testing/TestCommissioningTimeSync.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ async def teardown_test(self):
5656
return super().teardown_test()
5757

5858
async def commission_and_base_checks(self):
59-
params = self.default_controller.OpenCommissioningWindow(
59+
params = await self.default_controller.OpenCommissioningWindow(
6060
nodeid=self.dut_node_id, timeout=600, iteration=10000, discriminator=1234, option=1)
61-
self.commissioner.CommissionOnNetwork(
61+
await self.commissioner.CommissionOnNetwork(
6262
nodeId=self.dut_node_id, setupPinCode=params.setupPinCode,
6363
filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=1234)
6464
self.commissioned = True

‎src/python_testing/basic_composition_support.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ def ConvertValue(value) -> Any:
9898

9999

100100
class BasicCompositionTests:
101-
def connect_over_pase(self, dev_ctrl):
101+
async def connect_over_pase(self, dev_ctrl):
102102
setupCode = self.matter_test_config.qr_code_content if self.matter_test_config.qr_code_content is not None else self.matter_test_config.manual_code
103103
asserts.assert_true(setupCode, "Require either --qr-code or --manual-code.")
104-
dev_ctrl.FindOrEstablishPASESession(setupCode, self.dut_node_id)
104+
await dev_ctrl.FindOrEstablishPASESession(setupCode, self.dut_node_id)
105105

106106
def dump_wildcard(self, dump_device_composition_path: typing.Optional[str]):
107107
node_dump_dict = {endpoint_id: MatterTlvToJson(self.endpoints_tlv[endpoint_id]) for endpoint_id in self.endpoints_tlv}
@@ -121,7 +121,7 @@ async def setup_class_helper(self, default_to_pase: bool = True):
121121
dump_device_composition_path: Optional[str] = self.user_params.get("dump_device_composition_path", None)
122122

123123
if do_test_over_pase:
124-
self.connect_over_pase(dev_ctrl)
124+
await self.connect_over_pase(dev_ctrl)
125125
node_id = self.dut_node_id
126126
else:
127127
# Using the already commissioned node

‎src/python_testing/matter_testing_support.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -766,11 +766,11 @@ def check_pics(self, pics_key: str) -> bool:
766766
pics_key = pics_key.strip()
767767
return pics_key in picsd and picsd[pics_key]
768768

769-
def openCommissioningWindow(self, dev_ctrl: ChipDeviceCtrl, node_id: int) -> CustomCommissioningParameters:
769+
async def openCommissioningWindow(self, dev_ctrl: ChipDeviceCtrl, node_id: int) -> CustomCommissioningParameters:
770770
rnd_discriminator = random.randint(0, 4095)
771771
try:
772-
commissioning_params = dev_ctrl.OpenCommissioningWindow(nodeid=node_id, timeout=900, iteration=1000,
773-
discriminator=rnd_discriminator, option=1)
772+
commissioning_params = await dev_ctrl.OpenCommissioningWindow(nodeid=node_id, timeout=900, iteration=1000,
773+
discriminator=rnd_discriminator, option=1)
774774
params = CustomCommissioningParameters(commissioning_params, rnd_discriminator)
775775
return params
776776

@@ -1524,10 +1524,10 @@ def test_run_commissioning(self):
15241524
(conf.root_of_trust_index, conf.fabric_id, node_id))
15251525
logging.info("Commissioning method: %s" % conf.commissioning_method)
15261526

1527-
if not self._commission_device(commission_idx):
1527+
if not asyncio.run(self._commission_device(commission_idx)):
15281528
raise signals.TestAbortAll("Failed to commission node")
15291529

1530-
def _commission_device(self, i) -> bool:
1530+
async def _commission_device(self, i) -> bool:
15311531
dev_ctrl = self.default_controller
15321532
conf = self.matter_test_config
15331533

@@ -1543,7 +1543,7 @@ def _commission_device(self, i) -> bool:
15431543

15441544
if conf.commissioning_method == "on-network":
15451545
try:
1546-
dev_ctrl.CommissionOnNetwork(
1546+
await dev_ctrl.CommissionOnNetwork(
15471547
nodeId=conf.dut_node_ids[i],
15481548
setupPinCode=info.passcode,
15491549
filterType=info.filter_type,
@@ -1555,7 +1555,7 @@ def _commission_device(self, i) -> bool:
15551555
return False
15561556
elif conf.commissioning_method == "ble-wifi":
15571557
try:
1558-
dev_ctrl.CommissionWiFi(
1558+
await dev_ctrl.CommissionWiFi(
15591559
info.filter_value,
15601560
info.passcode,
15611561
conf.dut_node_ids[i],
@@ -1569,7 +1569,7 @@ def _commission_device(self, i) -> bool:
15691569
return False
15701570
elif conf.commissioning_method == "ble-thread":
15711571
try:
1572-
dev_ctrl.CommissionThread(
1572+
await dev_ctrl.CommissionThread(
15731573
info.filter_value,
15741574
info.passcode,
15751575
conf.dut_node_ids[i],
@@ -1583,7 +1583,7 @@ def _commission_device(self, i) -> bool:
15831583
elif conf.commissioning_method == "on-network-ip":
15841584
try:
15851585
logging.warning("==== USING A DIRECT IP COMMISSIONING METHOD NOT SUPPORTED IN THE LONG TERM ====")
1586-
dev_ctrl.CommissionIP(
1586+
await dev_ctrl.CommissionIP(
15871587
ipaddr=conf.commissionee_ip_address_just_for_testing,
15881588
setupPinCode=info.passcode, nodeid=conf.dut_node_ids[i]
15891589
)

0 commit comments

Comments
 (0)