Marco Ricci commited on 2024-09-22 19:19:38
Zeige 1 geänderte Dateien mit 38 Einfügungen und 5 Löschungen.
... | ... |
@@ -423,11 +423,11 @@ def spawn_ssh_agent( |
423 | 423 |
client.list_keys() |
424 | 424 |
except KeyError: # pragma: no cover |
425 | 425 |
pytest.skip('SSH agent is not running') |
426 |
- # except OSError as exc: # pragma: no cover |
|
427 |
- # pytest.skip( |
|
428 |
- # f'Cannot talk to SSH agent: ' |
|
429 |
- # f'{exc.strerror}: {exc.filename!r}' |
|
430 |
- # ) |
|
426 |
+ except OSError as exc: # pragma: no cover |
|
427 |
+ pytest.skip( |
|
428 |
+ f'Cannot talk to SSH agent: ' |
|
429 |
+ f'{exc.strerror}: {exc.filename!r}' |
|
430 |
+ ) |
|
431 | 431 |
with client: |
432 | 432 |
assert ( |
433 | 433 |
os.environ.get('SSH_AUTH_SOCK', None) |
... | ... |
@@ -510,6 +510,39 @@ def spawn_ssh_agent( |
510 | 510 |
def ssh_agent_client_with_test_keys_loaded( # noqa: C901 |
511 | 511 |
spawn_ssh_agent: tests.SpawnedSSHAgentInfo, |
512 | 512 |
) -> Iterator[ssh_agent.SSHAgentClient]: |
513 |
+ """Provide an SSH agent with loaded test keys, as a pytest fixture. |
|
514 |
+ |
|
515 |
+ Use the `spawn_ssh_agent` fixture to acquire a usable SSH agent, |
|
516 |
+ upload the known test keys into the agent, and return a connected |
|
517 |
+ client. |
|
518 |
+ |
|
519 |
+ The agent may reject several of the test keys due to unsupported or |
|
520 |
+ obsolete key types. Rejected keys will be silently ignored, unless |
|
521 |
+ all keys are rejected; then the test will be skipped. You must not |
|
522 |
+ automatically assume any particular key is present in the agent. |
|
523 |
+ |
|
524 |
+ Yields: |
|
525 |
+ (ssh_agent.SSHAgentClient): |
|
526 |
+ A [named tuple][collection.namedtuple] containing |
|
527 |
+ information about the spawned agent, e.g. the software |
|
528 |
+ product, a client connected to the agent, and whether the |
|
529 |
+ agent is isolated from other clients. |
|
530 |
+ |
|
531 |
+ Raises: |
|
532 |
+ OSError: |
|
533 |
+ There was a communication or a socket setup error with the |
|
534 |
+ agent. |
|
535 |
+ pytest.skip.Exception: |
|
536 |
+ If the agent is unusable or if it rejected all test keys, |
|
537 |
+ skip this test. |
|
538 |
+ |
|
539 |
+ Warning: |
|
540 |
+ It is the fixture's responsibility to clean up the SSH agent |
|
541 |
+ client after the test. Closing the client's socket connection |
|
542 |
+ beforehand (e.g. by using the client as a context manager) may |
|
543 |
+ lead to exceptions being thrown upon fixture teardown. |
|
544 |
+ |
|
545 |
+ """ |
|
513 | 546 |
agent_type, client, isolated = spawn_ssh_agent |
514 | 547 |
all_test_keys = {**tests.SUPPORTED_KEYS, **tests.UNSUITABLE_KEYS} |
515 | 548 |
successfully_loaded_keys: set[str] = set() |
516 | 549 |