Example #1
0
 def test_empty_instance(self):
     tags = IrcMessageTagsReadOnly()
     self.assertEqual(len(tags), 0)
     self.assertFalse(tags)
     self.assertNotIn('Kappa', tags)
     self.assertNotIn(IrcMessageTagsKey('Kappa'), tags)
     self.assertEqual(str(tags), '')
     self.assertEqual(tags, IrcMessageTagsReadOnly(None))
     self.assertEqual(tags, {})
Example #2
0
 def test_instance_one_item_vendor_key_true_value(self):
     tags = IrcMessageTagsReadOnly(['turbo/miniK'])
     self.assertEqual(len(tags), 1)
     self.assertEqual(tags['turbo/miniK'], True)
     self.assertEqual(tags, {'turbo/miniK': True})
     self.assertEqual(tags, {IrcMessageTagsKey('miniK', 'turbo'): True})
     self.assertEqual(
         tags, IrcMessageTagsReadOnly([IrcMessageTagsKey('miniK',
                                                         'turbo')]))
Example #3
0
 def test_format_values(self):
     self.assertEqual(IrcMessageTagsReadOnly.formatValue('abc'), r'abc')
     self.assertEqual(IrcMessageTagsReadOnly.formatValue('a b c'),
                      r'a\sb\sc')
     self.assertEqual(IrcMessageTagsReadOnly.formatValue('a b c'),
                      r'a\sb\sc')
     self.assertEqual(IrcMessageTagsReadOnly.formatValue('a;b;c'),
                      r'a\:b\:c')
     self.assertEqual(IrcMessageTagsReadOnly.formatValue('a\rb\nc'),
                      r'a\rb\nc')
Example #4
0
 def test_instance_one_item_key_str_value(self):
     tags = IrcMessageTagsReadOnly({'Kappa': 'KappaHD'})
     self.assertEqual(len(tags), 1)
     self.assertTrue(tags)
     self.assertIn('Kappa', tags)
     self.assertIn(IrcMessageTagsKey('Kappa'), tags)
     self.assertEqual(tags['Kappa'], 'KappaHD')
     self.assertEqual(tags[IrcMessageTagsKey('Kappa')], 'KappaHD')
     self.assertEqual(
         tags,
         IrcMessageTagsReadOnly([[IrcMessageTagsKey('Kappa'), 'KappaHD']]))
     self.assertEqual(tags, {'Kappa': 'KappaHD'})
Example #5
0
 def test_from_twitch_privmsg(self):
     self.assertEqual(
         IrcMessage.fromMessage(
             '@badges=broadcaster/1;color=#DAA520;display-name=BotGotsThis;'
             'emotes=25:6-10;mod=1;room-id=42553092;subscriber=0;turbo=0;'
             'user-id=55612319;user-type=mod '
             ':[email protected] '
             'PRIVMSG #botgotsthis :Hello Kappa'),
         IrcMessage(
             tags=IrcMessageTagsReadOnly({
                 'badges': 'broadcaster/1',
                 'color': '#DAA520',
                 'display-name': 'BotGotsThis',
                 'emotes': '25:6-10',
                 'mod': '1',
                 'room-id': '42553092',
                 'subscriber': '0',
                 'turbo': '0',
                 'user-id': '55612319',
                 'user-type': 'mod'
             }),
             prefix=IrcMessagePrefix(nick='botgotsthis',
                                     user='******',
                                     host='botgotsthis.tmi.twitch.tv'),
             command='PRIVMSG',
             params=IrcMessageParams(middle='#botgotsthis',
                                     trailing='Hello Kappa')))
Example #6
0
    def test_parse_multiple_spaces(self):
        self.assertEqual(
            IrcMessage.parse('''\
@multiple=spaces  :will!be@used  HERE  to  test :if  this  passes'''),
            ParsedMessage(
                IrcMessageTagsReadOnly({'multiple': 'spaces'}),
                IrcMessagePrefix(nick='will', user='******', host='used'),
                'HERE', IrcMessageParams('to test', 'if  this  passes')))
Example #7
0
 def test_parse_three_items(self):
     self.assertEqual(
         IrcMessageTagsReadOnly.parseTags(
             'Kappa=Kippa;BibleThump;FrankerZ=RalpherZ'), {
                 'Kappa': 'Kippa',
                 'BibleThump': True,
                 'FrankerZ': 'RalpherZ'
             })
Example #8
0
 def test_str_magic_two_items_mixed(self):
     self.assertIn(
         str(
             IrcMessageTagsReadOnly({
                 'KevinTurtle': True,
                 'SwiftRage/DansGame': 'BibleThump'
             })), [
                 'KevinTurtle;SwiftRage/DansGame=BibleThump',
                 'SwiftRage/DansGame=BibleThump;KevinTurtle'
             ])
Example #9
0
 def test_instance_two_items(self):
     tags = IrcMessageTagsReadOnly(
         ['KevinTurtle', [IrcMessageTagsKey('KreyGasm'), 'PogChamp ']])
     self.assertEqual(len(tags), 2)
     self.assertTrue(tags)
     self.assertIn('KevinTurtle', tags)
     self.assertIn(IrcMessageTagsKey('KreyGasm'), tags)
     self.assertEqual(tags[IrcMessageTagsKey('KevinTurtle')], True)
     self.assertEqual(tags['KreyGasm'], 'PogChamp ')
     strTags = str(tags)
     self.assertIn(strTags, [
         r'KevinTurtle;KreyGasm=PogChamp\s',
         r'KreyGasm=PogChamp\s;KevinTurtle'
     ])
     self.assertEqual(
         tags,
         IrcMessageTagsReadOnly({
             IrcMessageTagsKey('KevinTurtle'): True,
             'KreyGasm': 'PogChamp '
         }))
Example #10
0
 def test_instance_multi_items(self):
     tags = IrcMessageTagsReadOnly([
         'KevinTurtle',
         IrcMessageTagsKey('PraiseIt'), ['Kappa', 'Keepo'],
         [IrcMessageTagsKey('SwiftRage'), 'DansGame']
     ])
     self.assertEqual(len(tags), 4)
     self.assertEqual(tags['KevinTurtle'], True)
     self.assertEqual(tags['PraiseIt'], True)
     self.assertEqual(tags[IrcMessageTagsKey('Kappa')], 'Keepo')
     self.assertEqual(tags[IrcMessageTagsKey('SwiftRage')], 'DansGame')
Example #11
0
    def test_parse_twitch_tags(self):
        items = IrcMessageTagsReadOnly.parseTags('''\
badges=broadcaster/1;color=;display-name=BotGotsThis;emote-sets=0;mod=0;\
subscriber=0;turbo=0;user-type=''')
        self.assertEqual(items['badges'], 'broadcaster/1')
        self.assertEqual(items['color'], '')
        self.assertEqual(items['display-name'], 'BotGotsThis')
        self.assertEqual(items['emote-sets'], '0')
        self.assertEqual(items['mod'], '0')
        self.assertEqual(items['subscriber'], '0')
        self.assertEqual(items['turbo'], '0')
        self.assertEqual(items['user-type'], '')
Example #12
0
 def test_empty_instance_mapping_methods(self):
     tags = IrcMessageTagsReadOnly()
     self.assertEqual(tags, tags)
     self.assertEqual(tags, IrcMessageTagsReadOnly())
     self.assertEqual(tags, {})
     self.assertFalse(tags.keys())
     self.assertFalse(tags.values())
     self.assertFalse(tags.items())
     self.assertIsNone(tags.get('Kappa'))
     keyIter = iter(tags)
     self.assertRaises(StopIteration, next, keyIter)
Example #13
0
 def test_str_tags_magic_prefix_command_params(self):
     message = IrcMessage(
             tags=IrcMessageTagsReadOnly({
                 'broadcaster-lang': '',
                 'emote-only': '0',
                 'r9k': '0',
                 'slow': '0',
                 'subs-only': '0'
                 }),
             prefix=IrcMessagePrefix(servername='tmi.twitch.tv'),
             command='ROOMSTATE', params=IrcMessageParams('#botgotsthis'))
     self.assertEqual(
         str(message),
         '@' + str(message.tags) + ' :tmi.twitch.tv ROOMSTATE #botgotsthis')
Example #14
0
 def test_tags_prefix_command_params(self):
     message = IrcMessage(
         tags=IrcMessageTagsReadOnly({
             'broadcaster-lang': '',
             'emote-only': '0',
             'r9k': '0',
             'slow': '0',
             'subs-only': '0'
             }),
         prefix=IrcMessagePrefix(servername='tmi.twitch.tv'),
         command='ROOMSTATE', params=IrcMessageParams('#botgotsthis'))
     self.assertEqual(len(message.tags), 5)
     self.assertEqual(message.tags['broadcaster-lang'], '')
     self.assertEqual(message.tags['emote-only'], '0')
     self.assertEqual(message.tags['r9k'], '0')
     self.assertEqual(message.tags['slow'], '0')
     self.assertEqual(message.tags['subs-only'], '0')
     self.assertEqual(message.prefix.servername, 'tmi.twitch.tv')
     self.assertIsNone(message.prefix.nick)
     self.assertIsNone(message.prefix.user)
     self.assertIsNone(message.prefix.host)
     self.assertEqual(message.command, 'ROOMSTATE')
     self.assertIs(message.params.middle, '#botgotsthis')
     self.assertIs(message.params.trailing, None)
     self.assertEqual(
         message,
         IrcMessage(
             tags=IrcMessageTagsReadOnly({
                 'broadcaster-lang': '',
                 'emote-only': '0',
                 'r9k': '0',
                 'slow': '0',
                 'subs-only': '0'
                 }),
             prefix=IrcMessagePrefix(servername='tmi.twitch.tv'),
             command='ROOMSTATE',
             params=IrcMessageParams('#botgotsthis')))
Example #15
0
 def test_str_magic_three_items(self):
     self.assertIn(
         str(
             IrcMessageTagsReadOnly({
                 'FrankerZ': 'RalpherZ',
                 'TriHard/WinWaker': True,
                 'DatSheffy': True
             })), [
                 'FrankerZ=RalpherZ;TriHard/WinWaker;DatSheffy',
                 'FrankerZ=RalpherZ;DatSheffy;TriHard/WinWaker',
                 'TriHard/WinWaker;FrankerZ=RalpherZ;DatSheffy',
                 'TriHard/WinWaker;DatSheffy;FrankerZ=RalpherZ',
                 'DatSheffy;FrankerZ=RalpherZ;TriHard/WinWaker',
                 'DatSheffy;TriHard/WinWaker;FrankerZ=RalpherZ'
             ])
Example #16
0
 def test_parse_empty(self):
     items = IrcMessageTagsReadOnly.parseTags('')
     self.assertIsInstance(items, Dict)
     self.assertEqual(items, IrcMessageTagsReadOnly())
Example #17
0
 def test_str_magic_one_item_with_value(self):
     self.assertEqual(
         str(
             IrcMessageTagsReadOnly(
                 [IrcMessageTagsKey(vendor='twitch.tv', key='KappaHD')])),
         'twitch.tv/KappaHD')
Example #18
0
 def test_parse_key_vendor(self):
     self.assertEqual(IrcMessageTagsReadOnly.parseTags('Kappa/Keepo'),
                      {'Kappa/Keepo': True})
Example #19
0
 def test_parse_key(self):
     items = IrcMessageTagsReadOnly.parseTags('Kappa')
     self.assertEqual(items, {'Kappa': True})
Example #20
0
 def test_index_missing_tagskey(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(KeyError):
         tags[IrcMessageTagsKey('Kappa')]
Example #21
0
 def test_readonly(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(TypeError):
         tags['Kappa'] = 'KappaHD'
Example #22
0
 def test_index_int(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(TypeError):
         1 in tags
     with self.assertRaises(TypeError):
         tags[1]
Example #23
0
 def test_index_missing_str(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(KeyError):
         tags['Kappa']
Example #24
0
 def test_index_bytes(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(TypeError):
         b'Kappa' in tags
     with self.assertRaises(TypeError):
         tags[b'Kappa']
Example #25
0
 def test_parse_key_value(self):
     self.assertEqual(IrcMessageTagsReadOnly.parseTags('Kappa=Kippa'),
                      {'Kappa': 'Kippa'})
Example #26
0
 def test_fromkey_str_vendor(self):
     key = IrcMessageTagsReadOnly.fromKey('Kappa/Keepo')
     self.assertEqual(key, IrcMessageTagsKey('Keepo', 'Kappa'))
     self.assertEqual(key, 'Kappa/Keepo')
Example #27
0
 def test_constructor_readonly(self):
     tags = IrcMessageTagsReadOnly()
     self.assertIs(tags, IrcMessageTagsReadOnly(tags))
Example #28
0
 def test_fromkey_key(self):
     key = IrcMessageTagsKey()
     self.assertIs(IrcMessageTagsReadOnly.fromKey(key), key)
Example #29
0
 def test_command_set_command(self):
     message = IrcMessage(command=0)
     with self.assertRaises(AttributeError):
         message.command = IrcMessageTagsReadOnly()
Example #30
0
    def test_parse_twitch_bits(self):
        IrcMessageTagsReadOnly.parseTags('''\
badges=staff/1,bits/1000;bits=100;color=;display-name=TWITCH_UserNaME;emotes=;\
id=b34ccfc7-4977-403a-8a94-33c6bac34fb8;mod=0;room-id=1337;subscriber=0;\
turbo=1;user-id=1337;user-type=staff''')