AutoMaintainer / backend /test_fs_api.py
purvansh01's picture
Deploy to HuggingFace (with Recent Activity Telemetry)
ae84c0a
Raw
History Blame Contribute Delete
1.37 kB
import json
import os
import shutil
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
def setup_dummy_repo():
repo_name = "PxA-Labs/AutoMaintainer"
repo_dir = f"/tmp/{repo_name.replace('/', '_')}"
if os.path.exists(repo_dir):
shutil.rmtree(repo_dir)
os.makedirs(os.path.join(repo_dir, "src"), exist_ok=True)
os.makedirs(os.path.join(repo_dir, ".git"), exist_ok=True)
with open(os.path.join(repo_dir, "src", "index.py"), "w") as f:
f.write("print('hello world')")
with open(os.path.join(repo_dir, "README.md"), "w") as f:
f.write("# AutoMaintainer")
return repo_name
if __name__ == "__main__":
repo_name = setup_dummy_repo()
print("--- Testing /tree Endpoint ---")
response = client.get(f"/repo/{repo_name}/tree")
print(f"Status: {response.status_code}")
print(json.dumps(response.json(), indent=2))
print("\n--- Testing /file Endpoint (Valid File) ---")
response2 = client.get(f"/repo/{repo_name}/file?file_path=src/index.py")
print(f"Status: {response2.status_code}")
print(response2.json())
print("\n--- Testing /file Endpoint (Path Traversal Attack) ---")
response3 = client.get(f"/repo/{repo_name}/file?file_path=../../../../etc/passwd")
print(f"Status: {response3.status_code}")
print(response3.json())