コード例 #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, {})
コード例 #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')]))
コード例 #3
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)
コード例 #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'})
コード例 #5
0
 def test_instaance_one_item_mapping_methods(self):
     tags = IrcMessageTagsReadOnly(['Kappa'])
     self.assertEqual(tags, tags)
     self.assertEqual(tags, IrcMessageTagsReadOnly({'Kappa': True}))
     self.assertEqual(tags, {'Kappa': True})
     self.assertEqual(len(tags.keys()), 1)
     self.assertEqual(len(tags.values()), 1)
     self.assertEqual(len(tags.items()), 1)
     self.assertIn('Kappa', tags.keys())
     self.assertIn(IrcMessageTagsKey('Kappa'), tags.keys())
     self.assertIn(True, tags.values())
     self.assertIn(('Kappa', True), tags.items())
     self.assertIn((IrcMessageTagsKey('Kappa'), True), tags.items())
     keyIter = iter(tags)
     self.assertEqual(next(keyIter), 'Kappa')
     self.assertRaises(StopIteration, next, keyIter)
コード例 #6
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')))
コード例 #7
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')))
コード例 #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'
             ])
コード例 #9
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')
コード例 #10
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 '
         }))
コード例 #11
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')
コード例 #12
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')))
コード例 #13
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'
             ])
コード例 #14
0
 def test_readonly(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(TypeError):
         tags['Kappa'] = 'KappaHD'
コード例 #15
0
 def test_index_missing_tagskey(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(KeyError):
         tags[IrcMessageTagsKey('Kappa')]
コード例 #16
0
 def test_index_missing_str(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(KeyError):
         tags['Kappa']
コード例 #17
0
 def test_str_magic_one_item_with_value_str(self):
     self.assertEqual(str(IrcMessageTagsReadOnly({'Kappa': 'KappaPride'})),
                      'Kappa=KappaPride')
コード例 #18
0
 def test_instance_special_values(self):
     tags = IrcMessageTagsReadOnly({'abc': r';\ '})
     self.assertEqual(str(tags), r'abc=\:\\\s')
コード例 #19
0
 def test_constructor_readonly(self):
     tags = IrcMessageTagsReadOnly()
     self.assertIs(tags, IrcMessageTagsReadOnly(tags))
コード例 #20
0
 def test_parse_empty(self):
     items = IrcMessageTagsReadOnly.parseTags('')
     self.assertIsInstance(items, Dict)
     self.assertEqual(items, IrcMessageTagsReadOnly())
コード例 #21
0
 def test_str_magic_one_item_with_value(self):
     self.assertEqual(
         str(
             IrcMessageTagsReadOnly(
                 [IrcMessageTagsKey(vendor='twitch.tv', key='KappaHD')])),
         'twitch.tv/KappaHD')
コード例 #22
0
 def test_index_bytes(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(TypeError):
         b'Kappa' in tags
     with self.assertRaises(TypeError):
         tags[b'Kappa']
コード例 #23
0
 def test_index_int(self):
     tags = IrcMessageTagsReadOnly()
     with self.assertRaises(TypeError):
         1 in tags
     with self.assertRaises(TypeError):
         tags[1]
コード例 #24
0
 def test_command_set_command(self):
     message = IrcMessage(command=0)
     with self.assertRaises(AttributeError):
         message.command = IrcMessageTagsReadOnly()
コード例 #25
0
 def test_str_magic_empty_instance(self):
     self.assertEqual(str(IrcMessageTagsReadOnly()), '')