DEV Community

William Rodriguez
William Rodriguez

Posted on

Pruebas de bots sin saturar chats: Patrones de mocking y testing enterprise.

Tu pipeline de CI/CD no debería romperse porque la API de Telegram devolvió un error 429 durante las pruebas. La abstracción limpia de WMessage en wconnect te permite probar la lógica del bot totalmente offline.

Así se implementa Mocking & Enterprise Testing en entornos reales con wconnect:

from wconnect import WMessage

def my_business_logic(msg: WMessage) -> str:
    if msg.user_id != "6586101740":
        return "DENIED"
    return f"Processed: {msg.text.upper()}"

# Unit test without mock server or internet connection
def test_handler_authorization():
    # Synthetic message
    unauthorized = WMessage(chat_id=101, user_id=999, text="hello")
    assert my_business_logic(unauthorized) == "DENIED"

    authorized = WMessage(chat_id=101, user_id=6586101740, text="hello")
    assert my_business_logic(authorized) == "Processed: HELLO"
Enter fullscreen mode Exit fullscreen mode

Por qué es clave:

  • Decoradores sin boilerplate (@bot.on_command, @bot.on_message, @bot.consumer).
  • Streaming de archivos binarios directo desde RAM usando WFile.
  • Poller daemon no bloqueante con run_consumers(block=False).

¡Visita el repositorio en GitHub!

Top comments (0)