~aleteoryx/muditaos

af11f9465a01914f268d541d12a0ea1a1d28abf5 — Marek Niepieklo 4 years ago 8c99772
[CP-166] Update Harness Tests

Renamed endpoint filesystemUpdate to filesystem
Added get file test
M test/firmware_update_test/update.py => test/firmware_update_test/update.py +1 -1
@@ 44,7 44,7 @@ def update(harness, update_filepath: str):
    filename = update_filepath.split('/')[-1]
    body = {"command": "download", "fileName": filename, "fileSize": file_size}

    ret = harness.endpoint_request("filesystemUpload", "post", body)["body"]
    ret = harness.endpoint_request("filesystem", "post", body)["body"]
    if ret["status"] is not None:
        log.info(f"Update status: {update_status_code[int(ret['status'])]}")


M test/harness => test/harness +1 -1
@@ 1,1 1,1 @@
Subproject commit 9093212fd71f9741fb3dbc6d95a604d8f67f04cb
Subproject commit 37310ac02cb32776e6fda8cde61e33c41a7d2e30

M test/pytest/service-desktop/test_battery_file.py => test/pytest/service-desktop/test_battery_file.py +1 -1
@@ 9,7 9,7 @@ from harness.interface.defs import status
@pytest.mark.usefixtures("phone_unlocked")
def test_battery_file(harness):
    body = {"command" : "checkFile" , "fileName" : "/sys/user/batteryFuelGaugeConfig.cfg"}
    ret = harness.endpoint_request("filesystemUpload", "post", body)
    ret = harness.endpoint_request("filesystem", "post", body)

    assert ret["status"] == status["OK"]
    assert ret["body"]["fileExists"] == True

A test/pytest/service-desktop/test_get_file.py => test/pytest/service-desktop/test_get_file.py +121 -0
@@ 0,0 1,121 @@
# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
import pytest
import base64
from harness.interface.defs import status

@pytest.mark.service_desktop_test
@pytest.mark.usefixtures("phone_unlocked")
@pytest.mark.rt1051
def test_get_not_existing_file(harness):
    """
    Attempt requesting not exiting file
    """
    fileName = "Unknown.file"
    body = {"fileName" : "/sys/user/" + fileName}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["NotFound"]


@pytest.mark.service_desktop_test
@pytest.mark.usefixtures("phone_unlocked")
@pytest.mark.rt1051
def test_get_invalid_chunks(harness):
    """
    Attempt requesting data with invalid chunk numbers
    """
    fileName = "MuditaOS.log"
    body = {"fileName" : "/sys/user/" + fileName}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["OK"]
    assert ret["body"]["fileSize"] != 0

    rxID      = ret["body"]["rxID"]
    fileSize  = ret["body"]["fileSize"]
    chunkSize = ret["body"]["chunkSize"]

    totalChunks = int((fileSize/chunkSize) + 1)
    print("totalChunks #: " + str(totalChunks))

    body = {"rxID" : rxID, "chunkNo": 0}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["BadRequest"]

    body = {"rxID" : rxID, "chunkNo": int(totalChunks + 1)}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["BadRequest"]


@pytest.mark.service_desktop_test
@pytest.mark.usefixtures("phone_unlocked")
@pytest.mark.rt1051
def test_get_file(harness):
    """
    Attempt requesting and transfering file data
    """
    fileName = "MuditaOS.log"
    body = {"fileName" : "/sys/user/" + fileName}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["OK"]
    assert ret["body"]["fileSize"] != 0

    rxID      = ret["body"]["rxID"]
    fileSize  = ret["body"]["fileSize"]
    chunkSize = ret["body"]["chunkSize"]

    totalChunks = int((fileSize/chunkSize) + 1)
    print("totalChunks #: " + str(totalChunks))

    data = ""

    for n in range(1, totalChunks + 1):
        body = {"rxID" : rxID, "chunkNo": n}
        ret = harness.endpoint_request("filesystem", "get", body)

        assert ret["status"] == status["OK"]

        data += ret["body"]["data"]

    file_64 = open(fileName + ".base64" , 'w')
    file_64.write(data)

    file_64_decode = base64.standard_b64decode(data)
    file_result = open(fileName, 'wb')
    file_result.write(file_64_decode)


@pytest.mark.service_desktop_test
@pytest.mark.usefixtures("phone_unlocked")
@pytest.mark.rt1051
def test_get_invalid_rxID(harness):
    """
    Attempt requesting data with invalid rxIDs
    """
    fileName = "MuditaOS.log"
    body = {"fileName" : "/sys/user/" + fileName}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["OK"]
    assert ret["body"]["fileSize"] != 0

    rxID      = ret["body"]["rxID"]
    fileSize  = ret["body"]["fileSize"]
    chunkSize = ret["body"]["chunkSize"]

    totalChunks = int((fileSize/chunkSize) + 1)
    print("totalChunks #: " + str(totalChunks))

    body = {"rxID" : int(rxID - 1), "chunkNo": 1}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["BadRequest"]

    body = {"rxID" : int(rxID + 1), "chunkNo": 1}
    ret = harness.endpoint_request("filesystem", "get", body)

    assert ret["status"] == status["BadRequest"]

M test/pytest/service-desktop/test_security.py => test/pytest/service-desktop/test_security.py +1 -1
@@ 31,7 31,7 @@ def test_all_other_endpoints_phone_locked_with_code(harness):
    body = {}
    endpoints_list = ["deviceInfo",
                      "update",
                      "filesystemUpload",
                      "filesystem",
                      "backup",
                      "restore",
                      "factory",