(
msg: str | tuple[str, ...],
ignorecase: bool,
type: str,
text: str | None,
expected: bool,
)
| 162 | ], |
| 163 | ) |
| 164 | async def test_startswith( |
| 165 | msg: str | tuple[str, ...], |
| 166 | ignorecase: bool, |
| 167 | type: str, |
| 168 | text: str | None, |
| 169 | expected: bool, |
| 170 | ): |
| 171 | test_startswith = startswith(msg, ignorecase) |
| 172 | dependent = next(iter(test_startswith.checkers)) |
| 173 | checker = dependent.call |
| 174 | |
| 175 | msg = (msg,) if isinstance(msg, str) else msg |
| 176 | |
| 177 | assert isinstance(checker, StartswithRule) |
| 178 | assert checker.msg == msg |
| 179 | assert checker.ignorecase == ignorecase |
| 180 | |
| 181 | message = text if text is None else FakeMessage(text) |
| 182 | event = make_fake_event(_type=type, _message=message)() |
| 183 | for prefix in msg: |
| 184 | state = {STARTSWITH_KEY: prefix} |
| 185 | assert await dependent(event=event, state=state) == expected |
| 186 | |
| 187 | |
| 188 | @pytest.mark.anyio |
nothing calls this directly
no test coverage detected