summaryrefslogtreecommitdiff
path: root/test/test_coverage.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_coverage.py')
-rw-r--r--test/test_coverage.py97
1 files changed, 64 insertions, 33 deletions
diff --git a/test/test_coverage.py b/test/test_coverage.py
index 31f3aa17..5da9cb16 100644
--- a/test/test_coverage.py
+++ b/test/test_coverage.py
@@ -140,12 +140,33 @@ class SimpleStatementTest(CoverageTest):
"""Testing simple single-line statements."""
def test_expression(self):
+ # Bare expressions as statements are tricky: some implementations
+ # optimize some of them away. All implementations seem to count
+ # the implicit return at the end as executable.
+ self.check_coverage("""\
+ 12
+ 23
+ """,
+ ([1,2],[2]), "")
+ self.check_coverage("""\
+ 12
+ 23
+ a = 3
+ """,
+ ([1,2,3],[3]), "")
self.check_coverage("""\
1 + 2
1 + \\
2
""",
- [1,2], "")
+ ([1,2], [2]), "")
+ self.check_coverage("""\
+ 1 + 2
+ 1 + \\
+ 2
+ a = 4
+ """,
+ ([1,2,4], [4]), "")
def test_assert(self):
self.check_coverage("""\
@@ -560,7 +581,7 @@ class SimpleStatementTest(CoverageTest):
c = 6
assert (a,b,c) == (1,3,6)
""",
- ([1,3,5,6,7], [1,3,4,5,6,7]), "")
+ ([1,3,6,7], [1,3,5,6,7], [1,3,4,5,6,7]), "")
class CompoundStatementTest(CoverageTest):
@@ -821,6 +842,16 @@ class CompoundStatementTest(CoverageTest):
""",
[1,2,4,5,7,9,10], "4, 7")
+ if sys.version_info >= (2, 4):
+ # In 2.4 and up, constant if's were compiled away.
+ def test_constant_if(self):
+ self.check_coverage("""\
+ if 1:
+ a = 2
+ assert a == 2
+ """,
+ [2,3], "")
+
def test_while(self):
self.check_coverage("""\
a = 3; b = 0
@@ -1134,7 +1165,7 @@ class ExcludeTest(CoverageTest):
if 0:
a = 4 # -cc
""",
- [1,3], "", ['-cc'])
+ [1,3], "", excludes=['-cc'])
def test_two_excludes(self):
self.check_coverage("""\
@@ -1146,7 +1177,7 @@ class ExcludeTest(CoverageTest):
c = 6 # -xx
assert a == 1 and b == 2
""",
- [1,3,5,7], "5", ['-cc', '-xx'])
+ [1,3,5,7], "5", excludes=['-cc', '-xx'])
def test_excluding_if_suite(self):
self.check_coverage("""\
@@ -1158,7 +1189,7 @@ class ExcludeTest(CoverageTest):
c = 6
assert a == 1 and b == 2
""",
- [1,7], "", ['if 0:'])
+ [1,7], "", excludes=['if 0:'])
def test_excluding_if_but_not_else_suite(self):
self.check_coverage("""\
@@ -1173,7 +1204,7 @@ class ExcludeTest(CoverageTest):
b = 9
assert a == 8 and b == 9
""",
- [1,8,9,10], "", ['if 0:'])
+ [1,8,9,10], "", excludes=['if 0:'])
def test_excluding_else_suite(self):
self.check_coverage("""\
@@ -1188,7 +1219,7 @@ class ExcludeTest(CoverageTest):
b = 9
assert a == 4 and b == 5 and c == 6
""",
- [1,3,4,5,6,10], "", ['#pragma: NO COVER'])
+ [1,3,4,5,6,10], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 1; b = 2
@@ -1208,7 +1239,7 @@ class ExcludeTest(CoverageTest):
b = 9
assert a == 4 and b == 5 and c == 6
""",
- [1,3,4,5,6,17], "", ['#pragma: NO COVER'])
+ [1,3,4,5,6,17], "", excludes=['#pragma: NO COVER'])
def test_excluding_elif_suites(self):
self.check_coverage("""\
@@ -1226,7 +1257,7 @@ class ExcludeTest(CoverageTest):
b = 12
assert a == 4 and b == 5 and c == 6
""",
- [1,3,4,5,6,11,12,13], "11-12", ['#pragma: NO COVER'])
+ [1,3,4,5,6,11,12,13], "11-12", excludes=['#pragma: NO COVER'])
def test_excluding_oneline_if(self):
self.check_coverage("""\
@@ -1237,7 +1268,7 @@ class ExcludeTest(CoverageTest):
foo()
""",
- [1,2,4,6], "", ["no cover"])
+ [1,2,4,6], "", excludes=["no cover"])
def test_excluding_a_colon_not_a_suite(self):
self.check_coverage("""\
@@ -1248,7 +1279,7 @@ class ExcludeTest(CoverageTest):
foo()
""",
- [1,2,4,6], "", ["no cover"])
+ [1,2,4,6], "", excludes=["no cover"])
def test_excluding_for_suite(self):
self.check_coverage("""\
@@ -1257,7 +1288,7 @@ class ExcludeTest(CoverageTest):
a += i
assert a == 15
""",
- [1,4], "", ['#pragma: NO COVER'])
+ [1,4], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
for i in [1,
@@ -1266,7 +1297,7 @@ class ExcludeTest(CoverageTest):
a += i
assert a == 15
""",
- [1,6], "", ['#pragma: NO COVER'])
+ [1,6], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
for i in [1,2,3,4,5
@@ -1276,7 +1307,7 @@ class ExcludeTest(CoverageTest):
a = 99
assert a == 1
""",
- [1,7], "", ['#pragma: NO COVER'])
+ [1,7], "", excludes=['#pragma: NO COVER'])
def test_excluding_for_else(self):
self.check_coverage("""\
@@ -1289,7 +1320,7 @@ class ExcludeTest(CoverageTest):
a = 123
assert a == 1
""",
- [1,2,3,4,5,8], "5", ['#pragma: NO COVER'])
+ [1,2,3,4,5,8], "5", excludes=['#pragma: NO COVER'])
def test_excluding_while(self):
self.check_coverage("""\
@@ -1300,7 +1331,7 @@ class ExcludeTest(CoverageTest):
b = 99
assert a == 3 and b == 0
""",
- [1,6], "", ['#pragma: NO COVER'])
+ [1,6], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 3; b = 0
while (
@@ -1311,7 +1342,7 @@ class ExcludeTest(CoverageTest):
b = 99
assert a == 3 and b == 0
""",
- [1,8], "", ['#pragma: NO COVER'])
+ [1,8], "", excludes=['#pragma: NO COVER'])
def test_excluding_while_else(self):
self.check_coverage("""\
@@ -1324,7 +1355,7 @@ class ExcludeTest(CoverageTest):
b = 123
assert a == 3 and b == 1
""",
- [1,2,3,4,5,8], "5", ['#pragma: NO COVER'])
+ [1,2,3,4,5,8], "5", excludes=['#pragma: NO COVER'])
def test_excluding_try_except(self):
self.check_coverage("""\
@@ -1335,7 +1366,7 @@ class ExcludeTest(CoverageTest):
a = 99
assert a == 1
""",
- [1,2,3,6], "", ['#pragma: NO COVER'])
+ [1,2,3,6], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1345,7 +1376,7 @@ class ExcludeTest(CoverageTest):
a = 99
assert a == 99
""",
- [1,2,3,4,5,6,7], "", ['#pragma: NO COVER'])
+ [1,2,3,4,5,6,7], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1357,7 +1388,7 @@ class ExcludeTest(CoverageTest):
a = 123
assert a == 123
""",
- [1,2,3,4,7,8,9], "", ['#pragma: NO COVER'])
+ [1,2,3,4,7,8,9], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1368,7 +1399,7 @@ class ExcludeTest(CoverageTest):
a = 123
assert a == 123
""",
- [1,2,3,7,8], "", ['#pragma: NO COVER'])
+ [1,2,3,7,8], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1380,7 +1411,7 @@ class ExcludeTest(CoverageTest):
a = 123
assert a == 99
""",
- [1,2,3,4,5,6,9], "", ['#pragma: NO COVER'])
+ [1,2,3,4,5,6,9], "", excludes=['#pragma: NO COVER'])
def test_excluding_try_except_pass(self):
self.check_coverage("""\
@@ -1391,7 +1422,7 @@ class ExcludeTest(CoverageTest):
x = 2
assert a == 1
""",
- [1,2,3,6], "", ['#pragma: NO COVER'])
+ [1,2,3,6], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1403,7 +1434,7 @@ class ExcludeTest(CoverageTest):
a = 123
assert a == 123
""",
- [1,2,3,4,7,8,9], "", ['#pragma: NO COVER'])
+ [1,2,3,4,7,8,9], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1414,7 +1445,7 @@ class ExcludeTest(CoverageTest):
a = 123
assert a == 123
""",
- [1,2,3,7,8], "", ['#pragma: NO COVER'])
+ [1,2,3,7,8], "", excludes=['#pragma: NO COVER'])
self.check_coverage("""\
a = 0
try:
@@ -1426,7 +1457,7 @@ class ExcludeTest(CoverageTest):
x = 2
assert a == 99
""",
- [1,2,3,4,5,6,9], "", ['#pragma: NO COVER'])
+ [1,2,3,4,5,6,9], "", excludes=['#pragma: NO COVER'])
def test_excluding_if_pass(self):
# From a comment on the coverage page by Michael McNeil Forbes:
@@ -1439,7 +1470,7 @@ class ExcludeTest(CoverageTest):
f()
""",
- [1,7], "", ["no cover"])
+ [1,7], "", excludes=["no cover"])
def test_excluding_function(self):
self.check_coverage("""\
@@ -1451,7 +1482,7 @@ class ExcludeTest(CoverageTest):
x = 1
assert x == 1
""",
- [6,7], "", ['#pragma: NO COVER'])
+ [6,7], "", excludes=['#pragma: NO COVER'])
def test_excluding_method(self):
self.check_coverage("""\
@@ -1465,7 +1496,7 @@ class ExcludeTest(CoverageTest):
x = Fooey()
assert x.a == 1
""",
- [1,2,3,8,9], "", ['#pragma: NO COVER'])
+ [1,2,3,8,9], "", excludes=['#pragma: NO COVER'])
def test_excluding_class(self):
self.check_coverage("""\
@@ -1479,7 +1510,7 @@ class ExcludeTest(CoverageTest):
x = 1
assert x == 1
""",
- [8,9], "", ['#pragma: NO COVER'])
+ [8,9], "", excludes=['#pragma: NO COVER'])
if sys.version_info >= (2, 4):
@@ -1683,7 +1714,7 @@ class ReportingTest(CoverageTest):
CoverageException, "No data to report.",
self.command_line, "annotate -d ann"
)
- self.assertFalse(os.path.exists("ann"))
+ self.assert_doesnt_exist("ann")
def test_no_data_to_report_on_html(self):
# Reporting with no data produces a nice message and no output dir.
@@ -1691,7 +1722,7 @@ class ReportingTest(CoverageTest):
CoverageException, "No data to report.",
self.command_line, "html -d htmlcov"
)
- self.assertFalse(os.path.exists("htmlcov"))
+ self.assert_doesnt_exist("htmlcov")
def test_no_data_to_report_on_xml(self):
# Reporting with no data produces a nice message.