Add web toggle for Bluetooth discoverable window
The board stays hidden by default, so new phones could only pair via an SSH session. Add 'radxa-audio discoverable on|off' backed by a transient radxa-bt-pairing unit that auto-approves and trusts devices pairing in the window, expires on its own, and expose it in the web mixer with a countdown. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,23 @@ class InputTests(unittest.TestCase):
|
||||
|
||||
|
||||
class WebTests(unittest.TestCase):
|
||||
def test_discoverable_toggle_is_allowlisted(self):
|
||||
self.assertEqual(w.validate_action({'action':'discoverable','on':True,'seconds':300}),
|
||||
['discoverable','on','--seconds','300'])
|
||||
self.assertEqual(w.validate_action({'action':'discoverable','on':False}),['discoverable','off'])
|
||||
for data in [{'action':'discoverable','on':True,'seconds':3600},{'action':'discoverable','on':True,'seconds':'300'},
|
||||
{'action':'discoverable','on':'yes','seconds':300},{'action':'discoverable','on':True,'seconds':True}]:
|
||||
with self.subTest(data=data), self.assertRaises(ValueError): w.validate_action(data)
|
||||
|
||||
def test_pairing_state_reports_remaining_only_when_discoverable(self):
|
||||
adapter={'/org/bluez/hci0':{'org.bluez.Adapter1':{'Discoverable':True,'Alias':'Radxa Audio Bluetooth'}}}
|
||||
with patch.object(a,'objects',return_value=adapter), patch.object(a,'PAIRING_UNTIL') as until, \
|
||||
patch.object(a.time,'time',return_value=1000.0):
|
||||
until.read_text.return_value='1120.0'
|
||||
self.assertEqual(a.pairing(),{'discoverable':True,'remaining':120,'alias':'Radxa Audio Bluetooth'})
|
||||
adapter['/org/bluez/hci0']['org.bluez.Adapter1']['Discoverable']=False
|
||||
self.assertEqual(a.pairing()['remaining'],0)
|
||||
|
||||
def test_dac_selection_is_one_atomic_cli_command(self):
|
||||
self.assertEqual(w.validate_action({'action':'output','mode':'dac','pcm':'hw:CARD=Audio,DEV=0'}),
|
||||
['output','dac','--pcm','hw:CARD=Audio,DEV=0'])
|
||||
|
||||
Reference in New Issue
Block a user