Esempio n. 1
0
 def test_record_with_tuple(self):
     record = (5, 'pikos', 'apikos')
     output = '5,pikos,apikos\r\n'
     recorder = CSVRecorder(self.temp)
     recorder.prepare(tuple)
     recorder.record(record)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 2
0
 def test_record_with_namedtuple(self):
     record = DummyRecord(5, 'pikos', 'apikos')
     output = 'one,two,three\r\n5,pikos,apikos\r\n'
     recorder = CSVRecorder(self.temp)
     recorder.prepare(DummyRecord)
     recorder.record(record)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 3
0
 def test_finalize(self):
     header = 'one,two,three\r\n'
     recorder = CSVRecorder(self.temp)
     # all calls do nothing
     recorder.prepare(DummyRecord)
     for x in range(10):
         recorder.finalize()
     self.assertMultiLineEqual(self.temp.getvalue(), header)
Esempio n. 4
0
 def test_record(self):
     fields = ('one', 'two','three')
     values = (5, 'pikos','apikos')
     output = 'one,two,three\r\n5,pikos,apikos\r\n'
     recorder = CSVRecorder(self.temp)
     recorder.prepare(fields)
     recorder.record(values)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 5
0
 def test_dialect(self):
     fields = ('one', 'two','three')
     values = [(5, 'pikos','apikos'), (12, 'emilios','milo')]
     output = 'one,two,three^5,pikos,apikos^12,emilios,milo^'
     recorder = CSVRecorder(self.temp, lineterminator='^')
     recorder.prepare(fields)
     for record in values:
         recorder.record(record)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 6
0
    def test_exception_when_no_prepare(self):
        values = [(5, 'pikos', 'apikos')]
        recorder = CSVRecorder(self.temp)

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

        with self.assertRaises(RecorderError):
            recorder.finalize()
Esempio n. 7
0
 def test_dialect(self):
     records = [
         DummyRecord(5, 'pikos', 'apikos'),
         DummyRecord(12, 'emilios', 'milo')]
     output = 'one,two,three^5,pikos,apikos^12,emilios,milo^'
     recorder = CSVRecorder(self.temp, lineterminator='^')
     recorder.prepare(DummyRecord)
     for record in records:
         recorder.record(record)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 8
0
    def test_exceptions(self):
        fields = ('one', 'two','three')
        values = [(5, 'pikos','apikos')]
        recorder = CSVRecorder(self.temp)

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

        with self.assertRaises(RecorderError):
            recorder.finalize()
Esempio n. 9
0
    def test_filter(self):
        fields = ('one', 'two','three')
        values = [(5, 'pikos','apikos'), (12, 'emilios','milo')]
        output = 'one,two,three\r\n12,emilios,milo\r\n'
        def not_pikos(values):
            return not 'pikos' in values

        recorder = CSVRecorder(self.temp, filter_=not_pikos)
        recorder.prepare(fields)
        for record in values:
            recorder.record(record)
        self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 10
0
    def test_filter(self):
        records = [
            DummyRecord(5, 'pikos', 'apikos'),
            DummyRecord(12, 'emilios', 'milo')]
        output = 'one,two,three\r\n12,emilios,milo\r\n'

        def not_pikos(records):
            return all('pikos' != record for record in records)

        recorder = CSVRecorder(self.temp, filter_=not_pikos)
        recorder.prepare(DummyRecord)
        for record in records:
            recorder.record(record)
        self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 11
0
    def test_prepare(self):
        fields = ('one', 'two', 'three')
        header = 'one,two,three\r\n'
        recorder = CSVRecorder(self.temp)
        recorder.prepare(fields)

        # the first call writes the header
        self.assertMultiLineEqual(self.temp.getvalue(), header)
        recorder.prepare(fields)
        # all calls after that do nothing
        for x in range(10):
            recorder.prepare(fields)
        self.assertMultiLineEqual(self.temp.getvalue(), header)
Esempio n. 12
0
    def test_prepare_with_tuple(self):
        recorder = CSVRecorder(self.temp)
        recorder.prepare(tuple)

        # there is no header in this case
        self.assertMultiLineEqual(self.temp.getvalue(), '')
        recorder.prepare(tuple)
        # all calls do nothing
        for x in range(10):
            recorder.prepare(tuple)
        self.assertMultiLineEqual(self.temp.getvalue(), '')
Esempio n. 13
0
 def test_record(self):
     fields = ('one', 'two', 'three')
     values = (5, 'pikos', 'apikos')
     output = 'one,two,three\r\n5,pikos,apikos\r\n'
     recorder = CSVRecorder(self.temp)
     recorder.prepare(fields)
     recorder.record(values)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 14
0
    def test_prepare_with_namedtuple(self):
        header = 'one,two,three\r\n'
        recorder = CSVRecorder(self.temp)
        recorder.prepare(DummyRecord)

        # the first call writes the header
        self.assertMultiLineEqual(self.temp.getvalue(), header)
        recorder.prepare(DummyRecord)
        # all calls after that do nothing
        for x in range(10):
            recorder.prepare(DummyRecord)
        self.assertMultiLineEqual(self.temp.getvalue(), header)
Esempio n. 15
0
 def test_finalize(self):
     fields = ('one', 'two', 'three')
     header = 'one,two,three\r\n'
     recorder = CSVRecorder(self.temp)
     # all calls do nothing
     recorder.prepare(fields)
     for x in range(10):
         recorder.finalize()
     self.assertMultiLineEqual(self.temp.getvalue(), header)
Esempio n. 16
0
    def test_exception_when_no_prepare(self):
        values = [(5, 'pikos', 'apikos')]
        recorder = CSVRecorder(self.temp)

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

        with self.assertRaises(RecorderError):
            recorder.finalize()
Esempio n. 17
0
 def test_dialect(self):
     fields = ('one', 'two', 'three')
     values = [(5, 'pikos', 'apikos'), (12, 'emilios', 'milo')]
     output = 'one,two,three^5,pikos,apikos^12,emilios,milo^'
     recorder = CSVRecorder(self.temp, lineterminator='^')
     recorder.prepare(fields)
     for record in values:
         recorder.record(record)
     self.assertMultiLineEqual(self.temp.getvalue(), output)
Esempio n. 18
0
    def test_prepare(self):
        fields = ('one', 'two','three')
        header = 'one,two,three\r\n'
        recorder = CSVRecorder(self.temp)
        recorder.prepare(fields)

        # the first call writes the header
        self.assertMultiLineEqual(self.temp.getvalue(), header)
        recorder.prepare(fields)
        # all calls after that do nothing
        for x in range(10):
            recorder.prepare(fields)
        self.assertMultiLineEqual(self.temp.getvalue(), header)
Esempio n. 19
0
    def test_filter(self):
        fields = ('one', 'two', 'three')
        values = [(5, 'pikos', 'apikos'), (12, 'emilios', 'milo')]
        output = 'one,two,three\r\n12,emilios,milo\r\n'

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

        recorder = CSVRecorder(self.temp, filter_=not_pikos)
        recorder.prepare(fields)
        for record in values:
            recorder.record(record)
        self.assertMultiLineEqual(self.temp.getvalue(), output)