|
|
@@ -22,14 +22,12 @@ from collections import OrderedDict
|
|
|
import pytest
|
|
|
import pytest_asyncio
|
|
|
|
|
|
-# Lazy imports for chattolib (required by Hermes plugin system)
|
|
|
-from tools.lazy_deps import lazy_import
|
|
|
+# Import chattolib types for tests - using vendored chattolib from adapter
|
|
|
|
|
|
# -- Path setup --
|
|
|
sys.path.insert(0, "/opt/hermes")
|
|
|
sys.path.insert(0, "/root/.hermes/plugins/platforms/chatto")
|
|
|
|
|
|
-import adapter as chatto_adapter
|
|
|
from adapter import (
|
|
|
_EMOJI_TO_SHORTCODE,
|
|
|
_MAX_MESSAGE_LENGTH,
|
|
|
@@ -40,7 +38,7 @@ from adapter import (
|
|
|
register,
|
|
|
)
|
|
|
|
|
|
-from gateway.config import Platform, PlatformConfig
|
|
|
+from gateway.config import PlatformConfig
|
|
|
from gateway.platforms.base import SendResult, MessageEvent, MessageType
|
|
|
|
|
|
|
|
|
@@ -298,8 +296,17 @@ class TestUserLookup:
|
|
|
return adapter
|
|
|
|
|
|
async def test_get_user_calls_chattolib(self, adapter):
|
|
|
- User = lazy_import("chattolib.types", "User")
|
|
|
- GetUserResponse = lazy_import("chattolib.types", "GetUserResponse")
|
|
|
+ # Import chattolib types for testing (try vendored first)
|
|
|
+ try:
|
|
|
+ from chattolib_vendor.chattolib.types import User, GetUserResponse
|
|
|
+ except ImportError:
|
|
|
+ try:
|
|
|
+ from chattolib.types import User, GetUserResponse
|
|
|
+ except ImportError:
|
|
|
+ # Fallback to mocked types if chattolib not installed
|
|
|
+ from unittest.mock import MagicMock
|
|
|
+ User = MagicMock
|
|
|
+ GetUserResponse = MagicMock
|
|
|
mock_user = User(id="user-1", login="testuser", display_name="Test User")
|
|
|
adapter._chatto_client.get_user.return_value = GetUserResponse(user=mock_user)
|
|
|
result = await adapter.get_user("user-1")
|
|
|
@@ -308,8 +315,17 @@ class TestUserLookup:
|
|
|
assert result["login"] == "testuser"
|
|
|
|
|
|
async def test_get_user_caching(self, adapter):
|
|
|
- User = lazy_import("chattolib.types", "User")
|
|
|
- GetUserResponse = lazy_import("chattolib.types", "GetUserResponse")
|
|
|
+ # Import chattolib types for testing (try vendored first)
|
|
|
+ try:
|
|
|
+ from chattolib_vendor.chattolib.types import User, GetUserResponse
|
|
|
+ except ImportError:
|
|
|
+ try:
|
|
|
+ from chattolib.types import User, GetUserResponse
|
|
|
+ except ImportError:
|
|
|
+ # Fallback to mocked types if chattolib not installed
|
|
|
+ from unittest.mock import MagicMock
|
|
|
+ User = MagicMock
|
|
|
+ GetUserResponse = MagicMock
|
|
|
mock_user = User(id="user-1", login="testuser", display_name="Test User")
|
|
|
adapter._chatto_client.get_user.return_value = GetUserResponse(user=mock_user)
|
|
|
result1 = await adapter.get_user("user-1")
|
|
|
@@ -381,7 +397,15 @@ class TestRoomOperations:
|
|
|
return adapter
|
|
|
|
|
|
async def test_create_room(self, adapter):
|
|
|
- Room = lazy_import("chattolib.types", "Room")
|
|
|
+ # Import chattolib types for testing (try vendored first)
|
|
|
+ try:
|
|
|
+ from chattolib_vendor.chattolib.types import Room
|
|
|
+ except ImportError:
|
|
|
+ try:
|
|
|
+ from chattolib.types import Room
|
|
|
+ except ImportError:
|
|
|
+ from unittest.mock import MagicMock
|
|
|
+ Room = MagicMock
|
|
|
mock_room = Room(id="room-123", name="Test Room", kind="ROOM_KIND_GROUP",
|
|
|
description="", archived=False, group_id="", universal=True)
|
|
|
adapter._chatto_client.create_room.return_value = mock_room
|
|
|
@@ -390,7 +414,15 @@ class TestRoomOperations:
|
|
|
adapter._chatto_client.create_room.assert_called_once()
|
|
|
|
|
|
async def test_start_dm(self, adapter):
|
|
|
- Room = lazy_import("chattolib.types", "Room")
|
|
|
+ # Import chattolib types for testing (try vendored first)
|
|
|
+ try:
|
|
|
+ from chattolib_vendor.chattolib.types import Room
|
|
|
+ except ImportError:
|
|
|
+ try:
|
|
|
+ from chattolib.types import Room
|
|
|
+ except ImportError:
|
|
|
+ from unittest.mock import MagicMock
|
|
|
+ Room = MagicMock
|
|
|
mock_room = Room(id="dm-123", name="DM with user", kind="ROOM_KIND_DM",
|
|
|
description="", archived=False, group_id="", universal=False)
|
|
|
adapter._chatto_client.start_dm.return_value = mock_room
|