8b97a77413294c159b92b5cbc12b0074a154b88b
Marco Ricci Update copyright notices to...

Marco Ricci authored 1 day ago

tests/test_derivepassphrase_ssh_agent.py   1) # SPDX-FileCopyrightText: 2025 Marco Ricci <software@the13thletter.info>
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py             2) #
Marco Ricci Update copyright notices to...

Marco Ricci authored 1 day ago

tests/test_derivepassphrase_ssh_agent.py   3) # SPDX-License-Identifier: Zlib
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py             4) 
tests/test_ssh_agent_client.py             5) """Test OpenSSH key loading and signing."""
tests/test_ssh_agent_client.py             6) 
tests/test_ssh_agent_client.py             7) from __future__ import annotations
tests/test_ssh_agent_client.py             8) 
tests/test_ssh_agent_client.py             9) import base64
Marco Ricci Refactor code to run under...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py  10) import contextlib
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py            11) import io
tests/test_ssh_agent_client.py            12) import socket
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            13) from typing import TYPE_CHECKING
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py            14) 
tests/test_ssh_agent_client.py            15) import click
tests/test_ssh_agent_client.py            16) import click.testing
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  17) import hypothesis
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            18) import pytest
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  19) from hypothesis import strategies
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            20) 
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py            21) import tests
Marco Ricci Consolidate `types` submodu...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py  22) from derivepassphrase import _types, cli, ssh_agent, vault
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py            23) 
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            24) if TYPE_CHECKING:
Marco Ricci Fix awkward parametrization...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  25)     from collections.abc import Iterable
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            26) 
Marco Ricci Add missing tests for `SSHA...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py  27)     from typing_extensions import Any, Buffer
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  28) 
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            29) 
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py            30) class TestStaticFunctionality:
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            31)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py            32)         ['public_key', 'public_key_data'],
tests/test_ssh_agent_client.py            33)         [
tests/test_ssh_agent_client.py            34)             (val['public_key'], val['public_key_data'])
tests/test_ssh_agent_client.py            35)             for val in tests.SUPPORTED_KEYS.values()
tests/test_ssh_agent_client.py            36)         ],
tests/test_ssh_agent_client.py            37)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py            38)     def test_100_key_decoding(
tests/test_ssh_agent_client.py            39)         self, public_key: bytes, public_key_data: bytes
tests/test_ssh_agent_client.py            40)     ) -> None:
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py            41)         keydata = base64.b64decode(public_key.split(None, 2)[1])
tests/test_ssh_agent_client.py            42)         assert (
tests/test_ssh_agent_client.py            43)             keydata == public_key_data
tests/test_ssh_agent_client.py            44)         ), "recorded public key data doesn't match"
tests/test_ssh_agent_client.py            45) 
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  46)     @pytest.mark.parametrize(
tests/test_derivepassphrase_ssh_agent.py  47)         ['line', 'env_name', 'value'],
tests/test_derivepassphrase_ssh_agent.py  48)         [
tests/test_derivepassphrase_ssh_agent.py  49)             (
Marco Ricci Fix formatting, some covera...

Marco Ricci authored 2 weeks ago

tests/test_derivepassphrase_ssh_agent.py  50)                 'SSH_AUTH_SOCK=/tmp/pageant.user/pageant.27170; export SSH_AUTH_SOCK;',
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  51)                 'SSH_AUTH_SOCK',
tests/test_derivepassphrase_ssh_agent.py  52)                 '/tmp/pageant.user/pageant.27170',
tests/test_derivepassphrase_ssh_agent.py  53)             ),
tests/test_derivepassphrase_ssh_agent.py  54)             (
Marco Ricci Fix formatting, some covera...

Marco Ricci authored 2 weeks ago

tests/test_derivepassphrase_ssh_agent.py  55)                 'SSH_AUTH_SOCK=/tmp/ssh-3CSTC1W5M22A/agent.27270; export SSH_AUTH_SOCK;',
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  56)                 'SSH_AUTH_SOCK',
tests/test_derivepassphrase_ssh_agent.py  57)                 '/tmp/ssh-3CSTC1W5M22A/agent.27270',
tests/test_derivepassphrase_ssh_agent.py  58)             ),
tests/test_derivepassphrase_ssh_agent.py  59)             (
Marco Ricci Fix formatting, some covera...

Marco Ricci authored 2 weeks ago

tests/test_derivepassphrase_ssh_agent.py  60)                 'SSH_AUTH_SOCK=/tmp/pageant.user/pageant.27170; export SSH_AUTH_SOCK',
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py  61)                 'SSH_AUTH_SOCK',
tests/test_derivepassphrase_ssh_agent.py  62)                 '/tmp/pageant.user/pageant.27170',
tests/test_derivepassphrase_ssh_agent.py  63)             ),
tests/test_derivepassphrase_ssh_agent.py  64)             (
tests/test_derivepassphrase_ssh_agent.py  65)                 'export SSH_AUTH_SOCK=/tmp/ssh-3CSTC1W5M22A/agent.27270;',
tests/test_derivepassphrase_ssh_agent.py  66)                 'SSH_AUTH_SOCK',
tests/test_derivepassphrase_ssh_agent.py  67)                 '/tmp/ssh-3CSTC1W5M22A/agent.27270',
tests/test_derivepassphrase_ssh_agent.py  68)             ),
tests/test_derivepassphrase_ssh_agent.py  69)             (
tests/test_derivepassphrase_ssh_agent.py  70)                 'export SSH_AUTH_SOCK=/tmp/pageant.user/pageant.27170',
tests/test_derivepassphrase_ssh_agent.py  71)                 'SSH_AUTH_SOCK',
tests/test_derivepassphrase_ssh_agent.py  72)                 '/tmp/pageant.user/pageant.27170',
tests/test_derivepassphrase_ssh_agent.py  73)             ),
tests/test_derivepassphrase_ssh_agent.py  74)             (
tests/test_derivepassphrase_ssh_agent.py  75)                 'SSH_AGENT_PID=27170; export SSH_AGENT_PID;',
tests/test_derivepassphrase_ssh_agent.py  76)                 'SSH_AGENT_PID',
tests/test_derivepassphrase_ssh_agent.py  77)                 '27170',
tests/test_derivepassphrase_ssh_agent.py  78)             ),
tests/test_derivepassphrase_ssh_agent.py  79)             (
tests/test_derivepassphrase_ssh_agent.py  80)                 'SSH_AGENT_PID=27170; export SSH_AGENT_PID',
tests/test_derivepassphrase_ssh_agent.py  81)                 'SSH_AGENT_PID',
tests/test_derivepassphrase_ssh_agent.py  82)                 '27170',
tests/test_derivepassphrase_ssh_agent.py  83)             ),
tests/test_derivepassphrase_ssh_agent.py  84)             ('export SSH_AGENT_PID=27170;', 'SSH_AGENT_PID', '27170'),
tests/test_derivepassphrase_ssh_agent.py  85)             ('export SSH_AGENT_PID=27170', 'SSH_AGENT_PID', '27170'),
tests/test_derivepassphrase_ssh_agent.py  86)             (
tests/test_derivepassphrase_ssh_agent.py  87)                 'export VARIABLE=value; export OTHER_VARIABLE=other_value;',
tests/test_derivepassphrase_ssh_agent.py  88)                 'VARIABLE',
tests/test_derivepassphrase_ssh_agent.py  89)                 None,
tests/test_derivepassphrase_ssh_agent.py  90)             ),
tests/test_derivepassphrase_ssh_agent.py  91)             (
tests/test_derivepassphrase_ssh_agent.py  92)                 'VARIABLE=value',
tests/test_derivepassphrase_ssh_agent.py  93)                 'VARIABLE',
tests/test_derivepassphrase_ssh_agent.py  94)                 None,
tests/test_derivepassphrase_ssh_agent.py  95)             ),
tests/test_derivepassphrase_ssh_agent.py  96)         ],
tests/test_derivepassphrase_ssh_agent.py  97)     )
tests/test_derivepassphrase_ssh_agent.py  98)     def test_190_sh_export_line_parsing(
tests/test_derivepassphrase_ssh_agent.py  99)         self, line: str, env_name: str, value: str | None
tests/test_derivepassphrase_ssh_agent.py 100)     ) -> None:
tests/test_derivepassphrase_ssh_agent.py 101)         if value is not None:
tests/test_derivepassphrase_ssh_agent.py 102)             assert tests.parse_sh_export_line(line, env_name=env_name) == value
tests/test_derivepassphrase_ssh_agent.py 103)         else:
tests/test_derivepassphrase_ssh_agent.py 104)             with pytest.raises(ValueError, match='Cannot parse sh line:'):
tests/test_derivepassphrase_ssh_agent.py 105)                 tests.parse_sh_export_line(line, env_name=env_name)
tests/test_derivepassphrase_ssh_agent.py 106) 
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 107)     def test_200_constructor_no_running_agent(
Marco Ricci Fail gracefully if UNIX dom...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 108)         self,
tests/test_derivepassphrase_ssh_agent.py 109)         monkeypatch: pytest.MonkeyPatch,
tests/test_derivepassphrase_ssh_agent.py 110)         skip_if_no_af_unix_support: None,
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 111)     ) -> None:
Marco Ricci Fail gracefully if UNIX dom...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 112)         del skip_if_no_af_unix_support
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           113)         monkeypatch.delenv('SSH_AUTH_SOCK', raising=False)
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           114)         with pytest.raises(
tests/test_ssh_agent_client.py           115)             KeyError, match='SSH_AUTH_SOCK environment variable'
tests/test_ssh_agent_client.py           116)         ):
Marco Ricci Fail gracefully if UNIX dom...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 117)             ssh_agent.SSHAgentClient()
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           118) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           119)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           120)         ['input', 'expected'],
tests/test_ssh_agent_client.py           121)         [
tests/test_ssh_agent_client.py           122)             (16777216, b'\x01\x00\x00\x00'),
tests/test_ssh_agent_client.py           123)         ],
tests/test_ssh_agent_client.py           124)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           125)     def test_210_uint32(self, input: int, expected: bytes | bytearray) -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 126)         uint32 = ssh_agent.SSHAgentClient.uint32
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           127)         assert uint32(input) == expected
tests/test_ssh_agent_client.py           128) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           129)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           130)         ['input', 'expected'],
tests/test_ssh_agent_client.py           131)         [
tests/test_ssh_agent_client.py           132)             (b'ssh-rsa', b'\x00\x00\x00\x07ssh-rsa'),
tests/test_ssh_agent_client.py           133)             (b'ssh-ed25519', b'\x00\x00\x00\x0bssh-ed25519'),
tests/test_ssh_agent_client.py           134)             (
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 135)                 ssh_agent.SSHAgentClient.string(b'ssh-ed25519'),
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           136)                 b'\x00\x00\x00\x0f\x00\x00\x00\x0bssh-ed25519',
tests/test_ssh_agent_client.py           137)             ),
tests/test_ssh_agent_client.py           138)         ],
tests/test_ssh_agent_client.py           139)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           140)     def test_211_string(
tests/test_ssh_agent_client.py           141)         self, input: bytes | bytearray, expected: bytes | bytearray
tests/test_ssh_agent_client.py           142)     ) -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 143)         string = ssh_agent.SSHAgentClient.string
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           144)         assert bytes(string(input)) == expected
tests/test_ssh_agent_client.py           145) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           146)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           147)         ['input', 'expected'],
tests/test_ssh_agent_client.py           148)         [
tests/test_ssh_agent_client.py           149)             (b'\x00\x00\x00\x07ssh-rsa', b'ssh-rsa'),
tests/test_ssh_agent_client.py           150)             (
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 151)                 ssh_agent.SSHAgentClient.string(b'ssh-ed25519'),
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           152)                 b'ssh-ed25519',
tests/test_ssh_agent_client.py           153)             ),
tests/test_ssh_agent_client.py           154)         ],
tests/test_ssh_agent_client.py           155)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           156)     def test_212_unstring(
tests/test_ssh_agent_client.py           157)         self, input: bytes | bytearray, expected: bytes | bytearray
tests/test_ssh_agent_client.py           158)     ) -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 159)         unstring = ssh_agent.SSHAgentClient.unstring
tests/test_derivepassphrase_ssh_agent.py 160)         unstring_prefix = ssh_agent.SSHAgentClient.unstring_prefix
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           161)         assert bytes(unstring(input)) == expected
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           162)         assert tuple(bytes(x) for x in unstring_prefix(input)) == (
tests/test_ssh_agent_client.py           163)             expected,
tests/test_ssh_agent_client.py           164)             b'',
tests/test_ssh_agent_client.py           165)         )
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           166) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           167)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           168)         ['value', 'exc_type', 'exc_pattern'],
tests/test_ssh_agent_client.py           169)         [
tests/test_ssh_agent_client.py           170)             (10000000000000000, OverflowError, 'int too big to convert'),
tests/test_ssh_agent_client.py           171)             (-1, OverflowError, "can't convert negative int to unsigned"),
tests/test_ssh_agent_client.py           172)         ],
tests/test_ssh_agent_client.py           173)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           174)     def test_310_uint32_exceptions(
tests/test_ssh_agent_client.py           175)         self, value: int, exc_type: type[Exception], exc_pattern: str
tests/test_ssh_agent_client.py           176)     ) -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 177)         uint32 = ssh_agent.SSHAgentClient.uint32
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           178)         with pytest.raises(exc_type, match=exc_pattern):
tests/test_ssh_agent_client.py           179)             uint32(value)
tests/test_ssh_agent_client.py           180) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           181)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           182)         ['input', 'exc_type', 'exc_pattern'],
tests/test_ssh_agent_client.py           183)         [
tests/test_ssh_agent_client.py           184)             ('some string', TypeError, 'invalid payload type'),
tests/test_ssh_agent_client.py           185)         ],
tests/test_ssh_agent_client.py           186)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           187)     def test_311_string_exceptions(
tests/test_ssh_agent_client.py           188)         self, input: Any, exc_type: type[Exception], exc_pattern: str
tests/test_ssh_agent_client.py           189)     ) -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 190)         string = ssh_agent.SSHAgentClient.string
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           191)         with pytest.raises(exc_type, match=exc_pattern):
tests/test_ssh_agent_client.py           192)             string(input)
tests/test_ssh_agent_client.py           193) 
tests/test_ssh_agent_client.py           194)     @pytest.mark.parametrize(
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           195)         ['input', 'exc_type', 'exc_pattern', 'has_trailer', 'parts'],
tests/test_ssh_agent_client.py           196)         [
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           197)             (b'ssh', ValueError, 'malformed SSH byte string', False, None),
tests/test_ssh_agent_client.py           198)             (
tests/test_ssh_agent_client.py           199)                 b'\x00\x00\x00\x08ssh-rsa',
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           200)                 ValueError,
tests/test_ssh_agent_client.py           201)                 'malformed SSH byte string',
tests/test_ssh_agent_client.py           202)                 False,
tests/test_ssh_agent_client.py           203)                 None,
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           204)             ),
tests/test_ssh_agent_client.py           205)             (
tests/test_ssh_agent_client.py           206)                 b'\x00\x00\x00\x04XXX trailing text',
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           207)                 ValueError,
tests/test_ssh_agent_client.py           208)                 'malformed SSH byte string',
tests/test_ssh_agent_client.py           209)                 True,
tests/test_ssh_agent_client.py           210)                 (b'XXX ', b'trailing text'),
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           211)             ),
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           212)         ],
tests/test_ssh_agent_client.py           213)     )
tests/test_ssh_agent_client.py           214)     def test_312_unstring_exceptions(
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           215)         self,
tests/test_ssh_agent_client.py           216)         input: bytes | bytearray,
tests/test_ssh_agent_client.py           217)         exc_type: type[Exception],
tests/test_ssh_agent_client.py           218)         exc_pattern: str,
tests/test_ssh_agent_client.py           219)         has_trailer: bool,
tests/test_ssh_agent_client.py           220)         parts: tuple[bytes | bytearray, bytes | bytearray] | None,
tests/test_ssh_agent_client.py           221)     ) -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 222)         unstring = ssh_agent.SSHAgentClient.unstring
tests/test_derivepassphrase_ssh_agent.py 223)         unstring_prefix = ssh_agent.SSHAgentClient.unstring_prefix
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           224)         with pytest.raises(exc_type, match=exc_pattern):
tests/test_ssh_agent_client.py           225)             unstring(input)
tests/test_ssh_agent_client.py           226)         if has_trailer:
tests/test_ssh_agent_client.py           227)             assert tuple(bytes(x) for x in unstring_prefix(input)) == parts
tests/test_ssh_agent_client.py           228)         else:
tests/test_ssh_agent_client.py           229)             with pytest.raises(exc_type, match=exc_pattern):
tests/test_ssh_agent_client.py           230)                 unstring_prefix(input)
tests/test_ssh_agent_client.py           231) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           232) 
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           233) class TestAgentInteraction:
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           234)     @pytest.mark.parametrize(
Marco Ricci Simplify some SSH agent key...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 235)         'data_dict',
tests/test_derivepassphrase_ssh_agent.py 236)         list(tests.SUPPORTED_KEYS.values()),
tests/test_derivepassphrase_ssh_agent.py 237)         ids=tests.SUPPORTED_KEYS.keys(),
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           238)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           239)     def test_200_sign_data_via_agent(
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 240)         self,
tests/test_derivepassphrase_ssh_agent.py 241)         ssh_agent_client_with_test_keys_loaded: ssh_agent.SSHAgentClient,
tests/test_derivepassphrase_ssh_agent.py 242)         data_dict: tests.SSHTestKey,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           243)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 244)         client = ssh_agent_client_with_test_keys_loaded
tests/test_derivepassphrase_ssh_agent.py 245)         key_comment_pairs = {bytes(k): bytes(c) for k, c in client.list_keys()}
tests/test_derivepassphrase_ssh_agent.py 246)         public_key_data = data_dict['public_key_data']
tests/test_derivepassphrase_ssh_agent.py 247)         expected_signature = data_dict['expected_signature']
tests/test_derivepassphrase_ssh_agent.py 248)         derived_passphrase = data_dict['derived_passphrase']
tests/test_derivepassphrase_ssh_agent.py 249)         if public_key_data not in key_comment_pairs:  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 250)             pytest.skip('prerequisite SSH key not loaded')
tests/test_derivepassphrase_ssh_agent.py 251)         signature = bytes(
tests/test_derivepassphrase_ssh_agent.py 252)             client.sign(payload=vault.Vault._UUID, key=public_key_data)
tests/test_derivepassphrase_ssh_agent.py 253)         )
tests/test_derivepassphrase_ssh_agent.py 254)         assert signature == expected_signature, 'SSH signature mismatch'
tests/test_derivepassphrase_ssh_agent.py 255)         signature2 = bytes(
tests/test_derivepassphrase_ssh_agent.py 256)             client.sign(payload=vault.Vault._UUID, key=public_key_data)
tests/test_derivepassphrase_ssh_agent.py 257)         )
tests/test_derivepassphrase_ssh_agent.py 258)         assert signature2 == expected_signature, 'SSH signature mismatch'
tests/test_derivepassphrase_ssh_agent.py 259)         assert (
Marco Ricci Publish polished `is_suitab...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 260)             vault.Vault.phrase_from_key(public_key_data, conn=client)
tests/test_derivepassphrase_ssh_agent.py 261)             == derived_passphrase
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 262)         ), 'SSH signature mismatch'
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           263) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           264)     @pytest.mark.parametrize(
Marco Ricci Simplify some SSH agent key...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 265)         'data_dict',
tests/test_derivepassphrase_ssh_agent.py 266)         list(tests.UNSUITABLE_KEYS.values()),
tests/test_derivepassphrase_ssh_agent.py 267)         ids=tests.UNSUITABLE_KEYS.keys(),
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           268)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           269)     def test_201_sign_data_via_agent_unsupported(
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 270)         self,
tests/test_derivepassphrase_ssh_agent.py 271)         ssh_agent_client_with_test_keys_loaded: ssh_agent.SSHAgentClient,
tests/test_derivepassphrase_ssh_agent.py 272)         data_dict: tests.SSHTestKey,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           273)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 274)         client = ssh_agent_client_with_test_keys_loaded
tests/test_derivepassphrase_ssh_agent.py 275)         key_comment_pairs = {bytes(k): bytes(c) for k, c in client.list_keys()}
tests/test_derivepassphrase_ssh_agent.py 276)         public_key_data = data_dict['public_key_data']
tests/test_derivepassphrase_ssh_agent.py 277)         _ = data_dict['expected_signature']
tests/test_derivepassphrase_ssh_agent.py 278)         if public_key_data not in key_comment_pairs:  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 279)             pytest.skip('prerequisite SSH key not loaded')
Marco Ricci Publish polished `is_suitab...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 280)         assert not vault.Vault.is_suitable_ssh_key(
tests/test_derivepassphrase_ssh_agent.py 281)             public_key_data, client=None
tests/test_derivepassphrase_ssh_agent.py 282)         ), 'Expected key to be unsuitable in general'
tests/test_derivepassphrase_ssh_agent.py 283)         if vault.Vault.is_suitable_ssh_key(public_key_data, client=client):
tests/test_derivepassphrase_ssh_agent.py 284)             pytest.skip('agent automatically ensures key is suitable')
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 285)         with pytest.raises(ValueError, match='unsuitable SSH key'):
Marco Ricci Publish polished `is_suitab...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 286)             vault.Vault.phrase_from_key(public_key_data, conn=client)
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           287) 
Marco Ricci Fix awkward parametrization...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 288)     @pytest.mark.parametrize(
tests/test_derivepassphrase_ssh_agent.py 289)         ['key', 'single'],
tests/test_derivepassphrase_ssh_agent.py 290)         [
tests/test_derivepassphrase_ssh_agent.py 291)             (value['public_key_data'], False)
tests/test_derivepassphrase_ssh_agent.py 292)             for value in tests.SUPPORTED_KEYS.values()
tests/test_derivepassphrase_ssh_agent.py 293)         ]
tests/test_derivepassphrase_ssh_agent.py 294)         + [(tests.list_keys_singleton()[0].key, True)],
tests/test_derivepassphrase_ssh_agent.py 295)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           296)     def test_210_ssh_key_selector(
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 297)         self,
tests/test_derivepassphrase_ssh_agent.py 298)         monkeypatch: pytest.MonkeyPatch,
Marco Ricci Fix test suite to actually...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 299)         ssh_agent_client_with_test_keys_loaded: ssh_agent.SSHAgentClient,
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 300)         key: bytes,
tests/test_derivepassphrase_ssh_agent.py 301)         single: bool,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           302)     ) -> None:
Marco Ricci Fix test suite to actually...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 303)         client = ssh_agent_client_with_test_keys_loaded
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 304) 
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           305)         def key_is_suitable(key: bytes) -> bool:
Marco Ricci Publish polished `is_suitab...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 306)             always = {
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           307)                 v['public_key_data'] for v in tests.SUPPORTED_KEYS.values()
tests/test_ssh_agent_client.py           308)             }
Marco Ricci Publish polished `is_suitab...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 309)             dsa = {
tests/test_derivepassphrase_ssh_agent.py 310)                 v['public_key_data']
tests/test_derivepassphrase_ssh_agent.py 311)                 for k, v in tests.UNSUITABLE_KEYS.items()
tests/test_derivepassphrase_ssh_agent.py 312)                 if k.startswith(('dsa', 'ecdsa'))
tests/test_derivepassphrase_ssh_agent.py 313)             }
tests/test_derivepassphrase_ssh_agent.py 314)             return key in always or (
tests/test_derivepassphrase_ssh_agent.py 315)                 client.has_deterministic_dsa_signatures() and key in dsa
tests/test_derivepassphrase_ssh_agent.py 316)             )
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           317) 
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           318)         if single:
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           319)             monkeypatch.setattr(
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 320)                 ssh_agent.SSHAgentClient,
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           321)                 'list_keys',
tests/test_ssh_agent_client.py           322)                 tests.list_keys_singleton,
tests/test_ssh_agent_client.py           323)             )
tests/test_ssh_agent_client.py           324)             keys = [
tests/test_ssh_agent_client.py           325)                 pair.key
tests/test_ssh_agent_client.py           326)                 for pair in tests.list_keys_singleton()
tests/test_ssh_agent_client.py           327)                 if key_is_suitable(pair.key)
tests/test_ssh_agent_client.py           328)             ]
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           329)             index = '1'
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           330)             text = 'Use this key? yes\n'
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           331)         else:
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           332)             monkeypatch.setattr(
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 333)                 ssh_agent.SSHAgentClient, 'list_keys', tests.list_keys
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           334)             )
tests/test_ssh_agent_client.py           335)             keys = [
tests/test_ssh_agent_client.py           336)                 pair.key
tests/test_ssh_agent_client.py           337)                 for pair in tests.list_keys()
tests/test_ssh_agent_client.py           338)                 if key_is_suitable(pair.key)
tests/test_ssh_agent_client.py           339)             ]
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           340)             index = str(1 + keys.index(key))
tests/test_ssh_agent_client.py           341)             n = len(keys)
tests/test_ssh_agent_client.py           342)             text = f'Your selection? (1-{n}, leave empty to abort): {index}\n'
tests/test_ssh_agent_client.py           343)         b64_key = base64.standard_b64encode(key).decode('ASCII')
tests/test_ssh_agent_client.py           344) 
tests/test_ssh_agent_client.py           345)         @click.command()
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           346)         def driver() -> None:
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 347)             key = cli._select_ssh_key()
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           348)             click.echo(base64.standard_b64encode(key).decode('ASCII'))
tests/test_ssh_agent_client.py           349) 
tests/test_ssh_agent_client.py           350)         runner = click.testing.CliRunner(mix_stderr=True)
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 351)         _result = runner.invoke(
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           352)             driver,
tests/test_ssh_agent_client.py           353)             [],
tests/test_ssh_agent_client.py           354)             input=('yes\n' if single else f'{index}\n'),
tests/test_ssh_agent_client.py           355)             catch_exceptions=True,
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           356)         )
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 357)         result = tests.ReadableResult.parse(_result)
tests/test_derivepassphrase_ssh_agent.py 358)         for snippet in ('Suitable SSH keys:\n', text, f'\n{b64_key}\n'):
tests/test_derivepassphrase_ssh_agent.py 359)             assert result.clean_exit(output=snippet), 'expected clean exit'
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           360) 
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 361)     def test_300_constructor_bad_running_agent(
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 362)         self,
tests/test_derivepassphrase_ssh_agent.py 363)         monkeypatch: pytest.MonkeyPatch,
Marco Ricci Let the `running_ssh_agent`...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 364)         running_ssh_agent: tests.RunningSSHAgentInfo,
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 365)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 366)         with monkeypatch.context() as monkeypatch2:
Marco Ricci Let the `running_ssh_agent`...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 367)             monkeypatch2.setenv(
tests/test_derivepassphrase_ssh_agent.py 368)                 'SSH_AUTH_SOCK', running_ssh_agent.socket + '~'
tests/test_derivepassphrase_ssh_agent.py 369)             )
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 370)             sock = socket.socket(family=socket.AF_UNIX)
tests/test_derivepassphrase_ssh_agent.py 371)             with pytest.raises(OSError):  # noqa: PT011
tests/test_derivepassphrase_ssh_agent.py 372)                 ssh_agent.SSHAgentClient(socket=sock)
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           373) 
Marco Ricci Fail gracefully if UNIX dom...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 374)     def test_301_constructor_no_af_unix_support(
tests/test_derivepassphrase_ssh_agent.py 375)         self,
tests/test_derivepassphrase_ssh_agent.py 376)         monkeypatch: pytest.MonkeyPatch,
tests/test_derivepassphrase_ssh_agent.py 377)     ) -> None:
tests/test_derivepassphrase_ssh_agent.py 378)         with monkeypatch.context() as monkeypatch2:
tests/test_derivepassphrase_ssh_agent.py 379)             monkeypatch2.setenv('SSH_AUTH_SOCK', "the value doesn't matter")
tests/test_derivepassphrase_ssh_agent.py 380)             monkeypatch2.delattr(socket, 'AF_UNIX', raising=False)
tests/test_derivepassphrase_ssh_agent.py 381)             with pytest.raises(
tests/test_derivepassphrase_ssh_agent.py 382)                 NotImplementedError,
tests/test_derivepassphrase_ssh_agent.py 383)                 match='UNIX domain sockets',
tests/test_derivepassphrase_ssh_agent.py 384)             ):
tests/test_derivepassphrase_ssh_agent.py 385)                 ssh_agent.SSHAgentClient()
tests/test_derivepassphrase_ssh_agent.py 386) 
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           387)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           388)         'response',
tests/test_ssh_agent_client.py           389)         [
tests/test_ssh_agent_client.py           390)             b'\x00\x00',
tests/test_ssh_agent_client.py           391)             b'\x00\x00\x00\x1f some bytes missing',
tests/test_ssh_agent_client.py           392)         ],
tests/test_ssh_agent_client.py           393)     )
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           394)     def test_310_truncated_server_response(
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 395)         self,
tests/test_derivepassphrase_ssh_agent.py 396)         monkeypatch: pytest.MonkeyPatch,
Marco Ricci Let the `running_ssh_agent`...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 397)         running_ssh_agent: tests.RunningSSHAgentInfo,
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 398)         response: bytes,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           399)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 400)         del running_ssh_agent
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 401)         client = ssh_agent.SSHAgentClient()
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           402)         response_stream = io.BytesIO(response)
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           403) 
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           404)         class PseudoSocket:
tests/test_ssh_agent_client.py           405)             def sendall(self, *args: Any, **kwargs: Any) -> Any:  # noqa: ARG002
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           406)                 return None
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           407) 
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           408)             def recv(self, *args: Any, **kwargs: Any) -> Any:
tests/test_ssh_agent_client.py           409)                 return response_stream.read(*args, **kwargs)
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           410) 
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           411)         pseudo_socket = PseudoSocket()
tests/test_ssh_agent_client.py           412)         monkeypatch.setattr(client, '_connection', pseudo_socket)
tests/test_ssh_agent_client.py           413)         with pytest.raises(EOFError):
tests/test_ssh_agent_client.py           414)             client.request(255, b'')
tests/test_ssh_agent_client.py           415) 
tests/test_ssh_agent_client.py           416)     @pytest.mark.parametrize(
tests/test_ssh_agent_client.py           417)         ['response_code', 'response', 'exc_type', 'exc_pattern'],
tests/test_ssh_agent_client.py           418)         [
Marco Ricci Introduce TrailingDataError...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           419)             (
Marco Ricci Add a specific error class...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 420)                 _types.SSH_AGENT.FAILURE,
tests/test_derivepassphrase_ssh_agent.py 421)                 b'',
tests/test_derivepassphrase_ssh_agent.py 422)                 ssh_agent.SSHAgentFailedError,
tests/test_derivepassphrase_ssh_agent.py 423)                 'failed to complete the request',
tests/test_derivepassphrase_ssh_agent.py 424)             ),
tests/test_derivepassphrase_ssh_agent.py 425)             (
tests/test_derivepassphrase_ssh_agent.py 426)                 _types.SSH_AGENT.IDENTITIES_ANSWER,
tests/test_derivepassphrase_ssh_agent.py 427)                 b'\x00\x00\x00\x01',
tests/test_derivepassphrase_ssh_agent.py 428)                 EOFError,
tests/test_derivepassphrase_ssh_agent.py 429)                 'truncated response',
tests/test_derivepassphrase_ssh_agent.py 430)             ),
tests/test_derivepassphrase_ssh_agent.py 431)             (
tests/test_derivepassphrase_ssh_agent.py 432)                 _types.SSH_AGENT.IDENTITIES_ANSWER,
Marco Ricci Introduce TrailingDataError...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           433)                 b'\x00\x00\x00\x00abc',
Marco Ricci Move `sequin` and `ssh_agen...

Marco Ricci authored 5 months ago

tests/test_derivepassphrase_ssh_agent.py 434)                 ssh_agent.TrailingDataError,
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           435)                 'Overlong response',
Marco Ricci Introduce TrailingDataError...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           436)             ),
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           437)         ],
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           438)     )
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           439)     def test_320_list_keys_error_responses(
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           440)         self,
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 441)         monkeypatch: pytest.MonkeyPatch,
Marco Ricci Let the `running_ssh_agent`...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 442)         running_ssh_agent: tests.RunningSSHAgentInfo,
Marco Ricci Add a specific error class...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 443)         response_code: _types.SSH_AGENT,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           444)         response: bytes | bytearray,
tests/test_ssh_agent_client.py           445)         exc_type: type[Exception],
tests/test_ssh_agent_client.py           446)         exc_pattern: str,
tests/test_ssh_agent_client.py           447)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 448)         del running_ssh_agent
tests/test_derivepassphrase_ssh_agent.py 449) 
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 450)         passed_response_code = response_code
tests/test_derivepassphrase_ssh_agent.py 451) 
tests/test_derivepassphrase_ssh_agent.py 452)         def request(
tests/test_derivepassphrase_ssh_agent.py 453)             request_code: int | _types.SSH_AGENTC,
tests/test_derivepassphrase_ssh_agent.py 454)             payload: bytes | bytearray,
tests/test_derivepassphrase_ssh_agent.py 455)             /,
tests/test_derivepassphrase_ssh_agent.py 456)             *,
tests/test_derivepassphrase_ssh_agent.py 457)             response_code: Iterable[int | _types.SSH_AGENT]
tests/test_derivepassphrase_ssh_agent.py 458)             | int
tests/test_derivepassphrase_ssh_agent.py 459)             | _types.SSH_AGENT
tests/test_derivepassphrase_ssh_agent.py 460)             | None = None,
tests/test_derivepassphrase_ssh_agent.py 461)         ) -> tuple[int, bytes | bytearray] | bytes | bytearray:
tests/test_derivepassphrase_ssh_agent.py 462)             del request_code
tests/test_derivepassphrase_ssh_agent.py 463)             del payload
tests/test_derivepassphrase_ssh_agent.py 464)             if isinstance(  # pragma: no branch
Marco Ricci Add support for Python 3.9

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 465)                 response_code, (int, _types.SSH_AGENT)
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 466)             ):
tests/test_derivepassphrase_ssh_agent.py 467)                 response_code = frozenset({response_code})
tests/test_derivepassphrase_ssh_agent.py 468)             if response_code is not None:  # pragma: no branch
tests/test_derivepassphrase_ssh_agent.py 469)                 response_code = frozenset({
tests/test_derivepassphrase_ssh_agent.py 470)                     c if isinstance(c, int) else c.value for c in response_code
tests/test_derivepassphrase_ssh_agent.py 471)                 })
tests/test_derivepassphrase_ssh_agent.py 472) 
tests/test_derivepassphrase_ssh_agent.py 473)             if not response_code:  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 474)                 return (passed_response_code.value, response)
tests/test_derivepassphrase_ssh_agent.py 475)             if passed_response_code.value not in response_code:
tests/test_derivepassphrase_ssh_agent.py 476)                 raise ssh_agent.SSHAgentFailedError(
tests/test_derivepassphrase_ssh_agent.py 477)                     passed_response_code.value, response
tests/test_derivepassphrase_ssh_agent.py 478)                 )
tests/test_derivepassphrase_ssh_agent.py 479)             return response
tests/test_derivepassphrase_ssh_agent.py 480) 
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 481)         with monkeypatch.context() as monkeypatch2:
tests/test_derivepassphrase_ssh_agent.py 482)             client = ssh_agent.SSHAgentClient()
tests/test_derivepassphrase_ssh_agent.py 483)             monkeypatch2.setattr(client, 'request', request)
tests/test_derivepassphrase_ssh_agent.py 484)             with pytest.raises(exc_type, match=exc_pattern):
tests/test_derivepassphrase_ssh_agent.py 485)                 client.list_keys()
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           486) 
tests/test_ssh_agent_client.py           487)     @pytest.mark.parametrize(
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 488)         [
tests/test_derivepassphrase_ssh_agent.py 489)             'key',
tests/test_derivepassphrase_ssh_agent.py 490)             'check',
tests/test_derivepassphrase_ssh_agent.py 491)             'response_code',
tests/test_derivepassphrase_ssh_agent.py 492)             'response',
tests/test_derivepassphrase_ssh_agent.py 493)             'exc_type',
tests/test_derivepassphrase_ssh_agent.py 494)             'exc_pattern',
tests/test_derivepassphrase_ssh_agent.py 495)         ],
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           496)         [
tests/test_ssh_agent_client.py           497)             (
tests/test_ssh_agent_client.py           498)                 b'invalid-key',
tests/test_ssh_agent_client.py           499)                 True,
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 500)                 _types.SSH_AGENT.FAILURE,
tests/test_derivepassphrase_ssh_agent.py 501)                 b'',
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           502)                 KeyError,
tests/test_ssh_agent_client.py           503)                 'target SSH key not loaded into agent',
tests/test_ssh_agent_client.py           504)             ),
tests/test_ssh_agent_client.py           505)             (
tests/test_ssh_agent_client.py           506)                 tests.SUPPORTED_KEYS['ed25519']['public_key_data'],
tests/test_ssh_agent_client.py           507)                 True,
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 508)                 _types.SSH_AGENT.FAILURE,
tests/test_derivepassphrase_ssh_agent.py 509)                 b'',
Marco Ricci Add a specific error class...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 510)                 ssh_agent.SSHAgentFailedError,
tests/test_derivepassphrase_ssh_agent.py 511)                 'failed to complete the request',
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           512)             ),
tests/test_ssh_agent_client.py           513)         ],
Marco Ricci Rename and regroup all test...

Marco Ricci authored 6 months ago

tests/test_ssh_agent_client.py           514)     )
Marco Ricci Reformat everything with ruff

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           515)     def test_330_sign_error_responses(
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           516)         self,
Marco Ricci Clean up testing machinery...

Marco Ricci authored 4 months ago

tests/test_derivepassphrase_ssh_agent.py 517)         monkeypatch: pytest.MonkeyPatch,
Marco Ricci Let the `running_ssh_agent`...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 518)         running_ssh_agent: tests.RunningSSHAgentInfo,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           519)         key: bytes | bytearray,
tests/test_ssh_agent_client.py           520)         check: bool,
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 521)         response_code: _types.SSH_AGENT,
tests/test_derivepassphrase_ssh_agent.py 522)         response: bytes | bytearray,
Marco Ricci Fix typing issues in mypy s...

Marco Ricci authored 5 months ago

tests/test_ssh_agent_client.py           523)         exc_type: type[Exception],
tests/test_ssh_agent_client.py           524)         exc_pattern: str,
tests/test_ssh_agent_client.py           525)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 526)         del running_ssh_agent
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 527)         passed_response_code = response_code
tests/test_derivepassphrase_ssh_agent.py 528) 
tests/test_derivepassphrase_ssh_agent.py 529)         def request(
tests/test_derivepassphrase_ssh_agent.py 530)             request_code: int | _types.SSH_AGENTC,
tests/test_derivepassphrase_ssh_agent.py 531)             payload: bytes | bytearray,
tests/test_derivepassphrase_ssh_agent.py 532)             /,
tests/test_derivepassphrase_ssh_agent.py 533)             *,
tests/test_derivepassphrase_ssh_agent.py 534)             response_code: Iterable[int | _types.SSH_AGENT]
tests/test_derivepassphrase_ssh_agent.py 535)             | int
tests/test_derivepassphrase_ssh_agent.py 536)             | _types.SSH_AGENT
tests/test_derivepassphrase_ssh_agent.py 537)             | None = None,
tests/test_derivepassphrase_ssh_agent.py 538)         ) -> tuple[int, bytes | bytearray] | bytes | bytearray:
tests/test_derivepassphrase_ssh_agent.py 539)             del request_code
tests/test_derivepassphrase_ssh_agent.py 540)             del payload
tests/test_derivepassphrase_ssh_agent.py 541)             if isinstance(  # pragma: no branch
Marco Ricci Add support for Python 3.9

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 542)                 response_code, (int, _types.SSH_AGENT)
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 543)             ):
tests/test_derivepassphrase_ssh_agent.py 544)                 response_code = frozenset({response_code})
tests/test_derivepassphrase_ssh_agent.py 545)             if response_code is not None:  # pragma: no branch
tests/test_derivepassphrase_ssh_agent.py 546)                 response_code = frozenset({
tests/test_derivepassphrase_ssh_agent.py 547)                     c if isinstance(c, int) else c.value for c in response_code
tests/test_derivepassphrase_ssh_agent.py 548)                 })
tests/test_derivepassphrase_ssh_agent.py 549) 
tests/test_derivepassphrase_ssh_agent.py 550)             if not response_code:  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 551)                 return (passed_response_code.value, response)
tests/test_derivepassphrase_ssh_agent.py 552)             if (
tests/test_derivepassphrase_ssh_agent.py 553)                 passed_response_code.value not in response_code
tests/test_derivepassphrase_ssh_agent.py 554)             ):  # pragma: no branch
tests/test_derivepassphrase_ssh_agent.py 555)                 raise ssh_agent.SSHAgentFailedError(
tests/test_derivepassphrase_ssh_agent.py 556)                     passed_response_code.value, response
tests/test_derivepassphrase_ssh_agent.py 557)                 )
tests/test_derivepassphrase_ssh_agent.py 558)             return response  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 559) 
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 560)         with monkeypatch.context() as monkeypatch2:
tests/test_derivepassphrase_ssh_agent.py 561)             client = ssh_agent.SSHAgentClient()
tests/test_derivepassphrase_ssh_agent.py 562)             monkeypatch2.setattr(client, 'request', request)
tests/test_derivepassphrase_ssh_agent.py 563)             KeyCommentPair = _types.KeyCommentPair  # noqa: N806
tests/test_derivepassphrase_ssh_agent.py 564)             loaded_keys = [
tests/test_derivepassphrase_ssh_agent.py 565)                 KeyCommentPair(v['public_key_data'], b'no comment')
tests/test_derivepassphrase_ssh_agent.py 566)                 for v in tests.SUPPORTED_KEYS.values()
tests/test_derivepassphrase_ssh_agent.py 567)             ]
tests/test_derivepassphrase_ssh_agent.py 568)             monkeypatch2.setattr(client, 'list_keys', lambda: loaded_keys)
tests/test_derivepassphrase_ssh_agent.py 569)             with pytest.raises(exc_type, match=exc_pattern):
tests/test_derivepassphrase_ssh_agent.py 570)                 client.sign(key, b'abc', check_if_key_loaded=check)
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 571) 
tests/test_derivepassphrase_ssh_agent.py 572)     @pytest.mark.parametrize(
tests/test_derivepassphrase_ssh_agent.py 573)         ['request_code', 'response_code', 'exc_type', 'exc_pattern'],
tests/test_derivepassphrase_ssh_agent.py 574)         [
tests/test_derivepassphrase_ssh_agent.py 575)             (
tests/test_derivepassphrase_ssh_agent.py 576)                 _types.SSH_AGENTC.REQUEST_IDENTITIES,
tests/test_derivepassphrase_ssh_agent.py 577)                 _types.SSH_AGENT.SUCCESS,
tests/test_derivepassphrase_ssh_agent.py 578)                 ssh_agent.SSHAgentFailedError,
tests/test_derivepassphrase_ssh_agent.py 579)                 f'[Code {_types.SSH_AGENT.IDENTITIES_ANSWER.value}]',
tests/test_derivepassphrase_ssh_agent.py 580)             ),
tests/test_derivepassphrase_ssh_agent.py 581)         ],
tests/test_derivepassphrase_ssh_agent.py 582)     )
tests/test_derivepassphrase_ssh_agent.py 583)     def test_340_request_error_responses(
tests/test_derivepassphrase_ssh_agent.py 584)         self,
Marco Ricci Let the `running_ssh_agent`...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 585)         running_ssh_agent: tests.RunningSSHAgentInfo,
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 586)         request_code: _types.SSH_AGENTC,
tests/test_derivepassphrase_ssh_agent.py 587)         response_code: _types.SSH_AGENT,
tests/test_derivepassphrase_ssh_agent.py 588)         exc_type: type[Exception],
tests/test_derivepassphrase_ssh_agent.py 589)         exc_pattern: str,
tests/test_derivepassphrase_ssh_agent.py 590)     ) -> None:
Marco Ricci Add test fixture for manual...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 591)         del running_ssh_agent
tests/test_derivepassphrase_ssh_agent.py 592) 
Marco Ricci Refactor code to run under...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 593)         # Use parenthesized context manager expressions once Python 3.9
tests/test_derivepassphrase_ssh_agent.py 594)         # becomes unsupported.
tests/test_derivepassphrase_ssh_agent.py 595)         with contextlib.ExitStack() as stack:
tests/test_derivepassphrase_ssh_agent.py 596)             stack.enter_context(pytest.raises(exc_type, match=exc_pattern))
tests/test_derivepassphrase_ssh_agent.py 597)             client = stack.enter_context(ssh_agent.SSHAgentClient())
Marco Ricci Support passing expected SS...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 598)             client.request(request_code, b'', response_code=response_code)
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 3 months ago

tests/test_derivepassphrase_ssh_agent.py 599) 
Marco Ricci Add missing tests for `SSHA...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 600)     @pytest.mark.parametrize(
tests/test_derivepassphrase_ssh_agent.py 601)         'response_data',
tests/test_derivepassphrase_ssh_agent.py 602)         [
tests/test_derivepassphrase_ssh_agent.py 603)             b'\xde\xad\xbe\xef',
tests/test_derivepassphrase_ssh_agent.py 604)             b'\x00\x00\x00\x0fwrong extension',
tests/test_derivepassphrase_ssh_agent.py 605)             b'\x00\x00\x00\x05query\xde\xad\xbe\xef',
tests/test_derivepassphrase_ssh_agent.py 606)             b'\x00\x00\x00\x05query\x00\x00\x00\x04ext1\x00\x00',
tests/test_derivepassphrase_ssh_agent.py 607)         ],
tests/test_derivepassphrase_ssh_agent.py 608)     )
tests/test_derivepassphrase_ssh_agent.py 609)     def test_350_query_extensions_malformed_responses(
tests/test_derivepassphrase_ssh_agent.py 610)         self,
tests/test_derivepassphrase_ssh_agent.py 611)         monkeypatch: pytest.MonkeyPatch,
tests/test_derivepassphrase_ssh_agent.py 612)         running_ssh_agent: tests.RunningSSHAgentInfo,
tests/test_derivepassphrase_ssh_agent.py 613)         response_data: bytes,
tests/test_derivepassphrase_ssh_agent.py 614)     ) -> None:
tests/test_derivepassphrase_ssh_agent.py 615)         del running_ssh_agent
tests/test_derivepassphrase_ssh_agent.py 616) 
tests/test_derivepassphrase_ssh_agent.py 617)         def request(
tests/test_derivepassphrase_ssh_agent.py 618)             code: int | _types.SSH_AGENTC,
tests/test_derivepassphrase_ssh_agent.py 619)             payload: Buffer,
tests/test_derivepassphrase_ssh_agent.py 620)             /,
tests/test_derivepassphrase_ssh_agent.py 621)             *,
tests/test_derivepassphrase_ssh_agent.py 622)             response_code: (
tests/test_derivepassphrase_ssh_agent.py 623)                 Iterable[_types.SSH_AGENT | int]
tests/test_derivepassphrase_ssh_agent.py 624)                 | _types.SSH_AGENT
tests/test_derivepassphrase_ssh_agent.py 625)                 | int
tests/test_derivepassphrase_ssh_agent.py 626)                 | None
tests/test_derivepassphrase_ssh_agent.py 627)             ) = None,
tests/test_derivepassphrase_ssh_agent.py 628)         ) -> tuple[int, bytes] | bytes:
tests/test_derivepassphrase_ssh_agent.py 629)             request_codes = {
tests/test_derivepassphrase_ssh_agent.py 630)                 _types.SSH_AGENTC.EXTENSION,
tests/test_derivepassphrase_ssh_agent.py 631)                 _types.SSH_AGENTC.EXTENSION.value,
tests/test_derivepassphrase_ssh_agent.py 632)             }
tests/test_derivepassphrase_ssh_agent.py 633)             assert code in request_codes
tests/test_derivepassphrase_ssh_agent.py 634)             response_codes = {
tests/test_derivepassphrase_ssh_agent.py 635)                 _types.SSH_AGENT.EXTENSION_RESPONSE,
tests/test_derivepassphrase_ssh_agent.py 636)                 _types.SSH_AGENT.EXTENSION_RESPONSE.value,
tests/test_derivepassphrase_ssh_agent.py 637)                 _types.SSH_AGENT.SUCCESS,
tests/test_derivepassphrase_ssh_agent.py 638)                 _types.SSH_AGENT.SUCCESS.value,
tests/test_derivepassphrase_ssh_agent.py 639)             }
tests/test_derivepassphrase_ssh_agent.py 640)             assert payload == b'\x00\x00\x00\x05query'
tests/test_derivepassphrase_ssh_agent.py 641)             if response_code is None:  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 642)                 return (
tests/test_derivepassphrase_ssh_agent.py 643)                     _types.SSH_AGENT.EXTENSION_RESPONSE.value,
tests/test_derivepassphrase_ssh_agent.py 644)                     response_data,
tests/test_derivepassphrase_ssh_agent.py 645)                 )
tests/test_derivepassphrase_ssh_agent.py 646)             if isinstance(  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 647)                 response_code, (_types.SSH_AGENT, int)
tests/test_derivepassphrase_ssh_agent.py 648)             ):
tests/test_derivepassphrase_ssh_agent.py 649)                 assert response_code in response_codes
tests/test_derivepassphrase_ssh_agent.py 650)                 return response_data
tests/test_derivepassphrase_ssh_agent.py 651)             for single_code in response_code:  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 652)                 assert single_code in response_codes
tests/test_derivepassphrase_ssh_agent.py 653)             return response_data  # pragma: no cover
tests/test_derivepassphrase_ssh_agent.py 654) 
Marco Ricci Refactor code to run under...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 655)         # Use parenthesized context manager expressions once Python 3.9
tests/test_derivepassphrase_ssh_agent.py 656)         # becomes unsupported.
tests/test_derivepassphrase_ssh_agent.py 657)         with contextlib.ExitStack() as stack:
tests/test_derivepassphrase_ssh_agent.py 658)             monkeypatch2 = stack.enter_context(monkeypatch.context())
tests/test_derivepassphrase_ssh_agent.py 659)             client = stack.enter_context(ssh_agent.SSHAgentClient())
Marco Ricci Add missing tests for `SSHA...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 660)             monkeypatch2.setattr(client, 'request', request)
tests/test_derivepassphrase_ssh_agent.py 661)             with pytest.raises(
Marco Ricci Fix minor formatting quibbl...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 662)                 RuntimeError, match='Malformed response|does not match request'
Marco Ricci Add missing tests for `SSHA...

Marco Ricci authored 1 month ago

tests/test_derivepassphrase_ssh_agent.py 663)             ):
tests/test_derivepassphrase_ssh_agent.py 664)                 client.query_extensions()
tests/test_derivepassphrase_ssh_agent.py 665)