# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. # For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md import os import pytest import logging from harness import log from harness.interface.defs import Method, Endpoint from harness.request import Transaction, Request, TransactionError from harness.rt_harness_discovery import get_harness_automatic from harness.harness import Harness from harness.api.filesystem import put_file, get_file from harness.api.developermode import PhoneModeLock from harness.api.update import PhoneReboot, Reboot def get_version(harness: Harness): r = harness.request(Endpoint.DEVICEINFO, Method.GET, {}).response version = r.body["version"] sha = r.body["gitRevision"] return f"version: {version} sha: {sha}" def disable_some_logs(harness: Harness): from harness.interface.defs import PureLogLevel for val in ["SysMgrService", "ServiceDesktop_w2", "CellularMux"]: ret = harness.request(Endpoint.DEVELOPERMODE, Method.POST, { "log": True, "service": val, "level": PureLogLevel.LOGERROR.value}) log.info(f"{ret.response}") @pytest.mark.usefixtures("phone_unlocked") @pytest.mark.rt1051 def test_update(harness: Harness): filename = "update.tar" log.info(get_version(harness)) PhoneModeLock(False).run(harness) put_file(harness, filename, "/sys/user/temp") PhoneReboot(Reboot.UPDATE).run(harness) assert harness.connection.watch_port_reboot(300) harness = get_harness_automatic(300) import time time.sleep(15) harness.unlock_phone() PhoneModeLock(False).run(harness) log.info(get_version(harness)) get_file(harness, "updater.log", "./") with open("updater.log") as f: line = f.readline() assert "OK" in line PhoneModeLock(True).run(harness) log.info("update done!")