Skip to main content
Glama
python.test.ts1.64 kB
import { describe, it, expect, vi } from "vitest"; import { analyzePythonAstHandler, checkPythonDepsHandler } from "./python.js"; import fs from "fs/promises"; vi.mock("fs/promises"); describe("Python Tools", () => { describe("analyzePythonAstHandler", () => { it("should detect classes and functions", async () => { const code = "class MyClass:\n def my_func(): pass"; const result = await analyzePythonAstHandler({ code }); expect(result.content[0].text).toContain("MyClass"); expect(result.content[0].text).toContain("my_func"); }); it("should detect imports", async () => { const code = "import os\nfrom sys import argv"; const result = await analyzePythonAstHandler({ code }); expect(result.content[0].text).toContain("os"); expect(result.content[0].text).toContain("sys"); }); }); describe("checkPythonDepsHandler", () => { it("should parse requirements.txt", async () => { (fs.readFile as any).mockResolvedValue( "flask\nrequests # comment\n-r other.txt", ); const result = await checkPythonDepsHandler({ filePath: "requirements.txt", }); expect(result.content[0].text).toContain("flask"); expect(result.content[0].text).toContain("requests"); }); it("should parse pyproject.toml", async () => { (fs.readFile as any).mockResolvedValue( '[tool.poetry.dependencies]\npython = "^3.9"\nflask = "^2.0"', ); const result = await checkPythonDepsHandler({ filePath: "pyproject.toml", }); expect(result.content[0].text).toContain("flask"); }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/millsydotdev/Code-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server