Open h0bb3 opened 11 months ago
If you decide to work on this for some file, create a new issue for that file and remove the file from the list above/and or add a link to the new issue as a comment.
Name | Stmts | Miss | Cover |
---|---|---|---|
server/init.py | 0 | 0 | 100% |
server/main.py | 37 | 37 | 0% |
server/app.py | 65 | 65 | 0% |
server/bootstrap.py | 69 | 11 | 84% |
server/crypto/init.py | 0 | 0 | 100% |
server/crypto/crypto.py | 59 | 25 | 58% |
server/crypto/cryptoauthlib_mock.py | 1408 | 1105 | 22% |
server/crypto/exceptions_mock.py | 36 | 0 | 100% |
server/crypto/hazmat_mock.py | 12 | 8 | 33% |
server/crypto/status_mock.py | 61 | 10 | 84% |
server/inverters/InverterTCP.py | 75 | 41 | 45% |
server/inverters/init.py | 0 | 0 | 100% |
server/inverters/inverter.py | 37 | 16 | 57% |
server/inverters/inverter_types.py | 11 | 0 | 100% |
server/request.py | 2 | 0 | 100% |
server/rest_request_test.py | 0 | 0 | 100% |
server/tasks/init.py | 0 | 0 | 100% |
server/tasks/checkForBluetoothRequestTask.py | 39 | 39 | 0% |
server/tasks/checkForWebRequestTask.py | 19 | 11 | 42% |
server/tasks/getNameTask.py | 19 | 1 | 95% |
server/tasks/harvest.py | 61 | 1 | 98% |
server/tasks/initializeTask.py | 23 | 0 | 100% |
server/tasks/openInverterTask.py | 40 | 26 | 35% |
server/tasks/openWiFiConTask.py | 17 | 10 | 41% |
server/tasks/srcfulAPICallTask.py | 60 | 7 | 88% |
server/tasks/task.py | 14 | 5 | 64% |
server/test/init.py | 0 | 0 | 100% |
server/test/bootstrap_test.py | 36 | 0 | 100% |
server/test/crypto/init.py | 0 | 0 | 100% |
server/test/crypto/crypto_test.py | 19 | 0 | 100% |
server/test/request_test.py | 3 | 0 | 100% |
server/test/tasks/init.py | 0 | 0 | 100% |
server/test/tasks/checkForWebRequestTask_test.py | 4 | 0 | 100% |
server/test/tasks/getNameTask_test.py | 13 | 0 | 100% |
server/test/tasks/harvest_test.py | 177 | 3 | 98% |
server/test/tasks/intitializeTask_test.py | 31 | 0 | 100% |
server/test/tasks/srcfulAPICallTask_test.py | 79 | 0 | 100% |
server/test/web/init.py | 0 | 0 | 100% |
server/test/web/get/crypto_test.py | 31 | 3 | 90% |
server/test/web/get/name_test.py | 41 | 2 | 95% |
server/test/web/post/init.py | 0 | 0 | 100% |
server/test/web/post/initialize_test.py | 2 | 0 | 100% |
server/test/web/post/logger_test.py | 29 | 0 | 100% |
server/test/web/server_test.py | 50 | 5 | 90% |
server/web/init.py | 0 | 0 | 100% |
server/web/get/init.py | 5 | 0 | 100% |
server/web/get/crypto.py | 10 | 0 | 100% |
server/web/get/hello.py | 6 | 2 | 67% |
server/web/get/logger.py | 16 | 11 | 31% |
server/web/get/name.py | 12 | 0 | 100% |
server/web/get/root.py | 35 | 30 | 14% |
server/web/post/init.py | 4 | 0 | 100% |
server/web/post/initialize.py | 16 | 10 | 38% |
server/web/post/inverter.py | 20 | 11 | 45% |
server/web/post/logger.py | 22 | 1 | 95% |
server/web/post/wifi.py | 19 | 10 | 47% |
server/web/server.py | 89 | 35 | 61% |
server/wifi/init.py | 0 | 0 | 100% |
server/wifi/wifi.py | 56 | 43 | 23% |
TOTAL | 2989 | 1584 | 47% |
Coverage report: 59% coverage.py v7.3.2, created at 2023-12-28 00:18 +0100
Module | statements | missing | excluded | coverage |
---|---|---|---|---|
server/init.py | 0 | 0 | 0 | 100% |
server/main.py | 37 | 37 | 0 | 0% |
server/app.py | 64 | 50 | 0 | 22% |
server/bootstrap.py | 83 | 19 | 0 | 77% |
server/crypto/init.py | 0 | 0 | 0 | 100% |
server/crypto/crypto.py | 59 | 19 | 0 | 68% |
server/crypto/cryptoauthlib_mock.py | 1408 | 1098 | 0 | 22% |
server/crypto/exceptions_mock.py | 36 | 0 | 0 | 100% |
server/crypto/hazmat_mock.py | 12 | 0 | 0 | 100% |
server/crypto/status_mock.py | 61 | 10 | 0 | 84% |
server/inverters/InverterRTU.py | 86 | 45 | 0 | 48% |
server/inverters/InverterTCP.py | 84 | 47 | 0 | 44% |
server/inverters/init.py | 0 | 0 | 0 | 100% |
server/inverters/inverter.py | 88 | 24 | 0 | 73% |
server/inverters/inverter_types.py | 13 | 0 | 0 | 100% |
server/request.py | 2 | 0 | 0 | 100% |
server/rest_request_test.py | 0 | 0 | 0 | 100% |
server/tasks/init.py | 0 | 0 | 0 | 100% |
server/tasks/checkForWebRequestTask.py | 19 | 11 | 0 | 42% |
server/tasks/getNameTask.py | 19 | 1 | 0 | 95% |
server/tasks/harvest.py | 61 | 1 | 0 | 98% |
server/tasks/initializeTask.py | 23 | 0 | 0 | 100% |
server/tasks/modbusWriteTask.py | 37 | 2 | 0 | 95% |
server/tasks/openInverterTask.py | 40 | 26 | 0 | 35% |
server/tasks/openWiFiConTask.py | 17 | 8 | 0 | 53% |
server/tasks/srcfulAPICallTask.py | 60 | 7 | 0 | 88% |
server/tasks/task.py | 14 | 5 | 0 | 64% |
server/test/init.py | 0 | 0 | 0 | 100% |
server/test/app_test.py | 1 | 0 | 0 | 100% |
server/test/bootstrap_test.py | 43 | 2 | 0 | 95% |
server/test/crypto/init.py | 0 | 0 | 0 | 100% |
server/test/crypto/crypto_test.py | 19 | 0 | 0 | 100% |
server/test/request_test.py | 3 | 0 | 0 | 100% |
server/test/tasks/init.py | 0 | 0 | 0 | 100% |
server/test/tasks/checkForWebRequestTask_test.py | 4 | 0 | 0 | 100% |
server/test/tasks/getNameTask_test.py | 13 | 0 | 0 | 100% |
server/test/tasks/harvest_test.py | 177 | 3 | 0 | 98% |
server/test/tasks/intitializeTask_test.py | 31 | 0 | 0 | 100% |
server/test/tasks/modbusWriteTask_test.py | 24 | 0 | 0 | 100% |
server/test/tasks/srcfulAPICallTask_test.py | 79 | 0 | 0 | 100% |
server/test/web/init.py | 0 | 0 | 0 | 100% |
server/test/web/get/crypto_test.py | 31 | 3 | 0 | 90% |
server/test/web/get/hello_test.py | 14 | 0 | 0 | 100% |
server/test/web/get/inverter_test.py | 20 | 0 | 0 | 100% |
server/test/web/get/logger_test.py | 15 | 0 | 0 | 100% |
server/test/web/get/modbus_test.py | 122 | 0 | 0 | 100% |
server/test/web/get/name_test.py | 41 | 2 | 0 | 95% |
server/test/web/get/network_test.py | 15 | 0 | 0 | 100% |
server/test/web/get/root_test.py | 10 | 0 | 0 | 100% |
server/test/web/post/init.py | 0 | 0 | 0 | 100% |
server/test/web/post/createInverter_test.py | 27 | 0 | 0 | 100% |
server/test/web/post/echo_test.py | 14 | 0 | 0 | 100% |
server/test/web/post/initialize_test.py | 15 | 0 | 0 | 100% |
server/test/web/post/logger_test.py | 40 | 0 | 0 | 100% |
server/test/web/post/modbus_test.py | 51 | 0 | 0 | 100% |
server/test/web/post/wifi_test.py | 24 | 1 | 0 | 96% |
server/test/web/server_test.py | 89 | 5 | 0 | 94% |
server/web/init.py | 0 | 0 | 0 | 100% |
server/web/handler/init.py | 3 | 0 | 0 | 100% |
server/web/handler/get/init.py | 8 | 0 | 0 | 100% |
server/web/handler/get/crypto.py | 12 | 0 | 0 | 100% |
server/web/handler/get/hello.py | 7 | 0 | 0 | 100% |
server/web/handler/get/inverter.py | 13 | 1 | 0 | 92% |
server/web/handler/get/logger.py | 18 | 0 | 0 | 100% |
server/web/handler/get/modbus.py | 40 | 1 | 0 | 98% |
server/web/handler/get/name.py | 14 | 0 | 0 | 100% |
server/web/handler/get/network.py | 7 | 0 | 0 | 100% |
server/web/handler/get/root.py | 38 | 1 | 0 | 97% |
server/web/handler/handler.py | 7 | 2 | 0 | 71% |
server/web/handler/post/init.py | 7 | 0 | 0 | 100% |
server/web/handler/post/echo.py | 7 | 0 | 0 | 100% |
server/web/handler/post/initialize.py | 20 | 3 | 0 | 85% |
server/web/handler/post/inverterRTU.py | 24 | 6 | 0 | 75% |
server/web/handler/post/inverterTCP.py | 24 | 6 | 0 | 75% |
server/web/handler/post/logger.py | 23 | 1 | 0 | 96% |
server/web/handler/post/modbus.py | 45 | 4 | 0 | 91% |
server/web/handler/post/wifi.py | 21 | 3 | 0 | 86% |
server/web/handler/requestData.py | 9 | 0 | 0 | 100% |
server/web/server.py | 110 | 25 | 0 | 77% |
server/wifi/init.py | 0 | 0 | 0 | 100% |
server/wifi/wifi.py | 70 | 53 | 0 | 24% |
Total | 3772 | 1532 | 0 | 59% |
coverage.py v7.3.2, created at 2023-12-28 00:18 +0100
Mocking is nice but in python it is easy to mock a method that does not exist in the mocked class and the class under test will work in test but not in productions.
A trick we can use is to test that the method mocked exists in the mocked class using
assert 'get_config' in dir(Inverter)
inverter.get_config.return_value = exp
This is probably a good way of fortifying our tests.
web.server is missing tests for the http method handling this seems like a rather important part to fortify.
Coverage report: 49% created at 2024-01-28 18:16 +0100
Module | statements | missing | excluded | coverage |
---|---|---|---|---|
server__main__.py | 36 | 36 | 0 | 0% |
server\tasks\modbusLiveLog.py | 23 | 23 | 0 | 0% |
server\web\handler\post\livelog.py | 28 | 28 | 0 | 0% |
server\wifi\scan.py | 60 | 48 | 0 | 20% |
server\app.py | 69 | 54 | 0 | 22% |
server\crypto\cryptoauthlib_mock.py | 1408 | 1087 | 0 | 23% |
server\wifi\wifi.py | 71 | 53 | 0 | 25% |
server\tasks\checkForWebRequestTask.py | 19 | 10 | 0 | 47% |
server\web\handler\delete\inverter.py | 14 | 7 | 0 | 50% |
server\web\handler\get\wifi.py | 28 | 14 | 0 | 50% |
server\tasks\openWiFiConTask.py | 19 | 9 | 0 | 53% |
server\tasks\task.py | 15 | 7 | 0 | 53% |
server\tasks\openInverterTask.py | 37 | 16 | 0 | 57% |
server\inverters\inverter.py | 87 | 33 | 0 | 62% |
server\web\server.py | 149 | 55 | 0 | 63% |
server\crypto\crypto.py | 63 | 17 | 0 | 73% |
server\web\handler\handler.py | 25 | 6 | 0 | 76% |
server\web\handler\post\inverterRTU.py | 25 | 6 | 0 | 76% |
server\web\handler\post\inverterTCP.py | 23 | 5 | 0 | 78% |
server\bootstrap.py | 83 | 17 | 0 | 80% |
server\inverters\registerValue.py | 85 | 15 | 0 | 82% |
server\web\handler\post\initialize.py | 20 | 3 | 0 | 85% |
server\web\handler\post\wifi.py | 22 | 3 | 0 | 86% |
server\web\handler\post\modbus.py | 49 | 6 | 0 | 88% |
server\crypto\status_mock.py | 61 | 7 | 0 | 89% |
server\inverters\InverterTCP.py | 29 | 3 | 0 | 90% |
server\tasks\modbusWriteTask.py | 41 | 4 | 0 | 90% |
server\tasks\srcfulAPICallTask.py | 67 | 7 | 0 | 90% |
server\inverters\InverterRTU.py | 32 | 3 | 0 | 91% |
server\web\handler\get\inverter.py | 15 | 1 | 0 | 93% |
server\tasks\initializeTask.py | 33 | 2 | 0 | 94% |
server\tasks\getNameTask.py | 20 | 1 | 0 | 95% |
server\web\handler\post\logger.py | 24 | 1 | 0 | 96% |
server\blackboard.py | 37 | 1 | 0 | 97% |
server\web\handler\get\modbus.py | 33 | 1 | 0 | 97% |
server\tasks\harvest.py | 60 | 1 | 0 | 98% |
server__init__.py | 0 | 0 | 0 | 100% |
server\crypto__init__.py | 0 | 0 | 0 | 100% |
server\crypto\exceptions_mock.py | 36 | 0 | 0 | 100% |
server\crypto\hazmat_mock.py | 12 | 0 | 0 | 100% |
server\inverters__init__.py | 0 | 0 | 0 | 100% |
server\inverters\inverter_types.py | 13 | 0 | 0 | 100% |
server\request.py | 2 | 0 | 0 | 100% |
server\rest_request_test.py | 0 | 0 | 0 | 100% |
server\tasks__init__.py | 0 | 0 | 0 | 100% |
server\web__init__.py | 0 | 0 | 0 | 100% |
server\web\handler__init__.py | 4 | 0 | 0 | 100% |
server\web\handler\delete__init__.py | 1 | 0 | 0 | 100% |
server\web\handler\get__init__.py | 10 | 0 | 0 | 100% |
server\web\handler\get\crypto.py | 13 | 0 | 0 | 100% |
server\web\handler\get\hello.py | 9 | 0 | 0 | 100% |
server\web\handler\get\logger.py | 19 | 0 | 0 | 100% |
server\web\handler\get\name.py | 15 | 0 | 0 | 100% |
server\web\handler\get\network.py | 9 | 0 | 0 | 100% |
server\web\handler\get\root.py | 22 | 0 | 0 | 100% |
server\web\handler\get\uptime.py | 8 | 0 | 0 | 100% |
server\web\handler\post__init__.py | 7 | 0 | 0 | 100% |
server\web\handler\post\echo.py | 9 | 0 | 0 | 100% |
server\web\handler\requestData.py | 8 | 0 | 0 | 100% |
server\wifi__init__.py | 0 | 0 | 0 | 100% |
Total | 3107 | 1590 | 0 | 49% |
Coverage report: 51%
created at 2024-02-13 23:30
Focus: server/inverters/inverter.py
(85%)
Module | statements | missing | excluded | coverage |
---|---|---|---|---|
server/init.py | 0 | 0 | 0 | 100% |
server/crypto/init.py | 0 | 0 | 0 | 100% |
server/crypto/exceptions_mock.py | 36 | 0 | 0 | 100% |
server/crypto/hazmat_mock.py | 12 | 0 | 0 | 100% |
server/inverters/InverterRTU.py | 33 | 0 | 0 | 100% |
server/inverters/InverterTCP.py | 28 | 0 | 0 | 100% |
server/inverters/init.py | 0 | 0 | 0 | 100% |
server/inverters/enums.py | 11 | 0 | 0 | 100% |
server/inverters/supported_inverters/init.py | 0 | 0 | 0 | 100% |
server/inverters/supported_inverters/inverters/growatt.py | 2 | 0 | 0 | 100% |
server/inverters/supported_inverters/inverters/huawei.py | 2 | 0 | 0 | 100% |
server/inverters/supported_inverters/inverters/lqt40s.py | 2 | 0 | 0 | 100% |
server/inverters/supported_inverters/inverters/solaredge.py | 2 | 0 | 0 | 100% |
server/inverters/supported_inverters/inverters/sungrow.py | 2 | 0 | 0 | 100% |
server/inverters/supported_inverters/inverters/sungrow_hybrid.py | 2 | 0 | 0 | 100% |
server/request.py | 2 | 0 | 0 | 100% |
server/rest_request_test.py | 0 | 0 | 0 | 100% |
server/tasks/init.py | 0 | 0 | 0 | 100% |
server/tasks/harvest.py | 69 | 0 | 0 | 100% |
server/web/init.py | 0 | 0 | 0 | 100% |
server/web/handler/init.py | 4 | 0 | 0 | 100% |
server/web/handler/delete/init.py | 1 | 0 | 0 | 100% |
server/web/handler/get/init.py | 12 | 0 | 0 | 100% |
server/web/handler/get/crypto.py | 13 | 0 | 0 | 100% |
server/web/handler/get/hello.py | 9 | 0 | 0 | 100% |
server/web/handler/get/logger.py | 19 | 0 | 0 | 100% |
server/web/handler/get/name.py | 15 | 0 | 0 | 100% |
server/web/handler/get/network.py | 15 | 0 | 0 | 100% |
server/web/handler/get/root.py | 22 | 0 | 0 | 100% |
server/web/handler/get/supported.py | 11 | 0 | 0 | 100% |
server/web/handler/get/uptime.py | 8 | 0 | 0 | 100% |
server/web/handler/get/version.py | 9 | 0 | 0 | 100% |
server/web/handler/post/init.py | 7 | 0 | 0 | 100% |
server/web/handler/post/echo.py | 9 | 0 | 0 | 100% |
server/web/handler/requestData.py | 8 | 0 | 0 | 100% |
server/wifi/init.py | 0 | 0 | 0 | 100% |
server/blackboard.py | 57 | 1 | 0 | 98% |
server/inverters/supported_inverters/profiles.py | 34 | 1 | 0 | 97% |
server/web/handler/get/modbus.py | 33 | 1 | 0 | 97% |
server/web/handler/post/logger.py | 24 | 1 | 0 | 96% |
server/tasks/getNameTask.py | 20 | 1 | 0 | 95% |
server/tasks/initializeTask.py | 33 | 2 | 0 | 94% |
server/web/handler/get/inverter.py | 15 | 1 | 0 | 93% |
server/tasks/modbusWriteTask.py | 41 | 4 | 0 | 90% |
server/tasks/srcfulAPICallTask.py | 67 | 7 | 0 | 90% |
server/crypto/status_mock.py | 61 | 7 | 0 | 89% |
server/web/handler/post/modbus.py | 49 | 6 | 0 | 88% |
server/web/handler/post/wifi.py | 22 | 3 | 0 | 86% |
server/inverters/inverter.py | 103 | 15 | 0 | 85% |
server/web/handler/post/initialize.py | 20 | 3 | 0 | 85% |
server/inverters/registerValue.py | 85 | 15 | 0 | 82% |
server/bootstrap.py | 84 | 17 | 0 | 80% |
server/web/handler/post/inverterTCP.py | 23 | 5 | 0 | 78% |
server/web/handler/handler.py | 25 | 6 | 0 | 76% |
server/web/handler/post/inverterRTU.py | 25 | 6 | 0 | 76% |
server/crypto/crypto.py | 63 | 17 | 0 | 73% |
server/web/server.py | 149 | 55 | 0 | 63% |
server/tasks/scanWiFiTask.py | 25 | 10 | 0 | 60% |
server/tasks/openInverterTask.py | 38 | 17 | 0 | 55% |
server/tasks/openWiFiConTask.py | 19 | 9 | 0 | 53% |
server/tasks/task.py | 15 | 7 | 0 | 53% |
server/web/handler/delete/inverter.py | 14 | 7 | 0 | 50% |
server/web/handler/get/wifi.py | 28 | 14 | 0 | 50% |
server/tasks/checkForWebRequestTask.py | 19 | 10 | 0 | 47% |
server/wifi/wifi.py | 71 | 53 | 0 | 25% |
server/app.py | 69 | 53 | 0 | 23% |
server/crypto/cryptoauthlib_mock.py | 1408 | 1087 | 0 | 23% |
server/wifi/scan.py | 60 | 46 | 0 | 23% |
server/main.py | 55 | 55 | 0 | 0% |
server/tasks/modbusLiveLog.py | 23 | 23 | 0 | 0% |
server/web/handler/post/livelog.py | 28 | 28 | 0 | 0% |
Total | 3270 | 1593 | 0 | 51% |
pytest --cov=server server_unit_test/
---------- coverage: platform win32, python 3.11.5-final-0 -----------
Name Stmts Miss Cover
--------------------------------------------------------------------------------------
server\__init__.py 0 0 100%
server\__main__.py 55 55 0%
server\app.py 69 53 23%
server\blackboard.py 57 1 98%
server\bootstrap.py 83 17 80%
server\crypto\__init__.py 0 0 100%
server\crypto\crypto.py 63 17 73%
server\crypto\cryptoauthlib_mock.py 1408 1087 23%
server\crypto\exceptions_mock.py 36 0 100%
server\crypto\hazmat_mock.py 12 0 100%
server\crypto\status_mock.py 61 7 89%
server\inverters\InverterRTU.py 33 2 94%
server\inverters\InverterTCP.py 28 0 100%
server\inverters\__init__.py 0 0 100%
server\inverters\enums.py 24 0 100%
server\inverters\inverter.py 103 29 72%
server\inverters\registerValue.py 85 15 82%
server\inverters\supported_inverters\__init__.py 0 0 100%
server\inverters\supported_inverters\inverters\goodwe.py 2 0 100%
server\inverters\supported_inverters\inverters\growatt.py 2 0 100%
server\inverters\supported_inverters\inverters\huawei.py 2 0 100%
server\inverters\supported_inverters\inverters\lqt40s.py 2 0 100%
server\inverters\supported_inverters\inverters\solaredge.py 2 0 100%
server\inverters\supported_inverters\inverters\sungrow.py 2 0 100%
server\inverters\supported_inverters\inverters\sungrow_hybrid.py 2 0 100%
server\inverters\supported_inverters\profiles.py 36 0 100%
server\request.py 2 0 100%
server\rest_request_test.py 0 0 100%
server\tasks\__init__.py 0 0 100%
server\tasks\checkForWebRequestTask.py 19 10 47%
server\tasks\getNameTask.py 20 1 95%
server\tasks\harvest.py 69 0 100%
server\tasks\initializeTask.py 33 2 94%
server\tasks\modbusLiveLog.py 23 23 0%
server\tasks\modbusWriteTask.py 41 4 90%
server\tasks\openInverterTask.py 38 17 55%
server\tasks\openWiFiConTask.py 19 9 53%
server\tasks\scanWiFiTask.py 25 10 60%
server\tasks\srcfulAPICallTask.py 67 7 90%
server\tasks\task.py 15 7 53%
server\web\__init__.py 0 0 100%
server\web\handler\__init__.py 4 0 100%
server\web\handler\delete\__init__.py 1 0 100%
server\web\handler\delete\inverter.py 14 7 50%
server\web\handler\get\__init__.py 12 0 100%
server\web\handler\get\crypto.py 13 0 100%
server\web\handler\get\hello.py 9 0 100%
server\web\handler\get\inverter.py 15 1 93%
server\web\handler\get\logger.py 19 0 100%
server\web\handler\get\modbus.py 33 1 97%
server\web\handler\get\name.py 15 0 100%
server\web\handler\get\network.py 15 0 100%
server\web\handler\get\root.py 22 0 100%
server\web\handler\get\supported.py 11 0 100%
server\web\handler\get\uptime.py 8 0 100%
server\web\handler\get\version.py 9 0 100%
server\web\handler\get\wifi.py 28 14 50%
server\web\handler\handler.py 25 6 76%
server\web\handler\post\__init__.py 7 0 100%
server\web\handler\post\echo.py 9 0 100%
server\web\handler\post\initialize.py 20 3 85%
server\web\handler\post\inverterRTU.py 25 6 76%
server\web\handler\post\inverterTCP.py 23 5 78%
server\web\handler\post\livelog.py 28 28 0%
server\web\handler\post\logger.py 24 1 96%
server\web\handler\post\modbus.py 49 6 88%
server\web\handler\post\wifi.py 22 3 86%
server\web\handler\requestData.py 8 0 100%
server\web\server.py 149 55 63%
server\wifi\__init__.py 0 0 100%
server\wifi\scan.py 60 46 23%
server\wifi\wifi.py 71 53 25%
--------------------------------------------------------------------------------------
TOTAL 3286 1608 51%
pytest --cov=server server_unit_test/
Sadly decreased by 10% - I think some effort should be put here to up the numbers esp parts wit 0%
Name Stmts Miss Cover
--------------------------------------------------------------------------------------
server/__init__.py 0 0 100%
server/__main__.py 55 55 0%
server/app.py 77 60 22%
server/blackboard.py 108 4 96%
server/bootstrap.py 91 24 74%
server/crypto/__init__.py 0 0 100%
server/crypto/crypto.py 63 21 67%
server/crypto/cryptoauthlib_mock.py 1408 1408 0%
server/crypto/exceptions_mock.py 36 36 0%
server/crypto/hazmat_mock.py 12 12 0%
server/crypto/status_mock.py 61 61 0%
server/inverters/ModbusRTU.py 33 0 100%
server/inverters/ModbusTCP.py 28 0 100%
server/inverters/SolarmanTCP.py 37 17 54%
server/inverters/__init__.py 0 0 100%
server/inverters/enums.py 30 0 100%
server/inverters/inverter.py 93 20 78%
server/inverters/registerValue.py 86 17 80%
server/inverters/supported_inverters/__init__.py 0 0 100%
server/inverters/supported_inverters/inverters/deye.py 2 0 100%
server/inverters/supported_inverters/inverters/deye_hybrid.py 2 0 100%
server/inverters/supported_inverters/inverters/goodwe.py 2 0 100%
server/inverters/supported_inverters/inverters/growatt.py 2 0 100%
server/inverters/supported_inverters/inverters/huawei.py 2 0 100%
server/inverters/supported_inverters/inverters/lqt40s.py 2 0 100%
server/inverters/supported_inverters/inverters/solaredge.py 2 0 100%
server/inverters/supported_inverters/inverters/sungrow.py 2 0 100%
server/inverters/supported_inverters/inverters/sungrow_hybrid.py 2 0 100%
server/inverters/supported_inverters/profiles.py 38 1 97%
server/message.py 26 0 100%
server/request.py 2 0 100%
server/rest_request_test.py 0 0 100%
server/tasks/__init__.py 0 0 100%
server/tasks/checkForWebRequestTask.py 15 6 60%
server/tasks/getNameTask.py 20 1 95%
server/tasks/harvest.py 69 0 100%
server/tasks/harvestFactory.py 12 1 92%
server/tasks/initializeTask.py 33 2 94%
server/tasks/itask.py 11 5 55%
server/tasks/modbusLiveLog.py 23 23 0%
server/tasks/modbusWriteTask.py 41 4 90%
server/tasks/openInverterTask.py 40 19 52%
server/tasks/openWiFiConTask.py 19 9 53%
server/tasks/scanWiFiTask.py 25 10 60%
server/tasks/srcfulAPICallTask.py 67 7 90%
server/tasks/task.py 18 8 56%
server/web/__init__.py 0 0 100%
server/web/handler/__init__.py 4 0 100%
server/web/handler/delete/__init__.py 2 0 100%
server/web/handler/delete/inverter.py 14 7 50%
server/web/handler/delete/notification.py 11 0 100%
server/web/handler/get/__init__.py 13 0 100%
server/web/handler/get/crypto.py 13 0 100%
server/web/handler/get/hello.py 9 0 100%
server/web/handler/get/inverter.py 15 1 93%
server/web/handler/get/logger.py 19 0 100%
server/web/handler/get/modbus.py 33 1 97%
server/web/handler/get/name.py 15 0 100%
server/web/handler/get/network.py 15 0 100%
server/web/handler/get/notification.py 23 2 91%
server/web/handler/get/root.py 22 0 100%
server/web/handler/get/supported.py 11 0 100%
server/web/handler/get/uptime.py 8 0 100%
server/web/handler/get/version.py 9 0 100%
server/web/handler/get/wifi.py 28 14 50%
server/web/handler/handler.py 25 6 76%
server/web/handler/post/__init__.py 8 0 100%
server/web/handler/post/echo.py 9 0 100%
server/web/handler/post/initialize.py 20 3 85%
server/web/handler/post/livelog.py 28 28 0%
server/web/handler/post/logger.py 24 1 96%
server/web/handler/post/modbus.py 49 6 88%
server/web/handler/post/modbusRTU.py 25 6 76%
server/web/handler/post/modbusSolarman.py 23 12 48%
server/web/handler/post/modbusTCP.py 23 5 78%
server/web/handler/post/wifi.py 22 3 86%
server/web/handler/requestData.py 9 0 100%
server/web/server.py 148 55 63%
server/wifi/__init__.py 0 0 100%
server/wifi/scan.py 60 36 40%
server/wifi/wifi.py 71 36 49%
--------------------------------------------------------------------------------------
TOTAL 3503 2053 41%
one thing that scews the statis is the mocked crypto stuff... we should probably do something about that, at least mock at a higher level to reduce the code size.
I just removed the unused mocked crypto functions and voila:
---------- coverage: platform linux, python 3.10.12-final-0 ----------
Name Stmts Miss Cover
--------------------------------------------------------------------------------------
server/__init__.py 0 0 100%
server/__main__.py 55 55 0%
server/app.py 109 32 71%
server/blackboard.py 110 5 95%
server/bootstrap.py 91 24 74%
server/crypto/__init__.py 0 0 100%
server/crypto/crypto.py 68 19 72%
server/crypto/cryptoauthlib_mock.py 73 73 0%
server/crypto/exceptions_mock.py 36 36 0%
server/crypto/hazmat_mock.py 12 12 0%
server/crypto/status_mock.py 61 61 0%
server/inverters/ModbusRTU.py 33 0 100%
server/inverters/ModbusTCP.py 28 0 100%
server/inverters/SolarmanTCP.py 37 17 54%
server/inverters/__init__.py 0 0 100%
server/inverters/enums.py 31 0 100%
server/inverters/inverter.py 94 20 79%
server/inverters/registerValue.py 86 17 80%
server/inverters/supported_inverters/__init__.py 0 0 100%
server/inverters/supported_inverters/inverters/deye.py 2 0 100%
server/inverters/supported_inverters/inverters/deye_hybrid.py 2 0 100%
server/inverters/supported_inverters/inverters/goodwe.py 2 0 100%
server/inverters/supported_inverters/inverters/growatt.py 2 0 100%
server/inverters/supported_inverters/inverters/huawei.py 2 0 100%
server/inverters/supported_inverters/inverters/lqt40s.py 2 0 100%
server/inverters/supported_inverters/inverters/sma.py 2 0 100%
server/inverters/supported_inverters/inverters/solaredge.py 2 0 100%
server/inverters/supported_inverters/inverters/sungrow.py 2 0 100%
server/inverters/supported_inverters/inverters/sungrow_hybrid.py 2 0 100%
server/inverters/supported_inverters/profiles.py 39 1 97%
server/message.py 26 0 100%
server/request.py 2 0 100%
server/rest_request_test.py 0 0 100%
server/tasks/__init__.py 0 0 100%
server/tasks/checkForWebRequestTask.py 19 7 63%
server/tasks/getNameTask.py 20 1 95%
server/tasks/harvest.py 70 0 100%
server/tasks/harvestFactory.py 12 1 92%
server/tasks/initializeTask.py 33 2 94%
server/tasks/itask.py 17 10 41%
server/tasks/modbusLiveLog.py 23 23 0%
server/tasks/modbusWriteTask.py 41 4 90%
server/tasks/openInverterPerpetualTask.py 31 2 94%
server/tasks/openInverterTask.py 40 10 75%
server/tasks/openWiFiConTask.py 19 9 53%
server/tasks/scanWiFiTask.py 25 10 60%
server/tasks/srcfulAPICallTask.py 67 7 90%
server/tasks/task.py 10 2 80%
server/web/__init__.py 0 0 100%
server/web/handler/__init__.py 4 0 100%
server/web/handler/delete/__init__.py 2 0 100%
server/web/handler/delete/inverter.py 14 7 50%
server/web/handler/delete/notification.py 11 0 100%
server/web/handler/get/__init__.py 13 0 100%
server/web/handler/get/crypto.py 13 0 100%
server/web/handler/get/hello.py 9 0 100%
server/web/handler/get/inverter.py 15 1 93%
server/web/handler/get/logger.py 19 0 100%
server/web/handler/get/modbus.py 33 1 97%
server/web/handler/get/name.py 15 0 100%
server/web/handler/get/network.py 17 1 94%
server/web/handler/get/notification.py 23 2 91%
server/web/handler/get/root.py 22 0 100%
server/web/handler/get/supported.py 11 0 100%
server/web/handler/get/uptime.py 8 0 100%
server/web/handler/get/version.py 9 0 100%
server/web/handler/get/wifi.py 28 14 50%
server/web/handler/handler.py 25 6 76%
server/web/handler/post/__init__.py 8 0 100%
server/web/handler/post/echo.py 9 0 100%
server/web/handler/post/initialize.py 20 3 85%
server/web/handler/post/livelog.py 28 28 0%
server/web/handler/post/logger.py 24 1 96%
server/web/handler/post/modbus.py 49 6 88%
server/web/handler/post/modbusRTU.py 25 6 76%
server/web/handler/post/modbusSolarman.py 23 12 48%
server/web/handler/post/modbusTCP.py 23 5 78%
server/web/handler/post/wifi.py 22 3 86%
server/web/handler/requestData.py 9 0 100%
server/web/server.py 151 57 62%
server/wifi/__init__.py 0 0 100%
server/wifi/scan.py 60 36 40%
server/wifi/wifi.py 98 38 61%
--------------------------------------------------------------------------------------
TOTAL 2278 687 70%
pog
Declining trend in test coverage.
---------- coverage: platform linux, python 3.10.12-final-0 ----------
Name Stmts Miss Cover
----------------------------------------------------------------------
server/__init__.py 0 0 100%
server/__main__.py 55 55 0%
server/app.py 109 32 71%
server/blackboard.py 109 3 97%
server/bootstrap.py 91 24 74%
server/crypto/__init__.py 0 0 100%
server/crypto/crypto.py 110 12 89%
server/crypto/cryptoauthlib_mock.py 73 73 0%
server/crypto/exceptions_mock.py 36 36 0%
server/crypto/hazmat_mock.py 12 12 0%
server/crypto/revive.py 42 42 0%
server/crypto/status_mock.py 61 61 0%
server/inverters/ModbusRTU.py 33 0 100%
server/inverters/ModbusTCP.py 28 0 100%
server/inverters/SolarmanTCP.py 37 17 54%
server/inverters/__init__.py 0 0 100%
server/inverters/enums.py 21 0 100%
server/inverters/inverter.py 98 22 78%
server/inverters/registerValue.py 86 17 80%
server/inverters/supported_inverters/__init__.py 0 0 100%
server/inverters/supported_inverters/profiles.py 46 1 98%
server/message.py 26 0 100%
server/request.py 2 0 100%
server/rest_request_test.py 0 0 100%
server/tasks/__init__.py 0 0 100%
server/tasks/checkForWebRequestTask.py 19 7 63%
server/tasks/getNameTask.py 19 1 95%
server/tasks/harvest.py 54 0 100%
server/tasks/harvestFactory.py 13 1 92%
server/tasks/harvestTransport.py 68 25 63%
server/tasks/initializeTask.py 33 3 91%
server/tasks/itask.py 17 10 41%
server/tasks/modbusLiveLog.py 23 23 0%
server/tasks/modbusWriteTask.py 41 4 90%
server/tasks/openInverterPerpetualTask.py 31 2 94%
server/tasks/openInverterTask.py 40 10 75%
server/tasks/openWiFiConTask.py 19 9 53%
server/tasks/scanWiFiTask.py 25 10 60%
server/tasks/srcfulAPICallTask.py 70 7 90%
server/tasks/task.py 10 2 80%
server/web/__init__.py 0 0 100%
server/web/handler/__init__.py 4 0 100%
server/web/handler/delete/__init__.py 2 0 100%
server/web/handler/delete/inverter.py 14 7 50%
server/web/handler/delete/notification.py 11 0 100%
server/web/handler/get/__init__.py 13 0 100%
server/web/handler/get/crypto.py 27 7 74%
server/web/handler/get/hello.py 9 0 100%
server/web/handler/get/inverter.py 15 1 93%
server/web/handler/get/logger.py 19 0 100%
server/web/handler/get/modbus.py 33 1 97%
server/web/handler/get/name.py 15 0 100%
server/web/handler/get/network.py 46 24 48%
server/web/handler/get/notification.py 23 2 91%
server/web/handler/get/root.py 20 2 90%
server/web/handler/get/supported.py 13 0 100%
server/web/handler/get/uptime.py 8 0 100%
server/web/handler/get/version.py 9 0 100%
server/web/handler/get/wifi.py 28 14 50%
server/web/handler/handler.py 25 6 76%
server/web/handler/post/__init__.py 8 0 100%
server/web/handler/post/echo.py 9 0 100%
server/web/handler/post/initialize.py 20 3 85%
server/web/handler/post/livelog.py 28 28 0%
server/web/handler/post/logger.py 24 1 96%
server/web/handler/post/modbus.py 49 6 88%
server/web/handler/post/modbusRTU.py 25 6 76%
server/web/handler/post/modbusSolarman.py 23 12 48%
server/web/handler/post/modbusTCP.py 23 5 78%
server/web/handler/post/wifi.py 22 3 86%
server/web/handler/requestData.py 9 0 100%
server/web/server.py 161 41 75%
server/wifi/__init__.py 0 0 100%
server/wifi/scan.py 60 36 40%
server/wifi/wifi.py 102 42 59%
----------------------------------------------------------------------
TOTAL 2454 768 69%
A significant increase in coverage, mostly due to new ones for the tasks
and web
. Well done @h0bb3! ⭐
---------- coverage: platform darwin, python 3.11.9-final-0 ----------
Name Stmts Miss Cover
-------------------------------------------------------------------------------------------
server/__init__.py 0 0 100%
server/__main__.py 55 55 0%
server/app.py 111 33 70%
server/blackboard.py 118 5 96%
server/bootstrap.py 91 24 74%
server/crypto/__init__.py 0 0 100%
server/crypto/crypto.py 110 9 92%
server/crypto/cryptoauthlib_mock.py 73 31 58%
server/crypto/exceptions_mock.py 36 0 100%
server/crypto/hazmat_mock.py 12 0 100%
server/crypto/revive.py 42 42 0%
server/crypto/revive_run.py 10 6 40%
server/crypto/status_mock.py 61 10 84%
server/inverters/ModbusRTU.py 35 1 97%
server/inverters/ModbusTCP.py 30 1 97%
server/inverters/SolarmanTCP.py 39 18 54%
server/inverters/__init__.py 0 0 100%
server/inverters/enums.py 21 0 100%
server/inverters/inverter.py 100 23 77%
server/inverters/registerValue.py 86 17 80%
server/inverters/supported_inverters/__init__.py 0 0 100%
server/inverters/supported_inverters/profiles.py 46 1 98%
server/message.py 26 0 100%
server/request.py 2 0 100%
server/rest_request_test.py 0 0 100%
server/tasks/__init__.py 0 0 100%
server/tasks/checkForWebRequestTask.py 19 7 63%
server/tasks/cryptoReviveTask.py 10 4 60%
server/tasks/getNameTask.py 22 3 86%
server/tasks/harvest.py 54 0 100%
server/tasks/harvestFactory.py 11 1 91%
server/tasks/harvestTransport.py 78 32 59%
server/tasks/initializeTask.py 33 3 91%
server/tasks/itask.py 17 8 53%
server/tasks/modbusLiveLog.py 23 23 0%
server/tasks/modbusWriteTask.py 41 4 90%
server/tasks/openInverterPerpetualTask.py 39 3 92%
server/tasks/openInverterTask.py 40 10 75%
server/tasks/openWiFiConTask.py 19 9 53%
server/tasks/scanWiFiTask.py 25 10 60%
server/tasks/srcfulAPICallTask.py 54 4 93%
server/tasks/task.py 10 1 90%
server/tests/__init__.py 0 0 100%
server/tests/server_stress_test/__init__.py 0 0 100%
server/tests/server_stress_test/get_hello.py 38 38 0%
server/tests/server_stress_test/harvest_test/__init__.py 0 0 100%
server/tests/server_stress_test/harvest_test/harvest_test.py 42 42 0%
server/tests/server_stress_test/harvest_test/modbus_sim/__init__.py 0 0 100%
server/tests/server_stress_test/harvest_test/modbus_sim/server.py 65 65 0%
server/tests/server_stress_test/settings.py 10 10 0%
server/tests/server_unit_test/__init__.py 0 0 100%
server/tests/server_unit_test/app_test.py 150 0 100%
server/tests/server_unit_test/blackboard_test.py 102 0 100%
server/tests/server_unit_test/bootstrap_test.py 69 2 97%
server/tests/server_unit_test/crypto/__init__.py 0 0 100%
server/tests/server_unit_test/crypto/crypto_test.py 124 1 99%
server/tests/server_unit_test/inverters/modbus_inverter_test.py 93 2 98%
server/tests/server_unit_test/request_test.py 3 0 100%
server/tests/server_unit_test/tasks/__init__.py 0 0 100%
server/tests/server_unit_test/tasks/checkForWebRequestTask_test.py 4 0 100%
server/tests/server_unit_test/tasks/getNameTask_test.py 16 0 100%
server/tests/server_unit_test/tasks/harvest_test.py 184 3 98%
server/tests/server_unit_test/tasks/intitializeTask_test.py 29 0 100%
server/tests/server_unit_test/tasks/modbusWriteTask_test.py 24 0 100%
server/tests/server_unit_test/tasks/openInverterPerpetualTasl_test.py 65 0 100%
server/tests/server_unit_test/tasks/openInverterTask_test.py 49 0 100%
server/tests/server_unit_test/tasks/scanWifiTask_test.py 8 0 100%
server/tests/server_unit_test/tasks/srcfulAPICallTask_test.py 80 2 98%
server/tests/server_unit_test/web/__init__.py 0 0 100%
server/tests/server_unit_test/web/delete/notification_delete_test.py 30 0 100%
server/tests/server_unit_test/web/get/crypto_test.py 29 3 90%
server/tests/server_unit_test/web/get/hello_test.py 14 0 100%
server/tests/server_unit_test/web/get/inverter_test.py 24 0 100%
server/tests/server_unit_test/web/get/logger_test.py 14 0 100%
server/tests/server_unit_test/web/get/modbus_test.py 130 0 100%
server/tests/server_unit_test/web/get/name_test.py 41 2 95%
server/tests/server_unit_test/web/get/network_test.py 45 0 100%
server/tests/server_unit_test/web/get/notification_test.py 43 0 100%
server/tests/server_unit_test/web/get/root_test.py 13 0 100%
server/tests/server_unit_test/web/get/supported_test.py 14 0 100%
server/tests/server_unit_test/web/get/uptime_test.py 15 0 100%
server/tests/server_unit_test/web/get/version_test.py 14 0 100%
server/tests/server_unit_test/web/post/__init__.py 0 0 100%
server/tests/server_unit_test/web/post/createInverter_test.py 27 0 100%
server/tests/server_unit_test/web/post/echo_test.py 14 0 100%
server/tests/server_unit_test/web/post/initialize_test.py 21 0 100%
server/tests/server_unit_test/web/post/logger_test.py 38 0 100%
server/tests/server_unit_test/web/post/modbus_test.py 51 0 100%
server/tests/server_unit_test/web/post/wifi_test.py 28 1 96%
server/tests/server_unit_test/web/server_test.py 143 11 92%
server/web/__init__.py 0 0 100%
server/web/handler/__init__.py 4 0 100%
server/web/handler/delete/__init__.py 2 0 100%
server/web/handler/delete/inverter.py 14 7 50%
server/web/handler/delete/notification.py 11 0 100%
server/web/handler/get/__init__.py 13 0 100%
server/web/handler/get/crypto.py 20 1 95%
server/web/handler/get/hello.py 9 0 100%
server/web/handler/get/inverter.py 15 1 93%
server/web/handler/get/logger.py 19 0 100%
server/web/handler/get/modbus.py 33 1 97%
server/web/handler/get/name.py 13 0 100%
server/web/handler/get/network.py 61 5 92%
server/web/handler/get/notification.py 23 2 91%
server/web/handler/get/root.py 20 2 90%
server/web/handler/get/supported.py 13 0 100%
server/web/handler/get/uptime.py 8 0 100%
server/web/handler/get/version.py 9 0 100%
server/web/handler/get/wifi.py 28 14 50%
server/web/handler/handler.py 25 6 76%
server/web/handler/post/__init__.py 8 0 100%
server/web/handler/post/echo.py 9 0 100%
server/web/handler/post/initialize.py 20 3 85%
server/web/handler/post/livelog.py 28 28 0%
server/web/handler/post/logger.py 24 1 96%
server/web/handler/post/modbus.py 49 6 88%
server/web/handler/post/modbusRTU.py 25 6 76%
server/web/handler/post/modbusSolarman.py 23 12 48%
server/web/handler/post/modbusTCP.py 23 5 78%
server/web/handler/post/wifi.py 22 3 86%
server/web/handler/requestData.py 9 0 100%
server/web/server.py 161 41 75%
server/wifi/__init__.py 0 0 100%
server/wifi/scan.py 60 46 23%
server/wifi/wifi.py 102 80 22%
-------------------------------------------------------------------------------------------
TOTAL 4405 850 81%
Small decrease in TC
---------- coverage: platform linux, python 3.11.9-final-0 -----------
Name Stmts Miss Cover
-------------------------------------------------------------------------------------------
server/__init__.py 0 0 100%
server/__main__.py 55 55 0%
server/app.py 107 31 71%
server/blackboard.py 118 5 96%
server/bootstrap.py 91 24 74%
server/crypto/__init__.py 0 0 100%
server/crypto/crypto.py 123 12 90%
server/crypto/cryptoauthlib_mock.py 73 73 0%
server/crypto/exceptions_mock.py 36 36 0%
server/crypto/hazmat_mock.py 12 12 0%
server/crypto/revive.py 42 42 0%
server/crypto/revive_run.py 10 6 40%
server/crypto/status_mock.py 61 61 0%
server/inverters/ModbusRTU.py 35 0 100%
server/inverters/ModbusTCP.py 30 0 100%
server/inverters/SolarmanTCP.py 39 19 51%
server/inverters/__init__.py 0 0 100%
server/inverters/enums.py 21 0 100%
server/inverters/inverter.py 98 22 78%
server/inverters/registerValue.py 85 14 84%
server/inverters/supported_inverters/__init__.py 0 0 100%
server/inverters/supported_inverters/profiles.py 46 1 98%
server/message.py 26 0 100%
server/network/__init__.py 0 0 100%
server/network/macAddr.py 64 35 45%
server/network/scan.py 60 36 40%
server/network/wifi.py 131 46 65%
server/request.py 2 0 100%
server/rest_request_test.py 0 0 100%
server/tasks/__init__.py 0 0 100%
server/tasks/checkForWebRequestTask.py 19 7 63%
server/tasks/cryptoReviveTask.py 10 10 0%
server/tasks/getNameTask.py 22 3 86%
server/tasks/harvest.py 54 0 100%
server/tasks/harvestFactory.py 11 1 91%
server/tasks/harvestTransport.py 90 37 59%
server/tasks/initializeTask.py 33 3 91%
server/tasks/itask.py 17 8 53%
server/tasks/modbusLiveLog.py 23 23 0%
server/tasks/modbusWriteTask.py 41 4 90%
server/tasks/openInverterPerpetualTask.py 39 2 95%
server/tasks/openInverterTask.py 40 10 75%
server/tasks/openWiFiConTask.py 19 9 53%
server/tasks/scanWiFiTask.py 25 10 60%
server/tasks/srcfulAPICallTask.py 54 4 93%
server/tasks/task.py 10 1 90%
server/tests/__init__.py 0 0 100%
server/tests/server_stress_test/__init__.py 0 0 100%
server/tests/server_stress_test/get_hello.py 38 38 0%
server/tests/server_stress_test/harvest_test/__init__.py 0 0 100%
server/tests/server_stress_test/harvest_test/harvest_test.py 42 42 0%
server/tests/server_stress_test/harvest_test/modbus_sim/__init__.py 0 0 100%
server/tests/server_stress_test/harvest_test/modbus_sim/server.py 65 65 0%
server/tests/server_stress_test/settings.py 10 10 0%
server/tests/server_unit_test/__init__.py 0 0 100%
server/tests/server_unit_test/app_test.py 150 0 100%
server/tests/server_unit_test/blackboard_test.py 102 0 100%
server/tests/server_unit_test/bootstrap_test.py 69 2 97%
server/tests/server_unit_test/crypto/__init__.py 0 0 100%
server/tests/server_unit_test/crypto/crypto_test.py 138 1 99%
server/tests/server_unit_test/inverters/modbus_inverter_test.py 93 2 98%
server/tests/server_unit_test/request_test.py 3 0 100%
server/tests/server_unit_test/tasks/__init__.py 0 0 100%
server/tests/server_unit_test/tasks/checkForWebRequestTask_test.py 4 0 100%
server/tests/server_unit_test/tasks/getNameTask_test.py 16 0 100%
server/tests/server_unit_test/tasks/harvest_test.py 184 3 98%
server/tests/server_unit_test/tasks/intitializeTask_test.py 29 0 100%
server/tests/server_unit_test/tasks/modbusWriteTask_test.py 24 0 100%
server/tests/server_unit_test/tasks/openInverterPerpetualTasl_test.py 64 0 100%
server/tests/server_unit_test/tasks/openInverterTask_test.py 49 0 100%
server/tests/server_unit_test/tasks/scanWifiTask_test.py 8 0 100%
server/tests/server_unit_test/tasks/srcfulAPICallTask_test.py 80 2 98%
server/tests/server_unit_test/web/__init__.py 0 0 100%
server/tests/server_unit_test/web/delete/notification_delete_test.py 30 0 100%
server/tests/server_unit_test/web/get/crypto_test.py 31 3 90%
server/tests/server_unit_test/web/get/hello_test.py 14 0 100%
server/tests/server_unit_test/web/get/inverter_test.py 24 0 100%
server/tests/server_unit_test/web/get/logger_test.py 14 0 100%
server/tests/server_unit_test/web/get/modbus_test.py 132 0 100%
server/tests/server_unit_test/web/get/name_test.py 41 2 95%
server/tests/server_unit_test/web/get/network_test.py 63 0 100%
server/tests/server_unit_test/web/get/notification_test.py 43 0 100%
server/tests/server_unit_test/web/get/root_test.py 13 0 100%
server/tests/server_unit_test/web/get/supported_test.py 14 0 100%
server/tests/server_unit_test/web/get/uptime_test.py 15 0 100%
server/tests/server_unit_test/web/get/version_test.py 14 0 100%
server/tests/server_unit_test/web/post/__init__.py 0 0 100%
server/tests/server_unit_test/web/post/createInverter_test.py 27 0 100%
server/tests/server_unit_test/web/post/echo_test.py 14 0 100%
server/tests/server_unit_test/web/post/initialize_test.py 21 0 100%
server/tests/server_unit_test/web/post/logger_test.py 38 0 100%
server/tests/server_unit_test/web/post/modbus_test.py 51 0 100%
server/tests/server_unit_test/web/post/wifi_test.py 28 1 96%
server/tests/server_unit_test/web/server_test.py 143 11 92%
server/web/__init__.py 0 0 100%
server/web/handler/__init__.py 4 0 100%
server/web/handler/delete/__init__.py 2 0 100%
server/web/handler/delete/inverter.py 14 7 50%
server/web/handler/delete/notification.py 11 0 100%
server/web/handler/get/__init__.py 13 0 100%
server/web/handler/get/crypto.py 40 1 98%
server/web/handler/get/hello.py 9 0 100%
server/web/handler/get/inverter.py 15 1 93%
server/web/handler/get/logger.py 19 0 100%
server/web/handler/get/modbus.py 33 1 97%
server/web/handler/get/name.py 13 0 100%
server/web/handler/get/network.py 108 8 93%
server/web/handler/get/notification.py 23 2 91%
server/web/handler/get/root.py 20 2 90%
server/web/handler/get/supported.py 13 0 100%
server/web/handler/get/uptime.py 8 0 100%
server/web/handler/get/version.py 9 0 100%
server/web/handler/get/wifi.py 28 14 50%
server/web/handler/handler.py 25 6 76%
server/web/handler/post/__init__.py 8 0 100%
server/web/handler/post/echo.py 9 0 100%
server/web/handler/post/initialize.py 20 3 85%
server/web/handler/post/livelog.py 28 28 0%
server/web/handler/post/logger.py 24 1 96%
server/web/handler/post/modbus.py 49 6 88%
server/web/handler/post/modbusRTU.py 25 6 76%
server/web/handler/post/modbusSolarman.py 23 12 48%
server/web/handler/post/modbusTCP.py 23 5 78%
server/web/handler/post/wifi.py 22 3 86%
server/web/handler/requestData.py 9 0 100%
server/web/server.py 161 41 75%
-------------------------------------------------------------------------------------------
TOTAL 4618 991 79%
Just realized that the move of the test directories have made the coverage include the tests themselves. This has skewed the results.
new command is:
pytest --cov=server --cov-config=.coveragerc server/tests/server_unit_test/
The good thing is that we can now also exclude the crypto mock files.
---------- coverage: platform linux, python 3.11.9-final-0 -----------
Name Stmts Miss Cover
----------------------------------------------------------------------
server/__init__.py 0 0 100%
server/__main__.py 55 55 0%
server/app.py 107 31 71%
server/blackboard.py 118 5 96%
server/bootstrap.py 91 24 74%
server/crypto/__init__.py 0 0 100%
server/crypto/crypto.py 123 12 90%
server/crypto/hazmat_mock.py 12 12 0%
server/crypto/revive.py 42 42 0%
server/crypto/revive_run.py 10 6 40%
server/inverters/ModbusRTU.py 35 0 100%
server/inverters/ModbusTCP.py 30 0 100%
server/inverters/SolarmanTCP.py 39 19 51%
server/inverters/__init__.py 0 0 100%
server/inverters/enums.py 21 0 100%
server/inverters/inverter.py 98 22 78%
server/inverters/registerValue.py 85 14 84%
server/inverters/supported_inverters/__init__.py 0 0 100%
server/inverters/supported_inverters/profiles.py 46 1 98%
server/message.py 26 0 100%
server/network/__init__.py 0 0 100%
server/network/macAddr.py 64 35 45%
server/network/scan.py 60 36 40%
server/network/wifi.py 131 46 65%
server/request.py 2 0 100%
server/rest_request_test.py 0 0 100%
server/tasks/__init__.py 0 0 100%
server/tasks/checkForWebRequestTask.py 19 7 63%
server/tasks/cryptoReviveTask.py 10 10 0%
server/tasks/getNameTask.py 22 3 86%
server/tasks/harvest.py 54 0 100%
server/tasks/harvestFactory.py 11 1 91%
server/tasks/harvestTransport.py 90 37 59%
server/tasks/initializeTask.py 33 3 91%
server/tasks/itask.py 17 8 53%
server/tasks/modbusLiveLog.py 23 23 0%
server/tasks/modbusWriteTask.py 41 4 90%
server/tasks/openInverterPerpetualTask.py 39 2 95%
server/tasks/openInverterTask.py 40 10 75%
server/tasks/openWiFiConTask.py 19 9 53%
server/tasks/scanWiFiTask.py 25 10 60%
server/tasks/srcfulAPICallTask.py 54 4 93%
server/tasks/task.py 10 1 90%
server/web/__init__.py 0 0 100%
server/web/handler/__init__.py 4 0 100%
server/web/handler/delete/__init__.py 2 0 100%
server/web/handler/delete/inverter.py 14 7 50%
server/web/handler/delete/notification.py 11 0 100%
server/web/handler/get/__init__.py 13 0 100%
server/web/handler/get/crypto.py 40 1 98%
server/web/handler/get/hello.py 9 0 100%
server/web/handler/get/inverter.py 15 1 93%
server/web/handler/get/logger.py 19 0 100%
server/web/handler/get/modbus.py 33 1 97%
server/web/handler/get/name.py 13 0 100%
server/web/handler/get/network.py 108 8 93%
server/web/handler/get/notification.py 23 2 91%
server/web/handler/get/root.py 20 2 90%
server/web/handler/get/supported.py 13 0 100%
server/web/handler/get/uptime.py 8 0 100%
server/web/handler/get/version.py 9 0 100%
server/web/handler/get/wifi.py 28 14 50%
server/web/handler/handler.py 25 6 76%
server/web/handler/post/__init__.py 8 0 100%
server/web/handler/post/echo.py 9 0 100%
server/web/handler/post/initialize.py 20 3 85%
server/web/handler/post/livelog.py 28 28 0%
server/web/handler/post/logger.py 24 1 96%
server/web/handler/post/modbus.py 49 6 88%
server/web/handler/post/modbusRTU.py 25 6 76%
server/web/handler/post/modbusSolarman.py 23 12 48%
server/web/handler/post/modbusTCP.py 23 5 78%
server/web/handler/post/wifi.py 22 3 86%
server/web/handler/requestData.py 9 0 100%
server/web/server.py 161 41 75%
----------------------------------------------------------------------
TOTAL 2510 639 75%
Made a list of test coverage (removed non-important and 100% coverage) we should strive to improve this. Esp for stuff below 50%
And here is a list of untested functions per file. We should strive to get 100% here as every function should be called at least once in a test case as this is the only way to smoke test python stuff for simple errors.