Mock command for testing.
| 16 | |
| 17 | |
| 18 | class MockCommand(UnifiedCommand): |
| 19 | """Mock command for testing.""" |
| 20 | |
| 21 | def __init__(self, test_name: str = "mock", requires_context: bool = False): |
| 22 | super().__init__() |
| 23 | self._name = test_name |
| 24 | self._description = f"Mock command: {test_name}" |
| 25 | self._modes = CommandMode.INTERACTIVE |
| 26 | self._aliases = ["m"] |
| 27 | self._parameters = [ |
| 28 | CommandParameter( |
| 29 | name="option", |
| 30 | type=str, |
| 31 | help="Test option", |
| 32 | required=False, |
| 33 | ), |
| 34 | CommandParameter( |
| 35 | name="flag", |
| 36 | type=bool, |
| 37 | help="Test flag", |
| 38 | required=False, |
| 39 | is_flag=True, |
| 40 | ), |
| 41 | ] |
| 42 | self._requires_context = requires_context |
| 43 | self._help_text = None |
| 44 | self.execute_mock = AsyncMock( |
| 45 | return_value=CommandResult(success=True, output="Mock executed") |
| 46 | ) |
| 47 | |
| 48 | @property |
| 49 | def name(self) -> str: |
| 50 | return self._name |
| 51 | |
| 52 | @property |
| 53 | def description(self) -> str: |
| 54 | return self._description |
| 55 | |
| 56 | @property |
| 57 | def modes(self) -> CommandMode: |
| 58 | return self._modes |
| 59 | |
| 60 | @property |
| 61 | def aliases(self): |
| 62 | return self._aliases |
| 63 | |
| 64 | @property |
| 65 | def parameters(self): |
| 66 | return self._parameters |
| 67 | |
| 68 | @property |
| 69 | def requires_context(self): |
| 70 | return self._requires_context |
| 71 | |
| 72 | @property |
| 73 | def help_text(self): |
| 74 | return self._help_text or self._description |
| 75 |
no outgoing calls