@@ -144,6 +144,66 @@ async def test_chat_member_types(
144
144
await app .process_update (chat_member )
145
145
assert self .test_flag == result_2
146
146
147
+ @pytest .mark .parametrize (
148
+ argnames = ["allowed_types" , "chat_id" , "expected" ],
149
+ argvalues = [
150
+ (ChatMemberHandler .MY_CHAT_MEMBER , None , (True , False )),
151
+ (ChatMemberHandler .CHAT_MEMBER , None , (False , True )),
152
+ (ChatMemberHandler .ANY_CHAT_MEMBER , None , (True , True )),
153
+ (ChatMemberHandler .MY_CHAT_MEMBER , 1 , (True , False )),
154
+ (ChatMemberHandler .CHAT_MEMBER , 1 , (False , True )),
155
+ (ChatMemberHandler .ANY_CHAT_MEMBER , 1 , (True , True )),
156
+ (ChatMemberHandler .MY_CHAT_MEMBER , [1 ], (True , False )),
157
+ (ChatMemberHandler .CHAT_MEMBER , [1 ], (False , True )),
158
+ (ChatMemberHandler .ANY_CHAT_MEMBER , [1 ], (True , True )),
159
+ (ChatMemberHandler .MY_CHAT_MEMBER , 2 , (False , False )),
160
+ (ChatMemberHandler .CHAT_MEMBER , 2 , (False , False )),
161
+ (ChatMemberHandler .ANY_CHAT_MEMBER , 2 , (False , False )),
162
+ (ChatMemberHandler .MY_CHAT_MEMBER , [2 ], (False , False )),
163
+ (ChatMemberHandler .CHAT_MEMBER , [2 ], (False , False )),
164
+ (ChatMemberHandler .ANY_CHAT_MEMBER , [2 ], (False , False )),
165
+ ],
166
+ ids = [
167
+ "MY_CHAT_MEMBER" ,
168
+ "CHAT_MEMBER" ,
169
+ "ANY_CHAT_MEMBER" ,
170
+ "MY_CHAT_MEMBER, CHAT=1 " ,
171
+ "CHAT_MEMBER, CHAT=1" ,
172
+ "ANY_CHAT_MEMBER, CHAT=1" ,
173
+ "MY_CHAT_MEMBER, CHAT=[1] " ,
174
+ "CHAT_MEMBER, CHAT=[1]" ,
175
+ "ANY_CHAT_MEMBER, CHAT=[1]" ,
176
+ "MY_CHAT_MEMBER, CHAT=2 " ,
177
+ "CHAT_MEMBER, CHAT=2" ,
178
+ "ANY_CHAT_MEMBER, CHAT=2" ,
179
+ "MY_CHAT_MEMBER, CHAT=[2] " ,
180
+ "CHAT_MEMBER, CHAT=[2]" ,
181
+ "ANY_CHAT_MEMBER, CHAT=[2]" ,
182
+ ],
183
+ )
184
+ async def test_chat_member_types_with_chat_id (
185
+ self , app , chat_member_updated , chat_member , expected , allowed_types , chat_id
186
+ ):
187
+ result_1 , result_2 = expected
188
+
189
+ handler = ChatMemberHandler (
190
+ self .callback , chat_member_types = allowed_types , chat_id = chat_id
191
+ )
192
+ app .add_handler (handler )
193
+
194
+ async with app :
195
+ assert handler .check_update (chat_member ) == result_1
196
+ await app .process_update (chat_member )
197
+ assert self .test_flag == result_1
198
+
199
+ self .test_flag = False
200
+ chat_member .my_chat_member = None
201
+ chat_member .chat_member = chat_member_updated
202
+
203
+ assert handler .check_update (chat_member ) == result_2
204
+ await app .process_update (chat_member )
205
+ assert self .test_flag == result_2
206
+
147
207
def test_other_update_types (self , false_update ):
148
208
handler = ChatMemberHandler (self .callback )
149
209
assert not handler .check_update (false_update )
0 commit comments