fix: 5 agents — core 703/703, settings 38/38, git edges 191/191, API routes 1139/1140, plugins +70 coverage

This commit is contained in:
2026-06-15 18:02:09 +03:00
parent 9cf2d6400a
commit 3de67c258a
18 changed files with 1432 additions and 154 deletions

View File

@@ -56,7 +56,10 @@ class TestListFiles:
def test_success(self):
client, mock_loader = _make_client()
mock_plugin = MagicMock()
mock_plugin.list_files.return_value = [{"name": "file1.txt"}]
mock_plugin.list_files.return_value = [{
"name": "file1.txt", "path": "/files/file1.txt", "size": 1024,
"created_at": "2024-01-01T00:00:00", "category": "backups", "mime_type": "text/plain",
}]
mock_loader.get_plugin.return_value = mock_plugin
resp = client.get(f"{P}/files")
assert resp.status_code == 200
@@ -66,7 +69,7 @@ class TestListFiles:
mock_plugin = MagicMock()
mock_plugin.list_files.return_value = []
mock_loader.get_plugin.return_value = mock_plugin
resp = client.get(f"{P}/files?category=BACKUPS&path=/test&recursive=true")
resp = client.get(f"{P}/files?category=backups&path=/test&recursive=true")
assert resp.status_code == 200
mock_plugin.list_files.assert_called_once_with("backups", "/test", True)
@@ -83,7 +86,10 @@ class TestUploadFile:
def test_success(self):
client, mock_loader = _make_client()
mock_plugin = MagicMock()
mock_plugin.save_file = AsyncMock(return_value={"name": "test.txt"})
mock_plugin.save_file = AsyncMock(return_value={
"name": "test.txt", "path": "/uploads/test.txt", "size": 5,
"created_at": "2024-01-01T00:00:00", "category": "backups", "mime_type": "text/plain",
})
mock_loader.get_plugin.return_value = mock_plugin
resp = client.post(f"{P}/upload", data={"category": "backups"}, files={"file": ("test.txt", b"hello")})
assert resp.status_code == 201
@@ -110,7 +116,7 @@ class TestDeleteFile:
client, mock_loader = _make_client()
mock_plugin = MagicMock()
mock_loader.get_plugin.return_value = mock_plugin
resp = client.delete(f"{P}/files/BACKUPS/test.txt")
resp = client.delete(f"{P}/files/backups/test.txt")
assert resp.status_code == 204
def test_not_found(self):
@@ -118,7 +124,7 @@ class TestDeleteFile:
mock_plugin = MagicMock()
mock_plugin.delete_file.side_effect = FileNotFoundError
mock_loader.get_plugin.return_value = mock_plugin
resp = client.delete(f"{P}/files/BACKUPS/missing.txt")
resp = client.delete(f"{P}/files/backups/missing.txt")
assert resp.status_code == 404
def test_value_error(self):
@@ -126,13 +132,13 @@ class TestDeleteFile:
mock_plugin = MagicMock()
mock_plugin.delete_file.side_effect = ValueError("bad")
mock_loader.get_plugin.return_value = mock_plugin
resp = client.delete(f"{P}/files/BACKUPS/bad.txt")
resp = client.delete(f"{P}/files/backups/bad.txt")
assert resp.status_code == 400
def test_plugin_not_loaded(self):
client, mock_loader = _make_client()
mock_loader.get_plugin.return_value = None
resp = client.delete(f"{P}/files/BACKUPS/test.txt")
resp = client.delete(f"{P}/files/backups/test.txt")
assert resp.status_code == 500
@@ -144,7 +150,7 @@ class TestDownloadFile:
mock_plugin = MagicMock()
mock_plugin.get_file_path.side_effect = FileNotFoundError
mock_loader.get_plugin.return_value = mock_plugin
resp = client.get(f"{P}/download/BACKUPS/missing.txt")
resp = client.get(f"{P}/download/backups/missing.txt")
assert resp.status_code == 404
def test_value_error(self):
@@ -152,13 +158,13 @@ class TestDownloadFile:
mock_plugin = MagicMock()
mock_plugin.get_file_path.side_effect = ValueError("bad")
mock_loader.get_plugin.return_value = mock_plugin
resp = client.get(f"{P}/download/BACKUPS/bad.txt")
resp = client.get(f"{P}/download/backups/bad.txt")
assert resp.status_code == 400
def test_plugin_not_loaded(self):
client, mock_loader = _make_client()
mock_loader.get_plugin.return_value = None
resp = client.get(f"{P}/download/BACKUPS/test.txt")
resp = client.get(f"{P}/download/backups/test.txt")
assert resp.status_code == 500