mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 13:09:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
 | |
| # SPDX-License-Identifier: Apache-2.0
 | |
| # !/usr/bin/env python3
 | |
| 
 | |
| import pathlib
 | |
| import time
 | |
| from typing import Tuple
 | |
| 
 | |
| import pytest
 | |
| from pytest_embedded import Dut
 | |
| 
 | |
| CURRENT_DIR_LIGHT = str(pathlib.Path(__file__).parent / 'HA_on_off_light')
 | |
| CURRENT_DIR_SWITCH = str(pathlib.Path(__file__).parent / 'HA_on_off_switch')
 | |
| pytest_build_dir = CURRENT_DIR_LIGHT + '|' + CURRENT_DIR_SWITCH
 | |
| 
 | |
| 
 | |
| @pytest.mark.esp32h2
 | |
| @pytest.mark.zigbee_multi_dut
 | |
| @pytest.mark.parametrize(
 | |
|     ' count, app_path, erase_all', [
 | |
|         (2, pytest_build_dir, 'y'),
 | |
|     ],
 | |
|     indirect=True,
 | |
| )
 | |
| # config Zigbee network
 | |
| def test_config_zigbee_network(dut:Tuple[Dut, Dut]) -> None:
 | |
|     light = dut[0]
 | |
|     switch = dut[1]
 | |
|     time.sleep(3)
 | |
|     switch.expect('ESP_ZB_ON_OFF_SWITCH: Formed network successfully',timeout=30)
 | |
|     # get the switch extpanid
 | |
|     switch_node_expanid = switch.expect(r'Extended PAN ID: (([a-z0-9]{2}:?){8})',timeout=3)[1].decode()
 | |
|     switch_node_expanid = switch_node_expanid.replace(':','')
 | |
|     # get the switch panid
 | |
|     switch_node_panid = switch.expect(r'PAN ID: 0x([a-z0-9]+:?)',timeout=2)[1].decode()
 | |
|     # new device commissioned successfully
 | |
|     switch.expect(r'New device commissioned or rejoined \(short: 0x([a-z0-9]+)[^a-z0-9]',timeout=30)[1].decode()
 | |
|     # get the light node extpanid
 | |
|     light.expect('ESP_ZB_ON_OFF_LIGHT: Joined network successfully',timeout=20)
 | |
|     light_node_expanid = light.expect(r'Extended PAN ID: (([a-z0-9]{2}:?){8})',timeout=3)[1].decode()
 | |
|     light_node_expanid = light_node_expanid.replace(':','')
 | |
|     # get the light panid
 | |
|     light_node_panid = light.expect(r'PAN ID: 0x([a-z0-9]+:?)',timeout=2)[1].decode()
 | |
|     # make sure the light node join the network that switch node formed (same expanid)
 | |
|     if ((light_node_expanid != switch_node_expanid) or (light_node_panid != switch_node_panid)):
 | |
|         assert False
 | 
