예제 #1
0
 def test_formater(self):
     record = MockRecord(5, 'pikos', 'apikos')
     output = ('one   two   three{newline}-----------------{newline}'
               '5     pikos apikos{newline}'.format(newline=os.linesep))
     recorder = TextStreamRecorder(self.temp, formatted=True)
     recorder.prepare(MockRecord)
     recorder.record(record)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
예제 #2
0
    def test_exceptions(self):
        record = MockRecord(5, 'pikos', 'apikos')
        recorder = TextStreamRecorder(self.temp)

        with self.assertRaises(RecorderError):
            recorder.record(record)

        with self.assertRaises(RecorderError):
            recorder.finalize()
예제 #3
0
 def test_finalize(self):
     header = 'one two three{newline}-------------{newline}'.\
              format(newline=os.linesep)
     recorder = TextStreamRecorder(self.temp)
     # all calls do nothing
     recorder.prepare(MockRecord)
     for x in range(10):
         recorder.finalize()
     self.assertMultiLineEqual(self.temp.getvalue(), header)
예제 #4
0
def baserecorder(filter_=None):
    """ Factory function that returns a basic recorder.
    """
    import sys
    from pikos.recorders.text_stream_recorder import TextStreamRecorder
    return TextStreamRecorder(sys.stdout,
                              filter_=filter_,
                              auto_flush=True,
                              formatted=True)
예제 #5
0
    def test_prepare(self):
        header = 'one two three{newline}-------------{newline}'.\
                 format(newline=os.linesep)
        recorder = TextStreamRecorder(self.temp)
        recorder.prepare(MockRecord)

        # the first call writes the header
        self.assertMultiLineEqual(self.temp.getvalue(), header)
        recorder.prepare(MockRecord)
        # all calls after that do nothing
        for x in range(10):
            recorder.prepare(MockRecord)
        self.assertMultiLineEqual(self.temp.getvalue(), header)
예제 #6
0
    def test_filter(self):
        records = [
            MockRecord(5, 'pikos', 'apikos'),
            MockRecord(12, 'emilios', 'milo')
        ]
        output = ('one two three{newline}-------------{newline}'
                  '12 emilios milo{newline}'.format(newline=os.linesep))

        def not_pikos(values):
            return not 'pikos' in values

        recorder = TextStreamRecorder(self.temp, filter_=not_pikos)
        recorder.prepare(MockRecord)
        for record in records:
            recorder.record(record)
        self.assertMultiLineEqual(self.temp.getvalue(), output)