From 5460f6f6f99b5c59c429ad2c16265d6cfd1f45a2 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Fri, 2 May 2025 19:37:36 +0200 Subject: [PATCH] increase test coverage --- app/tests/test_web_route.py | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/app/tests/test_web_route.py b/app/tests/test_web_route.py index 9b36649..90bb658 100644 --- a/app/tests/test_web_route.py +++ b/app/tests/test_web_route.py @@ -6,6 +6,8 @@ from async_stream import AsyncStreamClient from gen3plus.inverter_g3p import InverterG3P from test_inverter_g3p import FakeReader, FakeWriter, config_conn from cnf.config import Config +from mock import patch, Mock +import os, errno pytest_plugins = ('pytest_asyncio',) @@ -206,3 +208,39 @@ async def test_invalid_send_file(client, config_conn): assert Config.log_path == 'app/tests/log/' response = await client.get('/send-file/../test_web_route.py') assert response.status_code == 404 + +@pytest.fixture +def patch_os_remove_err(): + def new_remove(file_path: str): + raise OSError(errno.ENOENT, os.strerror(errno.ENOENT), file_path) + + + with patch.object(os, 'remove', new_remove) as wrapped_os: + yield wrapped_os + +@pytest.fixture +def patch_os_remove_ok(): + def new_remove(file_path: str): + return + + with patch.object(os, 'remove', new_remove) as wrapped_os: + yield wrapped_os + +@pytest.mark.asyncio +async def test_del_file_ok(client, config_conn, patch_os_remove_ok): + """Test the del-file route with no error.""" + _ = config_conn + _ = patch_os_remove_ok + assert Config.log_path == 'app/tests/log/' + response = await client.delete ('/del-file/test.txt') + assert response.status_code == 204 + + +@pytest.mark.asyncio +async def test_del_file_err(client, config_conn, patch_os_remove_err): + """Test the send-file route with OSError.""" + _ = config_conn + _ = patch_os_remove_err + assert Config.log_path == 'app/tests/log/' + response = await client.delete ('/del-file/test.txt') + assert response.status_code == 404