irctest.self_tests.cases
Internal checks of assertion implementations.
IrcTestCaseTestCase
bahamut
charybdis
ergo
hybrid
inspircd
irc2
ircu2
limnoria
nefarious
ngircd
plexus4
sable
solanum
sopel
unrealircd
unrealircd-5
test_message_matching_negative[{'command': '004', 'params': ['nick', '...', OptStrRe(r'[a-zA-Z]+')]}-004 nick ... 123]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'command': '004', 'params': ['nick', '...', OptStrRe(r'[a-zA-Z]+')]}-004 nick ... :]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'command': '005', 'params': ['nick', 'FOO=1', *ANYLIST]}-005 nick BAR=2]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative[{'command': '005', 'params': ['nick', 'FOO=1', *ANYLIST]}-005 nick]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative[{'command': '005', 'params': ['nick', ListRemainder(ANYSTR, min_length=1)]}-005 nick]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative[{'command': '005', 'params': ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)]}-005 nick foo=1]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative[{'command': '005', 'params': ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)]}-005 nick]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative[{'command': 'PING', 'params': ['abc']}-PONG def]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan hello2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan2 hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-PRIVMSG #chan :hi]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-PRIVMSG #chan2 hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'nick': 'foo', 'command': 'PRIVMSG'}-:foo2!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'nick': 'foo', 'command': 'PRIVMSG'}-@tag1=bar :foo2!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'nick': 'foo', 'command': 'PRIVMSG'}-PRIVMSG #chan :hi]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=value1 PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan hello2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan2 hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2=baz PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=value1 PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar'}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar'}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar'}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=value1 PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': 'bar'}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': ANYSTR}, 'command': 'PRIVMSG', 'params': ['#chan', ANYSTR]}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': ANYSTR}, 'command': 'PRIVMSG', 'params': ['#chan', ANYSTR]}-@tag1=bar;tag2= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {'tag1': ANYSTR}, 'command': 'PRIVMSG', 'params': ['#chan', ANYSTR]}-PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=value1 PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan hello2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan2 hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected command to match PING, got PONG]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected command to match PRIVMSG, got PRIVMG0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected command to match PRIVMSG, got PRIVMG1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected command to match PRIVMSG, got PRIVMG2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected nick to be foo, got None instead]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected nick to be foo, got foo2 instead0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected nick to be foo, got foo2 instead1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', 'hello'], got ['#chan', 'hello2']0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', 'hello'], got ['#chan', 'hello2']1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', 'hello'], got ['#chan', 'hello2']2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', 'hello'], got ['#chan2', 'hello']0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', 'hello'], got ['#chan2', 'hello']1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', 'hello'], got ['#chan2', 'hello']2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', StrRe(r'hello.*')], got ['#chan', 'hi']]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['#chan', StrRe(r'hello.*')], got ['#chan2', 'hello']]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', '...', OptStrRe(r'[a-zA-Z]+')], got ['nick', '...', '']]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', '...', OptStrRe(r'[a-zA-Z]+')], got ['nick', '...', '123']]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', 'FOO=1', *ANYLIST], got ['nick', 'BAR=2']]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', 'FOO=1', *ANYLIST], got ['nick']]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', ListRemainder(ANYSTR, min_length=1)], got ['nick']]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)], got ['nick', 'foo=1']]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative_message[expected params to match ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)], got ['nick']]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, got {'tag1': 'value1'}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, got {}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, got {'tag1': 'bar', 'tag2': ''}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, got {'tag1': 'bar', 'tag2': 'baz'}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, got {'tag1': 'value1'}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar'}, got {'tag1': 'bar', 'tag2': ''}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar'}, got {'tag1': 'value1'}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar'}, got {}0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': 'bar'}, got {}1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': ANYSTR}, got {'tag1': 'bar', 'tag2': ''}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': ANYSTR}, got {}0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {'tag1': ANYSTR}, got {}1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, got {'tag1': 'value1'}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_negative_message[expected tags to match {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, got {}]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': '004', 'params': ['nick', '...', OptStrRe(r'[a-zA-Z]+')]}-004 nick ... abc]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': '004', 'params': ['nick', '...', OptStrRe(r'[a-zA-Z]+')]}-004 nick ...]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', 'FOO=1', *ANYLIST]}-005 nick FOO=1 BAR=2]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', 'FOO=1', *ANYLIST]}-005 nick FOO=1]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', ListRemainder(ANYSTR, min_length=1)]}-005 nick BAR=2]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', ListRemainder(ANYSTR, min_length=1)]}-005 nick FOO=1 BAR=2]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', ListRemainder(ANYSTR, min_length=1)]}-005 nick FOO=1]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)]}-005 nick BAR=2]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)]}-005 nick FOO=1 BAR=2]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': '005', 'params': ['nick', ListRemainder(StrRe(r'[A-Z]+=.*'), min_length=1)]}-005 nick FOO=1]
.
.
.
.
.
.
.
.
.
.
.
d
.
.
.
.
test_message_matching_positive[{'command': 'PING', 'params': ['abc']}-PING abc]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-@tag1=bar;tag2= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-PRIVMSG #chan hello2]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'command': 'PRIVMSG', 'params': ['#chan', StrRe(r'hello.*')]}-PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'nick': 'foo', 'command': 'PRIVMSG'}-:foo!baz@qux PRIVMSG #chan hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'nick': 'foo', 'command': 'PRIVMSG'}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar', RemainingKeys(NotStrRe(r'tag2')): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag3= PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar'}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': 'bar'}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': ANYSTR}, 'command': 'PRIVMSG', 'params': ['#chan', ANYSTR]}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': ANYSTR}, 'command': 'PRIVMSG', 'params': ['#chan', ANYSTR]}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {'tag1': ANYSTR}, 'command': 'PRIVMSG', 'params': ['#chan', ANYSTR]}-@tag1=value1 PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=;tag2=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar :foo!baz@qux PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2= PRIVMSG #chan :hello0]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag1=bar;tag2= PRIVMSG #chan :hello1]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
test_message_matching_positive[{'tags': {StrRe(r'tag[12]'): 'bar', RemainingKeys(ANYSTR): ANYOPTSTR}, 'command': 'PRIVMSG', 'params': ['#chan', 'hello']}-@tag2=bar PRIVMSG #chan :hello]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.