Concrete mock command for chat-mode testing.
| 24 | |
| 25 | |
| 26 | class MockChatCommand(UnifiedCommand): |
| 27 | """Concrete mock command for chat-mode testing.""" |
| 28 | |
| 29 | def __init__( |
| 30 | self, |
| 31 | test_name: str = "mock", |
| 32 | requires_ctx: bool = False, |
| 33 | hidden: bool = False, |
| 34 | parameters: list[CommandParameter] | None = None, |
| 35 | ): |
| 36 | super().__init__() |
| 37 | self._name = test_name |
| 38 | self._description = f"Mock chat command: {test_name}" |
| 39 | self._modes = CommandMode.CHAT |
| 40 | self._aliases: list[str] = [] |
| 41 | self._requires_context = requires_ctx |
| 42 | self._hidden = hidden |
| 43 | self._parameters = parameters or [ |
| 44 | CommandParameter( |
| 45 | name="option", |
| 46 | type=str, |
| 47 | help="Test option", |
| 48 | required=False, |
| 49 | ), |
| 50 | CommandParameter( |
| 51 | name="flag", |
| 52 | type=bool, |
| 53 | help="Test flag", |
| 54 | required=False, |
| 55 | is_flag=True, |
| 56 | ), |
| 57 | ] |
| 58 | self.execute_mock = AsyncMock( |
| 59 | return_value=CommandResult(success=True, output="Mock executed") |
| 60 | ) |
| 61 | |
| 62 | @property |
| 63 | def name(self) -> str: |
| 64 | return self._name |
| 65 | |
| 66 | @property |
| 67 | def description(self) -> str: |
| 68 | return self._description |
| 69 | |
| 70 | @property |
| 71 | def modes(self) -> CommandMode: |
| 72 | return self._modes |
| 73 | |
| 74 | @property |
| 75 | def aliases(self): |
| 76 | return self._aliases |
| 77 | |
| 78 | @property |
| 79 | def parameters(self): |
| 80 | return self._parameters |
| 81 | |
| 82 | @property |
| 83 | def requires_context(self): |
no outgoing calls