def test_prepare(self): header = 'one two three\n-------------\n' recorder = TextFileRecorder(filename=self.filename) with self.finalizer(recorder): recorder.prepare(DummyRecord) self.assertRecordedLines(header)
def test_record(self): record = DummyRecord(5, 'pikos', 'apikos') output = 'one two three\n-------------\n5 pikos apikos\n' recorder = TextFileRecorder(filename=self.filename) with self.finalizer(recorder): recorder.prepare(DummyRecord) recorder.record(record) self.assertRecordedLines(output)
def test_exception_when_no_prepare(self): records = [DummyRecord(5, 'pikos', 'apikos')] recorder = TextFileRecorder(filename=self.filename) with self.assertRaises(RecorderError): recorder.record(records) with self.assertRaises(RecorderError): recorder.finalize()
def test_finalize(self): header = 'one two three\n-------------\n' recorder = TextFileRecorder(filename=self.filename) # all calls do nothing with self.finalizer(recorder): recorder.prepare(DummyRecord) for x in range(10): recorder.finalize() self.assertRecordedLines(header)
def test_prepare_multiple_times(self): header = 'one two three\n-------------\n' recorder = TextFileRecorder(filename=self.filename) with self.finalizer(recorder): recorder.prepare(DummyRecord) # all calls after that do nothing for x in range(10): recorder.prepare(DummyRecord) self.assertRecordedLines(header)
def test_formatter_with_tuple(self): record = (5, 'pikos', 'apikos') # there is no header in this case output = '5 pikos apikos\n' recorder = TextFileRecorder( filename=self.filename, formatted=True) with self.finalizer(recorder): recorder.prepare(tuple) recorder.record(record) self.assertRecordedLines(output)
def test_filter(self): records = [ DummyRecord(5, 'pikos', 'apikos'), DummyRecord(12, 'emilios', 'milo')] output = 'one two three\n-------------\n12 emilios milo\n' def not_pikos(record): return all('pikos' != field for field in record) recorder = TextFileRecorder(filename=self.filename, filter_=not_pikos) with self.finalizer(recorder): recorder.prepare(DummyRecord) for record in records: recorder.record(record) self.assertRecordedLines(output)