Skip to content

v0.0.1

Pre-release
Pre-release

Choose a tag to compare

@steck0714 steck0714 released this 27 Jul 05:40
e67ad87

This version briefly explains what was changed.

The requestDeviceChooser method did not exist on the meta-object at all, meaning it did not appear as a method on the JavaScript-side proxy generated by QWebChannel. Meanwhile, _enumerate_filtered_devices was registered with a mismatch between its actual arguments (the usb_core/usb_util pyusb modules and the filters/exclusion_filters lists) and its @Slot(str, result=str) declaration. Because test_bridge.py consistently calls bridge.requestDeviceChooser(...) directly from Python, it always passes regardless of whether the @Slot decorator is present or where it is applied. In fact, even with the bug present, all 24 existing tests passed. This is the exact same blind spot as the previously fixed bug where the @Slot decorator for requestDeviceChooser was entirely missing.

To address this, I added test_requestDeviceChooser_is_registered_as_qt_slot to verify the method by inspecting staticMetaObject and QMetaMethod directly. I have also confirmed that this test successfully fails against a separate copy of the codebase replicating the bug.

However, since this still does not fully guarantee reliable operation, users who prefer a more stable version should wait for the next release.