~aleteoryx/muditaos

58fe1b1e7b333fa1a49b3bf319c33365bfc7ace1 — Lefucjusz 3 years ago ac78d44
[CP-1421] Fix backup, restore and device info tests

Fix of the aforementioned tests after changes
implemented in PureOS.
M test/harness => test/harness +1 -1
@@ 1,1 1,1 @@
Subproject commit 755a7f13473cd3094838dffbdccf50f93ea5e986
Subproject commit 8caddc3251a53173d4f470e47fca16d1e6a580c0

M test/pytest/service-desktop/test_device_info.py => test/pytest/service-desktop/test_device_info.py +8 -5
@@ 18,16 18,19 @@ def test_get_device_information(harness):
    assert ret.diag_info["accessTechnology"] in ['0', '2', '3', '4', '5', '6', '7', '255']
    assert 0 <= int(ret.diag_info["networkStatus"]) < 7
    assert ret.diag_info["networkOperatorName"] is not None
    assert int(ret.diag_info["deviceSpaceTotal"]) == 14945
    assert int(ret.diag_info["systemReservedSpace"]) == 2042
    assert 0 < int(ret.diag_info["usedUserSpace"]) <= 12903
    assert int(ret.diag_info["systemReservedSpace"]) == 1024
    assert int(ret.diag_info["deviceSpaceTotal"]) == (12903 + 1024)  # User + system partitions sizes
    assert re.match(r"^(\d|[a-z]){8,40}$", ret.diag_info["gitRevision"])
    assert ret.diag_info["gitBranch"] is not None
    assert int(ret.diag_info["currentRTCTime"]) > 1641991996
    assert re.match(r"^\d\.\d\.\d", ret.diag_info["version"])
    assert re.match(r"^\d{3,14}$", ret.diag_info["serialNumber"])
    assert ret.diag_info["caseColour"] in ["gray", "black"]
    assert ret.diag_info["backupLocation"] == "/sys/user/backup"
    assert ret.diag_info["recoveryStatusFilePath"] == "/user/temp/recovery_status.json"
    assert ret.diag_info["updateFilePath"] == "/user/temp/update.tar"
    assert ret.diag_info["backupFilePath"] == "/user/temp/backup.tar"
    assert ret.diag_info["syncFilePath"] == "/user/temp/sync.tar"
    assert re.match(r"^(\d|[a-zA-Z]){32}$", ret.diag_info["deviceToken"])




@@ 35,11 38,11 @@ def test_get_device_information(harness):
@pytest.mark.usefixtures("phone_unlocked")
def test_get_list_of_log_files(harness):
    ret = GetDiagnosticFilesList(DiagnosticsFileList.LOGS).run(harness)
    assert "/sys/user/logs/MuditaOS.log" in ret.files
    assert "/system/log/MuditaOS.log" in ret.files

@pytest.mark.skip(reason = "Deactivated until we have possibility to generate crash dumps on demand [CP-690]")
@pytest.mark.service_desktop_test
@pytest.mark.usefixtures("phone_unlocked")
def test_get_list_of_crash_dump_files(harness):
    ret = GetDiagnosticFilesList(DiagnosticsFileList.CRASH_DUMPS).run(harness)
    assert "/sys/user/crash_dumps/crashdump.hex" in ret.files
    assert "/system/crash_dumps/crashdump.hex" in ret.files

M test/pytest/service-desktop/test_user_data_backup_restore.py => test/pytest/service-desktop/test_user_data_backup_restore.py +15 -12
@@ 1,5 1,6 @@
# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
import time
import pytest
from harness.request import TransactionError
from harness import log


@@ 39,8 40,8 @@ def run_backup(harness):
def remove_backup_file(harness):
    try:
        resp = GetDeviceInfo().run(harness)
        bkpPath = resp.diag_info["backupLocation"]
        FsRemoveFile(bkpPath + "/backup_db.tar").run(harness)
        backupFilePath = resp.diag_info["backupFilePath"]
        FsRemoveFile(backupFilePath).run(harness)
    except TransactionError:
        return False
    else:


@@ 89,9 90,9 @@ def clear_user_data(harness, contactIdList):

        assert contactsCountAfterClear == contactsCount - len(contactIdList)
    except TransactionError:
        return False
        return False, -1
    else:
        return True
        return True, contactsCountAfterClear


def save_user_data(harness, contactIdList, referenceContacts):


@@ 110,12 111,12 @@ def save_user_data(harness, contactIdList, referenceContacts):
        return True


def compare_user_data(harness, referenceContacts, referenceContactIds):
def compare_user_data(harness, referenceContacts, referenceContactIds, contactsCountAfterClear):
    try:
        contactsCountAfterRestore = GetContactsCount().run(harness).count

        log.debug(f"Contacts after restore: {contactsCountAfterRestore}")
        assert len(referenceContacts) == contactsCountAfterRestore
        assert (len(referenceContacts) + contactsCountAfterClear) == contactsCountAfterRestore

        log.debug("Get user data from device for comparison")
        resp = GetContactsWithOffsetAndLimit(0, contactsCountAfterRestore).run(harness)


@@ 145,22 146,24 @@ def test_backup_and_restore(harness):
    log.debug("Creating backup")
    assert run_backup(harness), "Failed to initialize backup!"

    harness.connection.watch_port_reboot(20)
    harness = get_harness_automatic(20)
    timeout_seconds = 50
    harness.connection.watch_port_reboot(timeout_seconds)
    harness = get_harness_automatic(timeout_seconds)
    harness.unlock_phone()

    log.debug("Removing user data from device")
    assert clear_user_data(harness, ReferenceContactIds), "Failed to clear user data!"
    status, contactsCountAfterClear = clear_user_data(harness, ReferenceContactIds)
    assert status, "Failed to clear user data!"

    log.debug("Requesting restore")
    assert run_restore(harness), "Failed to initialize restore process!"

    harness.connection.watch_port_reboot(20)
    harness = get_harness_automatic(20)
    harness.connection.watch_port_reboot(timeout_seconds)
    harness = get_harness_automatic(timeout_seconds)
    harness.unlock_phone()

    log.debug("Confirm user data on device match saved data")
    assert compare_user_data(harness, ReferenceContacts, ReferenceContactIds), "User data inconsistent after backup!"
    assert compare_user_data(harness, ReferenceContacts, ReferenceContactIds, contactsCountAfterClear), "User data inconsistent after backup!"

    log.debug("Remove user data added by test")
    assert clear_user_data(harness, TestContactIds), "Failed to clear user data!"