Exclude known "emergency exits" from coverage reporting
Marco Ricci

Marco Ricci commited on 2024-06-08 19:06:56
Zeige 3 geänderte Dateien mit 8 Einfügungen und 7 Löschungen.


These "emergency exits" are code paths rooted in defensive programming
(of both code and of tests), and are not intended to be reached in
practice.
... ...
@@ -90,6 +90,7 @@ branch = true
90 90
 parallel = true
91 91
 omit = [
92 92
   "src/derivepassphrase/__about__.py",
93
+  "src/derivepassphrase/__main__.py",
93 94
 ]
94 95
 
95 96
 [tool.coverage.paths]
... ...
@@ -264,7 +264,7 @@ class Vault:
264 264
                                                      charset)
265 265
                     pos = seq.generate(len(charset))
266 266
                     result.extend(charset[pos:pos+1])
267
-            except sequin.SequinExhaustedException:
267
+            except sequin.SequinExhaustedException:  # pragma: no cover
268 268
                 hash_length *= 2
269 269
             else:
270 270
                 return bytes(result)
... ...
@@ -353,14 +353,14 @@ def test_sign_data_via_agent(keytype, data_dict):
353 353
     else:
354 354
         try:
355 355
             client = ssh_agent_client.SSHAgentClient()
356
-        except OSError:
356
+        except OSError:  # pragma: no cover
357 357
             pytest.skip('communication error with the SSH agent')
358 358
     with client:
359 359
         key_comment_pairs = {bytes(k): bytes(c)
360 360
                              for k, c in client.list_keys()}
361 361
         public_key_data = data_dict['public_key_data']
362 362
         expected_signature = data_dict['expected_signature']
363
-        if public_key_data not in key_comment_pairs:
363
+        if public_key_data not in key_comment_pairs:  # pragma: no cover
364 364
             pytest.skip('prerequisite SSH key not loaded')
365 365
         signature = bytes(client.sign(
366 366
             payload=derivepassphrase.Vault._UUID, key=public_key_data))
... ...
@@ -380,22 +380,22 @@ def test_sign_data_via_agent_unsupported(keytype, data_dict):
380 380
         result = subprocess.run(['ssh-add', '-t', '30', '-q', '-'],
381 381
                                 input=private_key, check=True,
382 382
                                 capture_output=True)
383
-    except subprocess.CalledProcessError as e:
384
-        pytest.xfail(
383
+    except subprocess.CalledProcessError as e:  # pragma: no cover
384
+        pytest.skip(
385 385
             f"uploading test key: {e!r}, stdout={e.stdout!r}, "
386 386
             f"stderr={e.stderr!r}"
387 387
         )
388 388
     else:
389 389
         try:
390 390
             client = ssh_agent_client.SSHAgentClient()
391
-        except OSError:
391
+        except OSError:  # pragma: no cover
392 392
             pytest.skip('communication error with the SSH agent')
393 393
     with client:
394 394
         key_comment_pairs = {bytes(k): bytes(c)
395 395
                              for k, c in client.list_keys()}
396 396
         public_key_data = data_dict['public_key_data']
397 397
         expected_signature = data_dict['expected_signature']
398
-        if public_key_data not in key_comment_pairs:
398
+        if public_key_data not in key_comment_pairs:  # pragma: no cover
399 399
             pytest.skip('prerequisite SSH key not loaded')
400 400
         signature = bytes(client.sign(
401 401
             payload=derivepassphrase.Vault._UUID, key=public_key_data))
402 402