예제 #1
0
 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()
예제 #2
0
 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()
예제 #3
0
 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()
예제 #4
0
 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()
예제 #5
0
 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()
예제 #6
0
 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()