================================================================================= test session starts ================================================================================== platform linux -- Python 3.12.3, pytest-8.4.0, pluggy-1.6.0 -- /home/byaremkiv/git/link/venv/bin/python3 cachedir: .pytest_cache rootdir: /home/byaremkiv/git/link plugins: order-1.3.0 collecting ... collected 1 item test/functional/simple_test.py::test_connect_links FAILED [100%] ======================================================================================= FAILURES ======================================================================================= __________________________________________________________________________________ test_connect_links __________________________________________________________________________________ [0m [37m@pytest [39;49;00m.mark.order( [94m2 [39;49;00m) [90m [39;49;00m [94mdef [39;49;00m [90m [39;49;00m [92mtest_connect_links [39;49;00m(): [90m [39;49;00m [90m# 0. Get Device IDs [39;49;00m [90m [39;49;00m device_1 = discover_device(device_id_1) [90m [39;49;00m device_2 = discover_device(device_id_2) [90m [39;49;00m [94massert [39;49;00m device_1, [33mf [39;49;00m [33m" [39;49;00m [33mDevice with ID [39;49;00m [33m{ [39;49;00mdevice_id_1 [33m} [39;49;00m [33m not found [39;49;00m [33m" [39;49;00m [90m [39;49;00m [94massert [39;49;00m device_2, [33mf [39;49;00m [33m" [39;49;00m [33mDevice with ID [39;49;00m [33m{ [39;49;00mdevice_id_2 [33m} [39;49;00m [33m not found [39;49;00m [33m" [39;49;00m [90m [39;49;00m [90m [39;49;00m [90m# 1. Reset the devices [39;49;00m [90m [39;49;00m reset_device_settings(device_1) [90m [39;49;00m reset_device_settings(device_2) [90m [39;49;00m [90m [39;49;00m [90m# 2. Make 1 device as slave another is master by default [39;49;00m [90m [39;49;00m [90m# Wait for device renumeration. Don't have idea how to do it in a better way (TBD?) [39;49;00m [90m [39;49;00m time.sleep( [94m5 [39;49;00m) [90m [39;49;00m device_1 = discover_device(device_id_1) [90m [39;49;00m device_2 = discover_device(device_id_2) [90m [39;49;00m [90m [39;49;00m [90m# 3. Cover negative scenario rssi should equal -127 in no connection [39;49;00m [90m [39;49;00m rssi = get_rssi(device_1) [90m [39;49;00m [96mprint [39;49;00m( [33mf [39;49;00m [33m" [39;49;00m [33mRSSI: [39;49;00m [33m{ [39;49;00mrssi [33m} [39;49;00m [33m" [39;49;00m) [90m [39;49;00m [94massert [39;49;00m - [94m127 [39;49;00m == rssi, [33mf [39;49;00m [33m" [39;49;00m [33mDevice [39;49;00m [33m{ [39;49;00mdevice_id_1 [33m} [39;49;00m [33m: Actual RSSI is: [39;49;00m [33m{ [39;49;00mrssi [33m} [39;49;00m [33m. Expected is -127. [39;49;00m [33m" [39;49;00m [90m [39;49;00m [90m [39;49;00m rssi = get_rssi(device_2) [90m [39;49;00m [96mprint [39;49;00m( [33mf [39;49;00m [33m" [39;49;00m [33mRSSI: [39;49;00m [33m{ [39;49;00mrssi [33m} [39;49;00m [33m" [39;49;00m) [90m [39;49;00m [94massert [39;49;00m - [94m127 [39;49;00m == rssi, [33mf [39;49;00m [33m" [39;49;00m [33mDevice [39;49;00m [33m{ [39;49;00mdevice_id_2 [33m} [39;49;00m [33m: Actual RSSI is: [39;49;00m [33m{ [39;49;00mrssi [33m} [39;49;00m [33m. Expected is -127. [39;49;00m [33m" [39;49;00m [90m [39;49;00m [90m [39;49;00m > change_master_to_slave(device_1) [90m [39;49;00m test/functional/simple_test.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/functional/common.py:121: in change_master_to_slave [0mlink_send_command(device, write_cmd=eeSetModemConfig, crypto_config=my_crypto_config) [90m [39;49;00m _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ device = , write_cmd = 134, read_cmd = None, index = 0 kwargs = {'crypto_config': role: Slave opmode: MultichannelAdaptiveFHSS uplink_mod: 2 downlink_mod: 2 nolink_timeout_x100: 30 uplink_chn_mask: 4294967295 downlink_chn_mask: 4294967295 autoselect_slave: true btn_enable: true allow_role_change: true use_dynamic_baud: true name: "ModemName" } req_obj = header { type: eeSetModemConfig } , field = 'crypto_config' value = role: Slave opmode: MultichannelAdaptiveFHSS uplink_mod: 2 downlink_mod: 2 nolink_timeout_x100: 30 uplink_chn_mask: 4294967295 downlink_chn_mask: 4294967295 autoselect_slave: true btn_enable: true allow_role_change: true use_dynamic_baud: true name: "ModemName" [0m [94mdef [39;49;00m [90m [39;49;00m [92mlink_send_command [39;49;00m(device, write_cmd, read_cmd= [94mNone [39;49;00m, index= [94m0 [39;49;00m, **kwargs): [90m [39;49;00m req_obj = Object() [90m [39;49;00m req_obj.header.type = write_cmd [90m [39;49;00m req_obj.header.obj_index = index [90m [39;49;00m [94mif [39;49;00m kwargs: [90m [39;49;00m [94mif [39;49;00m [96mlen [39;49;00m(kwargs) != [94m1 [39;49;00m: [90m [39;49;00m [94mraise [39;49;00m [96mValueError [39;49;00m( [33m" [39;49;00m [33mOnly one payload argument is allowed for oneof [39;49;00m [33m" [39;49;00m) [90m [39;49;00m [90m [39;49;00m field, value = [96mnext [39;49;00m( [96miter [39;49;00m(kwargs.items())) [90m [39;49;00m [94mif [39;49;00m [95mnot [39;49;00m [96mhasattr [39;49;00m(req_obj, field): [90m [39;49;00m [94mraise [39;49;00m [96mAttributeError [39;49;00m( [33mf [39;49;00m [33m" [39;49;00m [33mNo such field [39;49;00m [33m' [39;49;00m [33m{ [39;49;00mfield [33m} [39;49;00m [33m' [39;49;00m [33m in Object message [39;49;00m [33m" [39;49;00m) [90m [39;49;00m [90m [39;49;00m > [96msetattr [39;49;00m(req_obj, field, value) [90m [39;49;00m E AttributeError: Assignment not allowed to message field "crypto_config" in protocol message object. test/functional/link_protocol_usb_parser.py:83: AttributeError --------------------------------------------------------------------------------- Captured stdout call --------------------------------------------------------------------------------- RSSI: -127 RSSI: -127 --------------------------------------------------------- generated xml file: /home/byaremkiv/git/link/output/test_report.xml ---------------------------------------------------------- ================================================================================== [31m [1m1 failed [0m [31m in 5.33s [0m [31m ===================================================================================