def test_field_size_limit(self): # Testing field_size_limit for failure. Creating data using str * int. with open('.test.csv', 'r') as f: c = csv_py2.UnicodeReader(f, field_size_limit=9) try: c.next() except FieldSizeLimitError: pass else: raise AssertionError('Expected FieldSizeLimitError') # Now testing higher field_size_limit. with open('.test.csv', 'r') as f: c = csv_py2.UnicodeReader(f, field_size_limit=11) self.assertEqual(['a' * 10], c.next())
def test_utf8(self): with open('examples/test.csv') as f: reader = csv_py2.UnicodeReader(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_utf16_big(self): output = six.StringIO() writer = csv_py2.UnicodeWriter(output, encoding='utf-16-be') self.assertEqual(writer._eight_bit, False) writer.writerow(['a', 'b', 'c']) writer.writerow(['1', '2', '3']) writer.writerow(['4', '5', u'ʤ']) written = six.StringIO(output.getvalue()) reader = csv_py2.UnicodeReader(written, encoding='utf-16-be') self.assertEqual(next(reader), ['a', 'b', 'c']) self.assertEqual(next(reader), ['1', '2', '3']) self.assertEqual(next(reader), ['4', '5', u'\u02A4'])
def test_latin1(self): output = six.StringIO() writer = csv_py2.UnicodeWriter(output, encoding='latin1') 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.UnicodeReader(written, encoding='latin1') self.assertEqual(next(reader), ['a', 'b', 'c']) self.assertEqual(next(reader), ['1', '2', '3']) self.assertEqual(next(reader), ['4', '5', u'©'])
def test_utf16_little(self): with open('examples/test_utf16_little.csv') as f: reader = csv_py2.UnicodeReader(f, encoding='utf-16') self.assertEqual(next(reader), ['a', 'b', 'c']) self.assertEqual(next(reader), ['1', '2', '3']) self.assertEqual(next(reader), ['4', '5', u'ʤ'])
def test_latin1(self): with open('examples/test_latin1.csv') as f: reader = csv_py2.UnicodeReader(f, encoding='latin1') self.assertEqual(next(reader), ['a', 'b', 'c']) self.assertEqual(next(reader), ['1', '2', '3']) self.assertEqual(next(reader), ['4', '5', u'©'])
def test_utf8(self): with open('examples/test.csv') as f: rows = list(csv_py2.UnicodeReader(f, encoding='utf-8')) for a, b in zip(self.rows, rows): self.assertEqual(a, b)