Проблема с подключением Pytest и Tox ADB — устройство неавторизовано

Сценарий: я пытаюсь подключить 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, что заставило меня подумать, что это может быть проблема среды, но при тестировании я вижу, что во время выполнения мой домашний каталог остается прежним. Любая помощь приветствуется.


person ereis    schedule 06.01.2021    source источник
comment
Отвечает ли это на ваш вопрос: запуск устройств adb, показывающих неавторизованное устройство??   -  person Federico Baù    schedule 06.01.2021
comment
не пройдет ли ваш тест, если вы добавите passenv = * к tox.ini? я предполагаю, что adb требует какой-то специальной переменной среды, которую фильтрует tox - один из разработчиков ядра tox   -  person Anthony Sottile    schedule 06.01.2021
comment
Нашел решение, по-видимому, мне нужно было добавить сон (2) после «adb connect», так как для авторизации устройства требуется время.   -  person ereis    schedule 10.01.2021


Ответы (1)


Нашел решение, по-видимому, мне нужно было добавить сон (1) после «adb connect», так как для авторизации устройства требуется время

person ereis    schedule 12.01.2021