def test_utf8(self): with open('examples/test.csv') as f: reader = csv_py2.Reader(f, encoding='utf-8') self.assertEqual(next(reader), ['one', 'two', 'three']) self.assertEqual(next(reader), ['1', '4', 'a']) self.assertEqual(next(reader), ['2', '3', 'b']) self.assertEqual(next(reader), ['', '2', u'👍'])
def test_properties(self): with open('examples/test.csv') as f: reader = csv_py2.Reader(f, encoding='utf-8') self.assertEqual(reader.dialect.delimiter, ',') self.assertEqual(reader.line_num, 0) next(reader) self.assertEqual(reader.line_num, 1)
def test_utf8(self): output = six.StringIO() writer = csv_py2.Writer(output, encoding='utf-8') self.assertEqual(writer._eight_bit, True) writer.writerow(['a', 'b', 'c']) writer.writerow(['1', '2', '3']) writer.writerow(['4', '5', u'ʤ']) written = six.StringIO(output.getvalue()) reader = csv_py2.Reader(written, encoding='utf-8') self.assertEqual(next(reader), ['a', 'b', 'c']) self.assertEqual(next(reader), ['1', '2', '3']) self.assertEqual(next(reader), ['4', '5', u'ʤ'])
def test_line_numbers(self): with open('examples/test.csv') as f: rows = list(csv_py2.Reader(f, encoding='utf-8', line_numbers=True)) sample_rows = [[ 'line_numbers', 'number', 'text', 'boolean', 'date', 'datetime', 'timedelta' ], [ '1', '1', 'a', 'True', '2015-11-04', '2015-11-04T12:22:00', '0:04:15' ], [ '2', '2', u'👍', 'False', '2015-11-05', '2015-11-04T12:45:00', '0:06:18' ], ['3', '', 'b', '', '', '', '']] for a, b in zip(sample_rows, rows): self.assertEqual(a, b)
def test_reader_alias(self): with open('examples/test.csv') as f: rows = list(csv_py2.Reader(f, encoding='utf-8')) for a, b in zip(self.rows, rows): self.assertEqual(a, b)