Skip to main content
Glama

Telegram MCP Server

by chigwell
test_validation.py2.81 kB
import pytest import os os.environ["TELEGRAM_API_ID"] = "12345" os.environ["TELEGRAM_API_HASH"] = "dummy_hash" from main import validate_id, ValidationError, log_and_format_error from functools import wraps import asyncio from typing import Union, List, Optional # A simple async function to be decorated for testing @validate_id("user_id", "chat_id", "user_ids") async def dummy_function(**kwargs): return "success", kwargs @pytest.mark.asyncio async def test_valid_integer_id(): result, kwargs = await dummy_function(user_id=12345) assert result == "success" assert kwargs["user_id"] == 12345 @pytest.mark.asyncio async def test_valid_negative_integer_id(): result, kwargs = await dummy_function(chat_id=-100123456) assert result == "success" assert kwargs["chat_id"] == -100123456 @pytest.mark.asyncio async def test_valid_string_integer_id(): result, kwargs = await dummy_function(user_id="12345") assert result == "success" assert kwargs["user_id"] == 12345 @pytest.mark.asyncio async def test_valid_username(): result, kwargs = await dummy_function(user_id="@test_user") assert result == "success" assert kwargs["user_id"] == "@test_user" @pytest.mark.asyncio async def test_valid_username_without_at(): result, kwargs = await dummy_function(user_id="test_user_long_enough") assert result == "success" assert kwargs["user_id"] == "test_user_long_enough" @pytest.mark.asyncio async def test_valid_list_of_ids(): result, kwargs = await dummy_function(user_ids=[123, "456", "@test_user"]) assert result == "success" assert kwargs["user_ids"] == [123, 456, "@test_user"] @pytest.mark.asyncio async def test_invalid_float_id(): result = await dummy_function(user_id=123.45) assert "Invalid user_id" in result assert "Type must be an integer or a string" in result @pytest.mark.asyncio async def test_invalid_string_id(): result = await dummy_function(user_id="inv") # too short assert "Invalid user_id" in result assert "Must be a valid integer ID, or a username string" in result @pytest.mark.asyncio async def test_integer_out_of_range(): result = await dummy_function(user_id=2**64) assert "Invalid user_id" in result assert "out of the valid integer range" in result @pytest.mark.asyncio async def test_invalid_item_in_list(): result = await dummy_function(user_ids=[123, "456", 123.45]) assert "Invalid user_ids" in result assert "Type must be an integer or a string" in result @pytest.mark.asyncio async def test_no_id_provided(): result, kwargs = await dummy_function() assert result == "success" @pytest.mark.asyncio async def test_none_id_provided(): result, kwargs = await dummy_function(user_id=None) assert result == "success"

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/chigwell/telegram-mcp'

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