Ejemplo n.º 1
0
    def test_aggregator(self):

        aggregator = unified2.Aggregator()

        # We should not get an event from the aggregator as we pass in
        # the records from the first event.
        reader = unified2.RecordReader(open(self.test_filename, "rb"))
        for record in reader:
            event = aggregator.add(record)
            self.assertEqual(None, event)

        # On the first add of the next event we should get an event.
        reader = unified2.RecordReader(open(self.test_filename, "rb"))
        event = aggregator.add(reader.next())
        self.assertTrue(event)
        self.assertTrue(isinstance(event, unified2.Event))

        # The next 16 records should get added without an event being
        # generated.
        for record in reader:
            self.assertEqual(None, aggregator.add(record))

        # Now flush.
        event = aggregator.flush()
        self.assertTrue(event)
        self.assertTrue(isinstance(event, unified2.Event))
Ejemplo n.º 2
0
    def test_eof(self):
        """Test that we get None on EOF."""

        reader = unified2.RecordReader(open(self.test_filename, "rb"))
        for i in range(17):
            record = reader.next()
            self.assertTrue(record)
        self.assertFalse(reader.next())
Ejemplo n.º 3
0
    def test_short_read_of_body(self):

        # Just read in 12, 8 for the header and some body.
        buf = open(self.test_filename, "rb").read(12)
        self.assertEquals(len(buf), 12)

        fileobj = io.BytesIO(buf)
        self.assertEquals(fileobj.tell(), 0)
        reader = unified2.RecordReader(fileobj)
        self.assertRaises(EOFError, reader.next)
        self.assertEquals(fileobj.tell(), 0)
Ejemplo n.º 4
0
    def test_short_read_of_header(self):

        # Just read in 6 bytes of the header.
        buf = open(self.test_filename, "rb").read(6)
        self.assertEquals(len(buf), 6)

        fileobj = io.BytesIO(buf)
        self.assertEquals(fileobj.tell(), 0)
        reader = unified2.RecordReader(fileobj)
        self.assertRaises(EOFError, reader.next)
        self.assertEquals(fileobj.tell(), 0)
Ejemplo n.º 5
0
    def test_interleaved(self):

        # First read in all records from a known multi-record event.
        records = []
        reader = unified2.RecordReader(open(self.test_filename, "rb"))
        for record in reader:
            records.append(record)
        self.assertEqual(len(records), 17)

        # Modify the event ID of the last record.
        records[16]["event-id"] = records[16]["event-id"] - 1

        # Add all 17 records to the aggregator.  Should only end up
        # with 16 as the last one will be thrown out due to an
        # event-id mismatch.
        aggregator = unified2.Aggregator()
        for record in records:
            aggregator.add(record)
        self.assertEqual(len(aggregator.queue), 16)
Ejemplo n.º 6
0
    def test_iteration(self):

        # Should get 17 records.
        reader = unified2.RecordReader(open(self.test_filename, "rb"))
        records = [r for r in reader]
        self.assertEquals(len(records), 17)