def test_record_with_namedtuple(self): record = DummyRecord(5, 'pikos', 'apikos') output = 'one,two,three\n5,pikos,apikos\n' recorder = CSVFileRecorder(filename=self.filename) with self.finalizer(recorder): recorder.prepare(DummyRecord) recorder.record(record) self.assertRecordedLines(output)
def test_record_with_tuple(self): record = (5, 'pikos', 'apikos') output = '5,pikos,apikos\n' recorder = CSVFileRecorder(filename=self.filename) with self.finalizer(recorder): recorder.prepare(tuple) recorder.record(record) self.assertRecordedLines(output)
def test_exception_when_no_prepare(self): records = [DummyRecord(5, 'pikos', 'apikos')] recorder = CSVFileRecorder(filename=self.filename) with self.assertRaises(RecorderError): recorder.record(records) with self.assertRaises(RecorderError): recorder.finalize()
def test_dialect(self): records = [ DummyRecord(5, 'pikos', 'apikos'), DummyRecord(12, 'emilios', 'milo')] output = 'one,two,three^5,pikos,apikos^12,emilios,milo^' recorder = CSVFileRecorder( filename=self.filename, lineterminator='^') with self.finalizer(recorder): recorder.prepare(DummyRecord) for record in records: recorder.record(record) self.assertRecordedLines(output)
def test_filter(self): records = [ DummyRecord(5, 'pikos', 'apikos'), DummyRecord(12, 'emilios', 'milo')] output = 'one,two,three\n12,emilios,milo\n' def not_pikos(record): return all('pikos' != field for field in record) recorder = CSVFileRecorder(filename=self.filename, filter_=not_pikos) with self.finalizer(recorder): recorder.prepare(DummyRecord) for record in records: recorder.record(record) self.assertRecordedLines(output)