@@ -236,6 +236,17 @@ def _sleep_minutes(self, n):
236236
237237 @cases .mark_isupport ("ELIST" )
238238 @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+ )
239250 def testListCreationTime (self ):
240251 """
241252 " C: Searching based on channel creation time, via the "C<val" and "C>val"
@@ -325,8 +336,12 @@ def testListCreationTime(self):
325336
326337 @cases .mark_isupport ("ELIST" )
327338 @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" ,
330345 )
331346 def testListTopicTime (self ):
332347 """
@@ -371,46 +386,21 @@ def testListTopicTime(self):
371386
372387 self ._sleep_minutes (1 )
373388
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" })
383391
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" })
386394
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"
388398 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 ())
409401
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" })
412404
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