Exemple #1
0
    def test_chunking_new_wan_size(self):
        """ Test the chunking of GELF messages
        """
        from txgraylog.protocol.gelf import GELF_NEW

        longMessage = binascii.hexlify(
            randbytes.insecureRandom(3000)) + 'more!'

        g = GelfProtocol('host', gelf_fmt=GELF_NEW, **{
                'system': 'protocol',
                'isError': False,
                'message': longMessage,
                'time': time.time(),
        })

        messages = g.generate()

        self.failUnless(len(messages) > 1)
        self.failUnless(messages[0].startswith('\x1e\x0f'))

        old_id = None
        for i in xrange(len(messages)):
            magic, chunk_id, seq, num_chunks = struct.unpack(
                '2s8sBB', messages[i][:12]
            )

            self.assertEquals(magic, '\x1e\x0f')
            self.assertEquals(seq, i)
            self.assertEquals(num_chunks, len(messages))

            if old_id:
                self.assertEquals(chunk_id, old_id)

            old_id = chunk_id
Exemple #2
0
    def test_chunking_iter(self):
        """ Test the chunking of GELF messages using iter
        """

        longMessage = binascii.hexlify(
            randbytes.insecureRandom(3000)) + 'more!'

        g = GelfProtocol('localhost', **{
            'system': 'protocol',
            'isError': False,
            'message': longMessage,
            'time': time.time(),
        })

        for index, message in enumerate(g):
            self.failUnless(message.startswith('\x1e\x0f'))

            old_id = None
            magic, chunk_id, seq, num_chunks = struct.unpack(
                '>2s32sHH', message[:38]
            )

            self.assertEquals(magic, '\x1e\x0f')
            self.assertEquals(seq, index)

            if old_id:
                self.assertEquals(chunk_id, old_id)

            old_id = chunk_id
Exemple #3
0
    def test_chunking_legacy_wan_size(self):
        """ Test the chunking of GELF messages
        """

        longMessage = binascii.hexlify(
            randbytes.insecureRandom(3000)) + 'more!'

        g = GelfProtocol('localhost', **{
            'system': 'protocol',
            'isError': False,
            'message': longMessage,
            'time': time.time(),
        })

        messages = g.generate()

        self.failUnless(len(messages) > 1)
        self.failUnless(messages[0].startswith('\x1e\x0f'))

        old_id = None
        for i in xrange(len(messages)):
            magic, chunk_id, seq, num_chunks = struct.unpack(
                '>2s32sHH', messages[i][:38]
            )

            self.assertEquals(magic, '\x1e\x0f')
            self.assertEquals(seq, i)
            self.assertEquals(num_chunks, len(messages))

            if old_id:
                self.assertEquals(chunk_id, old_id)

            old_id = chunk_id