From af11f9465a01914f268d541d12a0ea1a1d28abf5 Mon Sep 17 00:00:00 2001 From: Marek Niepieklo Date: Thu, 10 Jun 2021 10:31:16 +0200 Subject: [PATCH] [CP-166] Update Harness Tests Renamed endpoint filesystemUpdate to filesystem Added get file test --- test/firmware_update_test/update.py | 2 +- test/harness | 2 +- .../service-desktop/test_battery_file.py | 2 +- test/pytest/service-desktop/test_get_file.py | 121 ++++++++++++++++++ test/pytest/service-desktop/test_security.py | 2 +- 5 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 test/pytest/service-desktop/test_get_file.py diff --git a/test/firmware_update_test/update.py b/test/firmware_update_test/update.py index 94379119b5d3dc932076e0cb121f8b3787a86508..dea9c8ae259d86610b436dec1b97a288bb34fdaa 100755 --- a/test/firmware_update_test/update.py +++ b/test/firmware_update_test/update.py @@ -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'])]}") diff --git a/test/harness b/test/harness index 9093212fd71f9741fb3dbc6d95a604d8f67f04cb..37310ac02cb32776e6fda8cde61e33c41a7d2e30 160000 --- a/test/harness +++ b/test/harness @@ -1 +1 @@ -Subproject commit 9093212fd71f9741fb3dbc6d95a604d8f67f04cb +Subproject commit 37310ac02cb32776e6fda8cde61e33c41a7d2e30 diff --git a/test/pytest/service-desktop/test_battery_file.py b/test/pytest/service-desktop/test_battery_file.py index 2108ccfa73788286d0e6ccd2e97fee2e3c02a415..ec5a2667f327ae4f84a2424b1c49045c42d25731 100644 --- a/test/pytest/service-desktop/test_battery_file.py +++ b/test/pytest/service-desktop/test_battery_file.py @@ -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 diff --git a/test/pytest/service-desktop/test_get_file.py b/test/pytest/service-desktop/test_get_file.py new file mode 100644 index 0000000000000000000000000000000000000000..04bd33d65a0606fc8c4f1260bf6baec814f383f2 --- /dev/null +++ b/test/pytest/service-desktop/test_get_file.py @@ -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"] diff --git a/test/pytest/service-desktop/test_security.py b/test/pytest/service-desktop/test_security.py index cc6bbfe3cedf08a81eccceb32d190d0d7d0616c8..ea46d5f634da9290d7793a9dda6c5a4bc9356a23 100644 --- a/test/pytest/service-desktop/test_security.py +++ b/test/pytest/service-desktop/test_security.py @@ -31,7 +31,7 @@ def test_all_other_endpoints_phone_locked_with_code(harness): body = {} endpoints_list = ["deviceInfo", "update", - "filesystemUpload", + "filesystem", "backup", "restore", "factory",