summaryrefslogtreecommitdiff
path: root/test/test_parser.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2011-01-30 08:31:41 -0500
committerNed Batchelder <ned@nedbatchelder.com>2011-01-30 08:31:41 -0500
commit453c1487076ca12bca8d08d6fc6e8d996eb7745b (patch)
treed96e2dc8a103ac8365b117681343edf7371538ff /test/test_parser.py
parent8603a594d0f08dc469abb0ae8090b4b7b5ed39e7 (diff)
downloadpython-coveragepy-git-453c1487076ca12bca8d08d6fc6e8d996eb7745b.tar.gz
A test for parsing files with different line endings.
Diffstat (limited to 'test/test_parser.py')
-rw-r--r--test/test_parser.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/test/test_parser.py b/test/test_parser.py
index b398044d..c25611cf 100644
--- a/test/test_parser.py
+++ b/test/test_parser.py
@@ -16,7 +16,7 @@ class ParserTest(CoverageTest):
def parse_source(self, text):
"""Parse `text` as source, and return the `CodeParser` used."""
text = textwrap.dedent(text)
- cp = CodeParser(text, exclude="nocover")
+ cp = CodeParser(text=text, exclude="nocover")
cp.parse_source()
return cp
@@ -94,3 +94,34 @@ class ParserTest(CoverageTest):
b = 6
""")
self.assertEqual(cp.exit_counts(), { 1:1, 2:1, 3:1, 6:1 })
+
+
+class ParserFileTest(CoverageTest):
+ """Tests for Coverage.py's code parsing from files."""
+
+ def parse_file(self, filename):
+ """Parse `text` as source, and return the `CodeParser` used."""
+ cp = CodeParser(filename=filename, exclude="nocover")
+ cp.parse_source()
+ return cp
+
+ def test_line_endings(self):
+ text = """\
+ # check some basic branch counting
+ class Foo:
+ def foo(self, a):
+ if a:
+ return 5
+ else:
+ return 7
+
+ class Bar:
+ pass
+ """
+ counts = { 2:1, 3:1, 4:2, 5:1, 7:1, 9:1, 10:1 }
+ name_endings = (("unix", "\n"), ("dos", "\r\n"), ("mac", "\r"))
+ for fname, newline in name_endings:
+ fname = fname + ".py"
+ self.make_file(fname, text, newline=newline)
+ cp = self.parse_file(fname)
+ self.assertEqual(cp.exit_counts(), counts)