* Prompt messi in una cartella apposta * Aggiorna importazioni demo per riflettere la nuova struttura delle cartelle API * Aggiunto configurazione dell'applicazione * Spostato ChatManager in app.interface * Update README.md * Aggiornato config per app & api * Rinominato il modulo NewsAPI * fix main infinite loop * API base --> core * pattern singleton per AppConfig. * Estratto i tools nella loro cartella --> api/tools * fix main KeyboardInterrupt * update tests * Docker & libs * fix copilot suggestions
31 lines
1004 B
Python
31 lines
1004 B
Python
import pytest
|
|
from app.api.tools import SocialAPIsTool
|
|
|
|
|
|
@pytest.mark.tools
|
|
@pytest.mark.social
|
|
@pytest.mark.api
|
|
class TestSocialAPIsTool:
|
|
def test_social_api_tool(self):
|
|
tool = SocialAPIsTool()
|
|
assert tool is not None
|
|
|
|
def test_social_api_tool_get_top(self):
|
|
tool = SocialAPIsTool()
|
|
result = tool.handler.try_call(lambda w: w.get_top_crypto_posts(limit=2))
|
|
assert isinstance(result, list)
|
|
assert len(result) > 0
|
|
for post in result:
|
|
assert post.title is not None
|
|
assert post.time is not None
|
|
|
|
def test_social_api_tool_get_top__all_results(self):
|
|
tool = SocialAPIsTool()
|
|
result = tool.handler.try_call_all(lambda w: w.get_top_crypto_posts(limit=2))
|
|
assert isinstance(result, dict)
|
|
assert len(result.keys()) > 0
|
|
for _provider, posts in result.items():
|
|
for post in posts:
|
|
assert post.title is not None
|
|
assert post.time is not None
|