Configurable mock command for extended testing.
| 35 | |
| 36 | |
| 37 | class ExtMockCommand(UnifiedCommand): |
| 38 | """Configurable mock command for extended testing.""" |
| 39 | |
| 40 | def __init__( |
| 41 | self, |
| 42 | test_name: str = "ext", |
| 43 | requires_ctx: bool = False, |
| 44 | parameters: list[CommandParameter] | None = None, |
| 45 | ): |
| 46 | super().__init__() |
| 47 | self._name = test_name |
| 48 | self._description = f"Extended mock: {test_name}" |
| 49 | self._modes = CommandMode.INTERACTIVE |
| 50 | self._aliases: list[str] = ["e"] |
| 51 | self._parameters = ( |
| 52 | parameters |
| 53 | if parameters is not None |
| 54 | else [ |
| 55 | CommandParameter( |
| 56 | name="option", |
| 57 | type=str, |
| 58 | help="Test option", |
| 59 | required=False, |
| 60 | ), |
| 61 | CommandParameter( |
| 62 | name="flag", |
| 63 | type=bool, |
| 64 | help="Test flag", |
| 65 | required=False, |
| 66 | is_flag=True, |
| 67 | ), |
| 68 | ] |
| 69 | ) |
| 70 | self._requires_context = requires_ctx |
| 71 | self._help_text = None |
| 72 | self.execute_mock = AsyncMock( |
| 73 | return_value=CommandResult(success=True, output="ok") |
| 74 | ) |
| 75 | |
| 76 | @property |
| 77 | def name(self) -> str: |
| 78 | return self._name |
| 79 | |
| 80 | @property |
| 81 | def description(self) -> str: |
| 82 | return self._description |
| 83 | |
| 84 | @property |
| 85 | def modes(self) -> CommandMode: |
| 86 | return self._modes |
| 87 | |
| 88 | @property |
| 89 | def aliases(self): |
| 90 | return self._aliases |
| 91 | |
| 92 | @property |
| 93 | def parameters(self): |
| 94 | return self._parameters |
no outgoing calls