Exemple #1
0
    def test_fetch(self):
        """Test if it parses a set of log files"""

        backend = Supybot('http://example.com/', self.tmp_path)
        messages = [m for m in backend.fetch()]

        expected = [('benpol', 'comment',
                     '86cd62e954f3c81f2efd336b163b673419e722c4', 1350465381.0),
                    ('benpol', 'comment',
                     'c3d38be79806e98b50d308f4fdf078ed89aef68c', 1350465389.0),
                    ('benpol', 'comment',
                     '7f68a35c1515a82e2731312eb38b07b7d62f66a0', 1350465395.0),
                    ('MikeMcClurg', 'server',
                     '175bf289ff1340275b358dad90887e031628942d', 1350465410.0),
                    ('Tv_', 'server',
                     '1952a9ee3b87144f608aa2a84271ff7d6871e1c8', 1350465411.0),
                    ('benpol', 'comment',
                     '17730fed09f82ea9d0a770ec6167df5a9ea9060c', 1350465447.0),
                    ('benpol', 'comment',
                     '6d1b61c2839218c170c9bd775edcb02caaf921f5', 1350465460.0),
                    ('Tv_', 'comment',
                     '395fa8fb2e6aafa8f3618746dcc56f2fdfe35eac', 1350465528.0),
                    ('jamespage', 'comment',
                     '056408f3064b80e69490fd65ff0d066431592b0f', 1350552630.0),
                    ('LarsFronius_', 'server',
                     '319701fa6768a935d08ae5d5afb2d058122030d4', 1350552630.0),
                    ('bchrisman', 'server',
                     '291faf2760c39f672e9900d509908e77153e930a', 1350552658.0),
                    ('scuttlemonkey', 'comment',
                     '768843f086ef41b2346eff72c8f2935b0e23148c', 1350552785.0),
                    ('loicd', 'server',
                     'f4cdf0c9c3219d5931f704438d85a7665ad6d99e', 1350584011.0),
                    ('sagelap1', 'server',
                     'ac3dd25dbcaf068f061a20263140a34cb354950d', 1350584041.0),
                    ('guyfry', 'comment',
                     'cdd33f7c0f436b6f5299b969f27932a5454d15bb', 1350588930.0),
                    ('guyfry', 'comment',
                     '4d055dc4d487c3860391a2bf8b08ce48d97b11ca', 1350588930.0)]

        self.assertEqual(len(messages), len(expected))

        for x in range(len(messages)):
            message = messages[x]
            self.assertEqual(message['data']['nick'], expected[x][0])
            self.assertEqual(message['data']['type'], expected[x][1])
            self.assertEqual(message['origin'], 'http://example.com/')
            self.assertEqual(message['uuid'], expected[x][2])
            self.assertEqual(message['updated_on'], expected[x][3])
            self.assertEqual(message['category'], 'message')
            self.assertEqual(message['tag'], 'http://example.com/')
    def test_parse_supybot_log(self):
        """Test whether it parses a log"""

        # Empty lines and empty comment lines are ignored
        messages = Supybot.parse_supybot_log(
            os.path.join(os.path.dirname(os.path.abspath(__file__)),
                         'data/supybot/supybot_valid.log'))
        messages = [m for m in messages]

        self.assertEqual(len(messages), 97)

        msg = messages[1]
        self.assertEqual(msg['timestamp'], '2012-10-17T09:16:29+0000')
        self.assertEqual(msg['type'], SupybotParser.TCOMMENT)
        self.assertEqual(msg['nick'], 'benpol')
        self.assertEqual(msg['body'], "they're related to fragmentation?")

        msg = messages[-2]
        self.assertEqual(msg['timestamp'], '2012-10-17T23:42:10+0000')
        self.assertEqual(msg['type'], SupybotParser.TCOMMENT)
        self.assertEqual(msg['nick'], 'supy-bot')
        self.assertEqual(msg['body'],
                         "[backend] Fix bug #23: invalid timestamp")

        msg = messages[-1]
        self.assertEqual(msg['timestamp'], '2012-10-17T23:42:26+0000')
        self.assertEqual(msg['type'], SupybotParser.TCOMMENT)
        self.assertEqual(msg['nick'], 'gregaf')
        self.assertEqual(
            msg['body'],
            "but I may be wrong or debugging at the wrong level...")
    def test_parse_supybot_invalid_log(self):
        """Test whether it raises an exception when the log is invalid"""

        with self.assertRaises(ParseError):
            messages = Supybot.parse_supybot_log(os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                                              'data/supybot/supybot_invalid_msg.log'))
            _ = [message for message in messages]
    def test_parse_supybot_without_tz_log(self):
        """Test whether it parses a log without timezone information"""

        # Empty lines and empty comment lines are ignored
        messages = Supybot.parse_supybot_log(
            os.path.join(os.path.dirname(os.path.abspath(__file__)),
                         'data/supybot/supybot_date_without_tz.log'))
        messages = [m for m in messages]

        self.assertEqual(len(messages), 3)

        msg = messages[0]
        self.assertEqual(msg['timestamp'], '2021-01-12T11:28:19')
        self.assertEqual(msg['type'], SupybotParser.TSERVER)
        self.assertEqual(msg['nick'], 'grimoire_bot')
        self.assertEqual(
            msg['body'],
            "grimoire_bot <[email protected]> has joined #rit-foss"
        )

        msg = messages[1]
        self.assertEqual(msg['timestamp'], '2021-01-12T11:29:41')
        self.assertEqual(msg['type'], SupybotParser.TCOMMENT)
        self.assertEqual(msg['nick'], 'nolski')
        self.assertEqual(msg['body'], "test")

        msg = messages[-1]
        self.assertEqual(msg['timestamp'], '2021-01-12T11:29:41')
        self.assertEqual(msg['type'], SupybotParser.TCOMMENT)
        self.assertEqual(msg['nick'], 'xbot1313')
        self.assertEqual(msg['body'], "Test Case Passed!")
Exemple #5
0
    def test_parse_supybot_invalid_log(self):
        """Test whether it raises an exception when the log is invalid"""

        with self.assertRaises(ParseError):
            messages = Supybot.parse_supybot_log(
                'data/supybot_invalid_msg.log')
            _ = [message for message in messages]
    def test_initialization(self):
        """Test whether attributes are initializated"""

        backend = Supybot('http://example.com/', self.tmp_path, tag='test')

        self.assertEqual(backend.uri, 'http://example.com/')
        self.assertEqual(backend.dirpath, self.tmp_path)
        self.assertEqual(backend.origin, 'http://example.com/')
        self.assertEqual(backend.tag, 'test')

        # When tag is empty or None it will be set to
        # the value in uri
        backend = Supybot('http://example.com/', self.tmp_path)
        self.assertEqual(backend.origin, 'http://example.com/')
        self.assertEqual(backend.tag, 'http://example.com/')

        backend = Supybot('http://example.com/', self.tmp_path, tag='')
        self.assertEqual(backend.origin, 'http://example.com/')
        self.assertEqual(backend.tag, 'http://example.com/')
    def test_fetch_from_date(self):
        """Test whether a list of messages is returned since a given date"""

        from_date = datetime.datetime(2012, 10, 18, 9, 33, 5)

        backend = Supybot('http://example.com/', self.tmp_path)
        messages = [m for m in backend.fetch(from_date=from_date)]

        expected = [('scuttlemonkey', 'comment', '768843f086ef41b2346eff72c8f2935b0e23148c', 1350552785.0),
                    ('loicd', 'server', 'f4cdf0c9c3219d5931f704438d85a7665ad6d99e', 1350584011.0),
                    ('sagelap1', 'server', 'ac3dd25dbcaf068f061a20263140a34cb354950d', 1350584041.0),
                    ('guyfry', 'comment', 'cdd33f7c0f436b6f5299b969f27932a5454d15bb', 1350588930.0),
                    ('guyfry', 'comment', '4d055dc4d487c3860391a2bf8b08ce48d97b11ca', 1350588930.0)]

        for x in range(len(messages)):
            message = messages[x]
            self.assertEqual(message['data']['nick'], expected[x][0])
            self.assertEqual(message['data']['type'], expected[x][1])
            self.assertEqual(message['origin'], 'http://example.com/')
            self.assertEqual(message['uuid'], expected[x][2])
            self.assertEqual(message['updated_on'], expected[x][3])
            self.assertEqual(message['category'], 'message')
            self.assertEqual(message['tag'], 'http://example.com/')
    def test_search_fields(self):
        """Test whether the search_fields is properly set"""

        backend = Supybot('http://example.com/', self.tmp_path)
        messages = [m for m in backend.fetch()]

        message = messages[0]
        self.assertEqual(backend.metadata_id(message['data']), message['search_fields']['item_id'])

        message = messages[1]
        self.assertEqual(backend.metadata_id(message['data']), message['search_fields']['item_id'])

        message = messages[2]
        self.assertEqual(backend.metadata_id(message['data']), message['search_fields']['item_id'])

        message = messages[3]
        self.assertEqual(backend.metadata_id(message['data']), message['search_fields']['item_id'])
    def test_has_resuming(self):
        """Test if it returns True when has_resuming is called"""

        self.assertEqual(Supybot.has_resuming(), True)
    def test_has_archiving(self):
        """Test if it returns False when has_archiving is called"""

        self.assertEqual(Supybot.has_archiving(), False)