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
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
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