Initial import of Shirobana bot backend
Include utility modules, shared channels, prompts, read-only skills, wardrobe memory and regression tests. Externalize legacy credentials and exclude private runtime state.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest.mock import mock_open, patch
|
||||
|
||||
import identity
|
||||
from agent.modes import ModeStore
|
||||
|
||||
|
||||
class ModeConfigTest(unittest.TestCase):
|
||||
def test_admin_chat_other_command_and_saved_override(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
store = ModeStore(Path(tmp) / "modes.db")
|
||||
config = json.dumps({"chat_mode": {"default": "command", "admin": "chat", "group": "command"}})
|
||||
with patch("pathlib.Path.open", mock_open(read_data=config)), \
|
||||
patch.object(identity, "is_admin", side_effect=lambda uid: uid == 1):
|
||||
self.assertEqual(store.get_mode("tg", 1), "chat")
|
||||
self.assertEqual(store.get_mode("tg", 2), "command")
|
||||
self.assertEqual(store.get_mode("tg", 1, 123), "command")
|
||||
store.set_mode("tg", 2, "chat")
|
||||
self.assertEqual(store.get_mode("tg", 2), "chat")
|
||||
store.set_mode("tg", 1, "command")
|
||||
self.assertEqual(store.get_mode("tg", 1), "command")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user