Skip to content

Commit

Permalink
fix(english): don't over-use commas in missing branch descriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
nedbat committed May 30, 2024
1 parent 8610bfb commit 773f8da
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 49 deletions.
3 changes: 1 addition & 2 deletions coverage/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ def missing_arc_description(

msg = f"line {actual_start} {emsg}"
if smsg is not None:
msg += f", because {smsg.format(lineno=actual_start)}"
msg += f" because {smsg.format(lineno=actual_start)}"

msgs.append(msg)

Expand Down Expand Up @@ -656,7 +656,6 @@ def __init__(self, body: Sequence[ast.AST]) -> None:
self.lineno = body[0].lineno

# TODO: some add_arcs methods here don't add arcs, they return them. Rename them.
# TODO: the cause messages have too many commas.
# TODO: Shouldn't the cause messages join with "and" instead of "or"?

def _make_expression_code_method(noun: str) -> Callable[[AstArcAnalyzer, ast.AST], None]:
Expand Down
16 changes: 8 additions & 8 deletions tests/gold/html/b_branch/b_py.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<title>Coverage for b.py: 70%</title>
<link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
<link rel="stylesheet" href="style_cb_8e611ae1.css" type="text/css">
<script src="coverage_html_cb_606408f0.js" defer></script>
<script src="coverage_html_cb_6fb7b396.js" defer></script>
</head>
<body class="pyfile">
<header>
Expand Down Expand Up @@ -66,8 +66,8 @@ <h2>
<a id="indexLink" class="nav" href="index.html">&Hat; index</a> &nbsp; &nbsp;
<a id="nextFileLink" class="nav" href="index.html">&#xbb; next</a>
&nbsp; &nbsp; &nbsp;
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.1a0.dev1">coverage.py v7.5.1a0.dev1</a>,
created at 2024-04-25 08:04 -0400
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.4a0.dev1">coverage.py v7.5.4a0.dev1</a>,
created at 2024-05-30 14:47 -0400
</p>
<aside class="hidden">
<button type="button" class="button_next_chunk" data-shortcut="j"></button>
Expand All @@ -84,7 +84,7 @@ <h2>
<main id="source">
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">def</span> <span class="nam">one</span><span class="op">(</span><span class="nam">x</span><span class="op">)</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> <span class="com"># This will be a branch that misses the else.</span>&nbsp;</span><span class="r"></span></p>
<p class="par run show_par"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> <span class="key">if</span> <span class="nam">x</span> <span class="op">&lt;</span> <span class="num">2</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">3&#x202F;&#x219B;&#x202F;6</span><span class="annotate long">line 3 didn't jump to line 6, because the condition on line 3 was always true</span></span></p>
<p class="par run show_par"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> <span class="key">if</span> <span class="nam">x</span> <span class="op">&lt;</span> <span class="num">2</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">3&#x202F;&#x219B;&#x202F;6</span><span class="annotate long">line 3 didn't jump to line 6 because the condition on line 3 was always true</span></span></p>
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"> <span class="nam">a</span> <span class="op">=</span> <span class="num">3</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> <span class="key">else</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> <span class="nam">a</span> <span class="op">=</span> <span class="num">4</span>&nbsp;</span><span class="r"></span></p>
Expand All @@ -93,15 +93,15 @@ <h2>
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">def</span> <span class="nam">two</span><span class="op">(</span><span class="nam">x</span><span class="op">)</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> <span class="com"># A missed else that branches to "exit"</span>&nbsp;</span><span class="r"></span></p>
<p class="par run show_par"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">if</span> <span class="nam">x</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">12&#x202F;&#x219B;&#x202F;exit</span><span class="annotate long">line 12 didn't return from function 'two', because the condition on line 12 was always true</span></span></p>
<p class="par run show_par"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">if</span> <span class="nam">x</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">12&#x202F;&#x219B;&#x202F;exit</span><span class="annotate long">line 12 didn't return from function 'two' because the condition on line 12 was always true</span></span></p>
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> <span class="nam">a</span> <span class="op">=</span> <span class="num">5</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"><span class="nam">two</span><span class="op">(</span><span class="num">1</span><span class="op">)</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"><span class="key">def</span> <span class="nam">three</span><span class="op">(</span><span class="op">)</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">try</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="com"># This if has two branches, *neither* one taken.</span>&nbsp;</span><span class="r"></span></p>
<p class="par run show_par"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">if</span> <span class="nam">name_error_this_variable_doesnt_exist</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">20&#x202F;&#x219B;&#x202F;21,&nbsp;&nbsp; 20&#x202F;&#x219B;&#x202F;23</span><span class="annotate long">2 missed branches: 1) line 20 didn't jump to line 21, because the condition on line 20 was never true, 2) line 20 didn't jump to line 23, because the condition on line 20 was always true</span></span></p>
<p class="par run show_par"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">if</span> <span class="nam">name_error_this_variable_doesnt_exist</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">20&#x202F;&#x219B;&#x202F;21,&nbsp;&nbsp; 20&#x202F;&#x219B;&#x202F;23</span><span class="annotate long">2 missed branches: 1) line 20 didn't jump to line 21 because the condition on line 20 was never true, 2) line 20 didn't jump to line 23 because the condition on line 20 was always true</span></span></p>
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">a</span> <span class="op">=</span> <span class="num">1</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">else</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">a</span> <span class="op">=</span> <span class="num">2</span>&nbsp;</span><span class="r"></span></p>
Expand All @@ -117,8 +117,8 @@ <h2>
<a class="nav" href="index.html">&Hat; index</a> &nbsp; &nbsp;
<a class="nav" href="index.html">&#xbb; next</a>
&nbsp; &nbsp; &nbsp;
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.1a0.dev1">coverage.py v7.5.1a0.dev1</a>,
created at 2024-04-25 08:04 -0400
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.4a0.dev1">coverage.py v7.5.4a0.dev1</a>,
created at 2024-05-30 14:47 -0400
</p>
</div>
</footer>
Expand Down
12 changes: 6 additions & 6 deletions tests/gold/html/partial/partial_py.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<title>Coverage for partial.py: 91%</title>
<link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
<link rel="stylesheet" href="style_cb_8e611ae1.css" type="text/css">
<script src="coverage_html_cb_606408f0.js" defer></script>
<script src="coverage_html_cb_6fb7b396.js" defer></script>
</head>
<body class="pyfile">
<header>
Expand Down Expand Up @@ -66,8 +66,8 @@ <h2>
<a id="indexLink" class="nav" href="index.html">&Hat; index</a> &nbsp; &nbsp;
<a id="nextFileLink" class="nav" href="index.html">&#xbb; next</a>
&nbsp; &nbsp; &nbsp;
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.1a0.dev1">coverage.py v7.5.1a0.dev1</a>,
created at 2024-04-25 08:07 -0400
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.4a0.dev1">coverage.py v7.5.4a0.dev1</a>,
created at 2024-05-30 15:19 -0400
</p>
<aside class="hidden">
<button type="button" class="button_next_chunk" data-shortcut="j"></button>
Expand All @@ -85,7 +85,7 @@ <h2>
<p class="pln"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="com"># partial branches and excluded lines</span>&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="nam">a</span> <span class="op">=</span> <span class="num">2</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="par run show_par"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">while</span> <span class="str">"no peephole"</span><span class="op">.</span><span class="nam">upper</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> <span class="com"># t4</span>&nbsp;</span><span class="r"><span class="annotate short">4&#x202F;&#x219B;&#x202F;7</span><span class="annotate long">line 4 didn't jump to line 7, because the condition on line 4 was always true</span></span></p>
<p class="par run show_par"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">while</span> <span class="str">"no peephole"</span><span class="op">.</span><span class="nam">upper</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> <span class="com"># t4</span>&nbsp;</span><span class="r"><span class="annotate short">4&#x202F;&#x219B;&#x202F;7</span><span class="annotate long">line 4 didn't jump to line 7 because the condition on line 4 was always true</span></span></p>
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> <span class="key">break</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">while</span> <span class="nam">a</span><span class="op">:</span> <span class="com"># pragma: no branch</span>&nbsp;</span><span class="r"></span></p>
Expand All @@ -107,8 +107,8 @@ <h2>
<a class="nav" href="index.html">&Hat; index</a> &nbsp; &nbsp;
<a class="nav" href="index.html">&#xbb; next</a>
&nbsp; &nbsp; &nbsp;
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.1a0.dev1">coverage.py v7.5.1a0.dev1</a>,
created at 2024-04-25 08:07 -0400
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.4a0.dev1">coverage.py v7.5.4a0.dev1</a>,
created at 2024-05-30 15:19 -0400
</p>
</div>
</footer>
Expand Down
14 changes: 7 additions & 7 deletions tests/gold/html/partial_626/partial_py.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<title>Coverage for partial.py: 87%</title>
<link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
<link rel="stylesheet" href="style_cb_8e611ae1.css" type="text/css">
<script src="coverage_html_cb_606408f0.js" defer></script>
<script src="coverage_html_cb_6fb7b396.js" defer></script>
</head>
<body class="pyfile">
<header>
Expand Down Expand Up @@ -66,8 +66,8 @@ <h2>
<a id="indexLink" class="nav" href="index.html">&Hat; index</a> &nbsp; &nbsp;
<a id="nextFileLink" class="nav" href="index.html">&#xbb; next</a>
&nbsp; &nbsp; &nbsp;
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.1a0.dev1">coverage.py v7.5.1a0.dev1</a>,
created at 2024-04-25 08:04 -0400
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.4a0.dev1">coverage.py v7.5.4a0.dev1</a>,
created at 2024-05-30 14:47 -0400
</p>
<aside class="hidden">
<button type="button" class="button_next_chunk" data-shortcut="j"></button>
Expand All @@ -85,7 +85,7 @@ <h2>
<p class="pln"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="com"># partial branches and excluded lines</span>&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="nam">a</span> <span class="op">=</span> <span class="num">2</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="par run show_par"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">while</span> <span class="str">"no peephole"</span><span class="op">.</span><span class="nam">upper</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> <span class="com"># t4</span>&nbsp;</span><span class="r"><span class="annotate short">4&#x202F;&#x219B;&#x202F;7</span><span class="annotate long">line 4 didn't jump to line 7, because the condition on line 4 was always true</span></span></p>
<p class="par run show_par"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">while</span> <span class="str">"no peephole"</span><span class="op">.</span><span class="nam">upper</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> <span class="com"># t4</span>&nbsp;</span><span class="r"><span class="annotate short">4&#x202F;&#x219B;&#x202F;7</span><span class="annotate long">line 4 didn't jump to line 7 because the condition on line 4 was always true</span></span></p>
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> <span class="key">break</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">while</span> <span class="nam">a</span><span class="op">:</span> <span class="com"># pragma: no branch</span>&nbsp;</span><span class="r"></span></p>
Expand All @@ -94,7 +94,7 @@ <h2>
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">if</span> <span class="num">0</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> <span class="nam">never_happen</span><span class="op">(</span><span class="op">)</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="par run show_par"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">if</span> <span class="num">13</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">13&#x202F;&#x219B;&#x202F;16</span><span class="annotate long">line 13 didn't jump to line 16, because the condition on line 13 was always true</span></span></p>
<p class="par run show_par"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">if</span> <span class="num">13</span><span class="op">:</span>&nbsp;</span><span class="r"><span class="annotate short">13&#x202F;&#x219B;&#x202F;16</span><span class="annotate long">line 13 didn't jump to line 16 because the condition on line 13 was always true</span></span></p>
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="nam">a</span> <span class="op">=</span> <span class="num">14</span>&nbsp;</span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"><span class="key">if</span> <span class="nam">a</span> <span class="op">==</span> <span class="num">16</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
Expand All @@ -107,8 +107,8 @@ <h2>
<a class="nav" href="index.html">&Hat; index</a> &nbsp; &nbsp;
<a class="nav" href="index.html">&#xbb; next</a>
&nbsp; &nbsp; &nbsp;
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.1a0.dev1">coverage.py v7.5.1a0.dev1</a>,
created at 2024-04-25 08:04 -0400
<a class="nav" href="https://coverage.readthedocs.io/en/7.5.4a0.dev1">coverage.py v7.5.4a0.dev1</a>,
created at 2024-05-30 14:47 -0400
</p>
</div>
</footer>
Expand Down
8 changes: 4 additions & 4 deletions tests/test_html.py
Original file line number Diff line number Diff line change
Expand Up @@ -811,17 +811,17 @@ def three():
'<span class="pc_cov">70%</span>',

('<span class="annotate short">3&#x202F;&#x219B;&#x202F;6</span>' +
'<span class="annotate long">line 3 didn\'t jump to line 6, ' +
'<span class="annotate long">line 3 didn\'t jump to line 6 ' +
'because the condition on line 3 was always true</span>'),
('<span class="annotate short">12&#x202F;&#x219B;&#x202F;exit</span>' +
'<span class="annotate long">line 12 didn\'t return from function \'two\', ' +
'<span class="annotate long">line 12 didn\'t return from function \'two\' ' +
'because the condition on line 12 was always true</span>'),
('<span class="annotate short">20&#x202F;&#x219B;&#x202F;21,&nbsp;&nbsp; ' +
'20&#x202F;&#x219B;&#x202F;23</span>' +
'<span class="annotate long">2 missed branches: ' +
'1) line 20 didn\'t jump to line 21, ' +
'1) line 20 didn\'t jump to line 21 ' +
'because the condition on line 20 was never true, ' +
'2) line 20 didn\'t jump to line 23, ' +
'2) line 20 didn\'t jump to line 23 ' +
'because the condition on line 20 was always true</span>'),
)
contains(
Expand Down
Loading

0 comments on commit 773f8da

Please sign in to comment.