@@ -236,6 +236,17 @@ def _sleep_minutes(self, n):
236
236
237
237
@cases .mark_isupport ("ELIST" )
238
238
@cases .mark_specifications ("Modern" )
239
+ @cases .xfailIfSoftware (
240
+ ["Plexus4" , "Hybrid" ],
241
+ "Hybrid and Plexus4 filter on ELIST=C with the opposite meaning" ,
242
+ )
243
+ @cases .xfailIf (
244
+ lambda self : bool (
245
+ self .controller .software_name == "UnrealIRCd"
246
+ and self .controller .software_version == 5
247
+ ),
248
+ "UnrealIRCd <6.0.3 filters on ELIST=C with the opposite meaning" ,
249
+ )
239
250
def testListCreationTime (self ):
240
251
"""
241
252
" C: Searching based on channel creation time, via the "C<val" and "C>val"
@@ -325,8 +336,12 @@ def testListCreationTime(self):
325
336
326
337
@cases .mark_isupport ("ELIST" )
327
338
@cases .mark_specifications ("Modern" )
328
- @cases .xfailIfSoftware (
329
- ["UnrealIRCd" ], "UnrealIRCd advertises ELIST=T but does not implement it"
339
+ @cases .xfailIf (
340
+ lambda self : bool (
341
+ self .controller .software_name == "UnrealIRCd"
342
+ and self .controller .software_version == 5
343
+ ),
344
+ "UnrealIRCd <6.0.3 advertises ELIST=T but does not implement it" ,
330
345
)
331
346
def testListTopicTime (self ):
332
347
"""
@@ -371,46 +386,21 @@ def testListTopicTime(self):
371
386
372
387
self ._sleep_minutes (1 )
373
388
374
- if self .controller .software_name in ("UnrealIRCd" ,):
375
- self .sendLine (1 , "LIST T<2" )
376
- self .assertEqual (self ._parseChanList (1 ), {"#chan1" })
377
-
378
- self .sendLine (1 , "LIST T>2" )
379
- self .assertEqual (self ._parseChanList (1 ), {"#chan2" })
380
-
381
- self .sendLine (1 , "LIST T>0" )
382
- self .assertEqual (self ._parseChanList (1 ), set ())
389
+ self .sendLine (1 , "LIST T>2" )
390
+ self .assertEqual (self ._parseChanList (1 ), {"#chan1" })
383
391
384
- self .sendLine (1 , "LIST T<0 " )
385
- self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
392
+ self .sendLine (1 , "LIST T<2 " )
393
+ self .assertEqual (self ._parseChanList (1 ), {"#chan2" })
386
394
387
- self .sendLine (1 , "LIST T>10" )
395
+ self .sendLine (1 , "LIST T<0" )
396
+ if self .controller .software_name == "InspIRCd" :
397
+ # Insp internally represents "LIST T>0" like "LIST"
388
398
self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
389
- elif self .controller .software_name in (
390
- "Solanum" ,
391
- "Charybdis" ,
392
- "InspIRCd" ,
393
- "Plexus4" ,
394
- "Hybrid" ,
395
- "Nefarious" ,
396
- ):
397
- self .sendLine (1 , "LIST T>2" )
398
- self .assertEqual (self ._parseChanList (1 ), {"#chan1" })
399
-
400
- self .sendLine (1 , "LIST T<2" )
401
- self .assertEqual (self ._parseChanList (1 ), {"#chan2" })
402
-
403
- self .sendLine (1 , "LIST T<0" )
404
- if self .controller .software_name == "InspIRCd" :
405
- # Insp internally represents "LIST T>0" like "LIST"
406
- self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
407
- else :
408
- self .assertEqual (self ._parseChanList (1 ), set ())
399
+ else :
400
+ self .assertEqual (self ._parseChanList (1 ), set ())
409
401
410
- self .sendLine (1 , "LIST T>0" )
411
- self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
402
+ self .sendLine (1 , "LIST T>0" )
403
+ self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
412
404
413
- self .sendLine (1 , "LIST T<10" )
414
- self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
415
- else :
416
- assert False , f"{ self .controller .software_name } not supported"
405
+ self .sendLine (1 , "LIST T<10" )
406
+ self .assertEqual (self ._parseChanList (1 ), {"#chan1" , "#chan2" })
0 commit comments