From 96c6395f378aa7f23e0e4ac05fce253e0cd3e409 Mon Sep 17 00:00:00 2001 From: Daniil Kovalenko <40635760+WhiteMemory99@users.noreply.github.com> Date: Mon, 20 Dec 2021 04:21:23 +0700 Subject: [PATCH] Fix sequence check behavior in StateFilter --- aiogram/dispatcher/filters/state.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/aiogram/dispatcher/filters/state.py b/aiogram/dispatcher/filters/state.py index 978f65e4..316edcf5 100644 --- a/aiogram/dispatcher/filters/state.py +++ b/aiogram/dispatcher/filters/state.py @@ -37,11 +37,12 @@ class StateFilter(BaseFilter): allowed_states = cast(Sequence[StateType], self.state) for allowed_state in allowed_states: if isinstance(allowed_state, str) or allowed_state is None: - if allowed_state == "*": + if allowed_state == "*" or raw_state == allowed_state: return True - return raw_state == allowed_state elif isinstance(allowed_state, (State, StatesGroup)): - return allowed_state(event=obj, raw_state=raw_state) + if allowed_state(event=obj, raw_state=raw_state): + return True elif isclass(allowed_state) and issubclass(allowed_state, StatesGroup): - return allowed_state()(event=obj, raw_state=raw_state) + if allowed_state()(event=obj, raw_state=raw_state): + return True return False