Beispiel #1
0
 def testDataOnly(self):
     """Create a stream with only data blocks"""
     out = StringIO()
     recorder = Writer(output=out)
     blocks = [
         (12.34, "First data block"),
         (56.78, "Another data block"),
     ]
     for block in blocks:
         recorder.addBlock(*block)
     recorder.flush()
     
     headerData = compress("")
     blockData = [compress(data) for (_, data) in blocks]
     blockData = "".join(
         intToStr(len(data), 4)
         + intToStr(crc32(float64.pack(time) + data), 4)
         + float64.pack(time)
         + data
         + intToStr(len(data), 4)
         for ((time, _), data) in zip(blocks, blockData))
     
     assertEqual(
         magicMarker
         + intToStr(len(headerData), 4)
         + intToStr(crc32(headerData), 4)
         + headerData
         + intToStr(eohMarker, 4)
         + blockData
         , out.getvalue())
Beispiel #2
0
 def testHeaderAndData(self):
     """Create a stream with both header and data"""
     out = StringIO()
     recorder = Writer(output=out)
     headers = [
         ("Version", "1.2.3"),
         ("Configuration", "Standalone"),
     ]
     for header in headers:
         recorder.addHeader(*header)
     blocks = [
         (98.76, "Outgoing data"),
         (54.32, "Incoming data"),
     ]
     for block in blocks:
         recorder.addBlock(*block)
     recorder.flush()
     
     headerData = compress("".join(
         intToStr(len(k), 4) + k + intToStr(len(v), 4) + v
         for (k, v) in headers))
     blockData = [compress(data) for (_, data) in blocks]
     blockData = "".join(
         intToStr(len(data), 4)
         + intToStr(crc32(float64.pack(time) + data), 4)
         + float64.pack(time)
         + data
         + intToStr(len(data), 4)
         for ((time, _), data) in zip(blocks, blockData))
         
     assertEqual(
         magicMarker
         + intToStr(len(headerData), 4)
         + intToStr(crc32(headerData), 4)
         + headerData
         + intToStr(eohMarker, 4)
         + blockData
         , out.getvalue())