def test_reader_quotes(self): """Test CSV reader basic quote handling""" reader = CSVReader(StringIO('a,"b c","d"\n')) values = reader.parse_line() self.assertEqual(values[0], "a") self.assertEqual(values[1], "b c") self.assertEqual(values[2], "d")
def test_reader_skips_blank_lines(self): """CSV reader should skip blank lines""" reader = CSVReader(StringIO("\na,b,c\n \n1,2,3\n")) values = reader.parse_line() self.assertEqual(values[0], "a") values = reader.parse_line() self.assertEqual(values[0], "1")
def test_simple_csv(self): """Test basic CSV reading capabilities""" reader = CSVReader(StringIO("a,b,c\n")) values = reader.parse_line() self.assertEqual(values[0], "a") self.assertEqual(values[1], "b") self.assertEqual(values[2], "c") # End of input signaled by None next = reader.parse_line() self.assertIsNone(next)
def test_reader_quotes_with_whitespace(self): """Test handling of whitepsace around quotes""" reader = CSVReader(StringIO('a, "b" ,c\n')) values = reader.parse_line() self.assertEqual(values[1], 'b')
def test_reader_embedded_quotes(self): """Test CSV reader handling of embedded quotes""" reader = CSVReader(StringIO('a,"b ""c""",d\n')) values = reader.parse_line() self.assertEqual(values[1], 'b "c"')
def test_reader_unicode(self): """Handle Unicode data via the CSV reader""" reader = CSVReader(StringIO(u"a,b,c\n")) values = reader.parse_line() self.assertEqual(values[0], u"a")
def test_value_trimming(self): """Verify that CSV fields are whitespace-trimmed""" reader = CSVReader(StringIO("a, b ,c\n")) values = reader.parse_line() self.assertEqual(values[1], "b")