def testInvalidLineEnd(self): f = transitfeed.EndOfLineChecker(StringIO("line1\r\r\nline2"), "<StringIO>", self.problems) self.RunEndOfLineChecker(f) e = self.accumulator.PopException("InvalidLineEnd") self.assertEqual(e.file_name, "<StringIO>") self.assertEqual(e.row_num, 1) self.assertEqual(e.bad_line_end, r"\r\r\n") self.accumulator.AssertNoMoreExceptions()
def testEmbeddedUtf8NextLine(self): f = transitfeed.EndOfLineChecker(StringIO("line1b\xc2\x85"), "<StringIO>", self.problems) self.RunEndOfLineChecker(f) e = self.accumulator.PopException("OtherProblem") self.assertEqual(e.file_name, "<StringIO>") self.assertEqual(e.row_num, 1) self.assertEqual(e.FormatProblem(), "Line contains Unicode NEXT LINE SEPARATOR U+0085") self.accumulator.AssertNoMoreExceptions()
def testEmbeddedCr(self): f = transitfeed.EndOfLineChecker(StringIO("line1\rline1b"), "<StringIO>", self.problems) self.RunEndOfLineChecker(f) e = self.accumulator.PopException("OtherProblem") self.assertEqual(e.file_name, "<StringIO>") self.assertEqual(e.row_num, 1) self.assertEqual(e.FormatProblem(), "Line contains ASCII Carriage Return 0x0D, \\r") self.accumulator.AssertNoMoreExceptions()
def testInvalidLineEndToo(self): f = transitfeed.EndOfLineChecker( StringIO("line1\nline2\r\nline3\r\r\r\n"), "<StringIO>", self.problems) self.RunEndOfLineChecker(f) e = self.accumulator.PopException("InvalidLineEnd") self.assertEqual(e.file_name, "<StringIO>") self.assertEqual(e.row_num, 3) self.assertEqual(e.bad_line_end, r"\r\r\r\n") e = self.accumulator.PopException("OtherProblem") self.assertEqual(e.file_name, "<StringIO>") self.assertTrue(e.description.find("consistent line end") != -1) self.accumulator.AssertNoMoreExceptions()
def testEndOfLineManyMix(self): f = transitfeed.EndOfLineChecker( StringIO("1\n2\n3\n4\n5\n6\n7\r\n8\r\n9\r\n10\r\n11\r\n"), "<StringIO>", self.problems) self.RunEndOfLineChecker(f) e = self.accumulator.PopException("OtherProblem") self.assertEqual(e.file_name, "<StringIO>") self.assertEqual( e.FormatProblem(), "Found 5 CR LF \"\\r\\n\" line ends (lines 7, 8, 9, 10, " "11) and 6 LF \"\\n\" line ends (lines 1, 2, 3, 4, 5, " "...). A file must use a consistent line end.") self.accumulator.AssertNoMoreExceptions()
def testEndOfLineMix(self): f = transitfeed.EndOfLineChecker( StringIO("line1\nline2\r\nline3\nline4"), "<StringIO>", self.problems) self.RunEndOfLineChecker(f) e = self.accumulator.PopException("OtherProblem") self.assertEqual(e.file_name, "<StringIO>") self.assertEqual( e.FormatProblem(), "Found 1 CR LF \"\\r\\n\" line end (line 2) and " "2 LF \"\\n\" line ends (lines 1, 3). A file must use a " "consistent line end.") self.accumulator.AssertNoMoreExceptions()