Сценарий: я пытаюсь подключить ADB к телефону Android в рамках теста системы автоматизации, используя команды оболочки в os.popen(), я могу подключиться, но «устройства adb» возвращают устройство как подключенное, но неавторизованное, пример код:
def test_connect_phone(self, phone):
connect_stream = os.popen(f'adb connect {phone.host}:{phone.port}')
print(connect_stream.read())
install_stream = os.popen('adb devices')
output = install_stream.read()
print(output)
assert output
# output
connected to <HOST>:<PORT>
List of devices attached
<HOST>:<PORT> unauthorized
Запуск тех же команд прямо из терминала работает и устройство авторизуется:
adb connect <HOST>:<PORT>
adb devices
#output
connected to <HOST>:<PORT>
List of devices attached
<HOST>:<PORT> device
Примечание. Я использую tox для pytest, что заставило меня подумать, что это может быть проблема среды, но при тестировании я вижу, что во время выполнения мой домашний каталог остается прежним. Любая помощь приветствуется.
passenv = *
кtox.ini
? я предполагаю, чтоadb
требует какой-то специальной переменной среды, которую фильтрует tox - один из разработчиков ядра tox - person Anthony Sottile   schedule 06.01.2021