Fix Files tests: isolated test dir, auto-create and cleanup

Tests create /.mcp-tests/ in oCIS at start, delete at end.
No interference with user's real files. Fixed for stefan's
actual oCIS account (was using admin before).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Stefan Lohmaier
2026-06-12 10:51:58 +02:00
parent e721250552
commit 38cf147eec
+13 -13
View File
@@ -272,11 +272,19 @@ class TestContacts:
class TestFiles:
PORT = SERVERS["files"]
TEST_DIR = "/mcp-tests"
TEST_DIR = "/.mcp-tests"
@pytest.fixture(autouse=True, scope="class")
def ensure_test_dir(self):
"""Create test dir at start, delete at end. Isolated from real data."""
token = get_token(self.PORT)
tool_call(self.PORT, token, "create_folder", {"path": self.TEST_DIR})
yield
tool_call(self.PORT, token, "delete_file", {"path": self.TEST_DIR})
def test_list_root(self):
text = tool_call(self.PORT, get_token(self.PORT), "list_files", {"path": "/"})
assert "DIR" in text or "mcp-tests" in text
assert "DIR" in text
def test_file_info_root(self):
text = tool_call(self.PORT, get_token(self.PORT), "file_info", {"path": "/"})
@@ -287,26 +295,21 @@ class TestFiles:
tag = f"test-{int(time.time())}"
path = f"{self.TEST_DIR}/{tag}.txt"
# Write
result = tool_call(self.PORT, token, "write_file", {
"path": path, "content": f"Hello MCP Test {tag}\nZeile 2",
})
assert "geschrieben" in result.lower() or "written" in result.lower(), f"Write failed: {result}"
# Read
read_result = mcp_call(self.PORT, token, "tools/call", {"name": "read_file", "arguments": {"path": path}})
text = read_result["result"]["content"][0]["text"]
assert tag in text, f"Read mismatch: {text[:100]}"
assert tag in text
# Info
info = tool_call(self.PORT, token, "file_info", {"path": path})
assert "bytes" in info.lower()
# Delete
del_result = tool_call(self.PORT, token, "delete_file", {"path": path})
assert "eloescht" in del_result.lower() or "deleted" in del_result.lower(), f"Delete failed: {del_result}"
assert "eloescht" in del_result.lower() or "deleted" in del_result.lower()
# Verify gone
info2 = tool_call(self.PORT, token, "file_info", {"path": path})
assert "404" in info2 or "Nicht gefunden" in info2 or "Not found" in info2
@@ -321,8 +324,7 @@ class TestFiles:
listing = tool_call(self.PORT, token, "list_files", {"path": self.TEST_DIR})
assert tag in listing
del_result = tool_call(self.PORT, token, "delete_file", {"path": path})
assert "eloescht" in del_result.lower() or "deleted" in del_result.lower()
tool_call(self.PORT, token, "delete_file", {"path": path})
def test_move_file(self):
token = get_token(self.PORT)
@@ -334,11 +336,9 @@ class TestFiles:
result = tool_call(self.PORT, token, "move_file", {"source": src, "destination": dst})
assert "erschoben" in result.lower() or "moved" in result.lower()
# Source gone, dest exists
read = mcp_call(self.PORT, token, "tools/call", {"name": "read_file", "arguments": {"path": dst}})
assert "move test" in read["result"]["content"][0]["text"]
# Cleanup
tool_call(self.PORT, token, "delete_file", {"path": dst})
def test_search_files(self):