https://git.schokokeks.org/derivepassphrase.git/tree/729c89799dc49635698c8f73a59ba79eb3c584a0 Recent commits to derivepassphrase.git (729c89799dc49635698c8f73a59ba79eb3c584a0) 2026-06-16T22:19:26+02:00 tag:gitlist.org,2012:commit/729c89799dc49635698c8f73a59ba79eb3c584a0 Serialize the SSH agent protocol numbers as request/response codes 2026-06-16T22:19:26+02:00 Marco Ricci software@the13thletter.info <pre>When calling `bytes` on the SSH agent protocol number enums, return their corresponding serialization as request codes or response codes. (A follow-up to 57e3b1ed832e865e9f9e8316f930b1beae3714f0.) &lt;/pre&gt; tag:gitlist.org,2012:commit/3790413fb35878eb8500e29e7c6923104869d854 Rewrite test data initializers for nicer API docs 2026-06-16T19:55:01+02:00 Marco Ricci software@the13thletter.info <pre>In attribute declarations, `griffe`/`mkdocstring-python` elides the object on which the outermost method is called (but correctly autolinks the method itself). This looks good if the initializer is something like `base64.b64_decode(data)` (which gets shortened to `b64_decode(data)`), and terrible if the initializer is something like `base64.b64_decode(data).decode()` (which gets shortened to `decode()`). So, to get nicer API docs, rewrite some obvious cases where the object would otherwise be elided in the "class-bound method + self argument" style instead. &lt;/pre&gt; tag:gitlist.org,2012:commit/c2efe74d47243d97f87240eee0045cbb58abff53 Note that "spawning" an SSH agent in the tests may actually be "interfacing" 2026-06-16T19:47:25+02:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/090f87b133247b5f688f5101f0229829616b22dd Use the BuiltinSSHAgentSocketProvider type in the tests 2026-06-15T22:27:21+02:00 Marco Ricci software@the13thletter.info <pre>Again, instead of magic strings floating around in the test suite, use the already existing enum instead. &lt;/pre&gt; tag:gitlist.org,2012:commit/7bccff34588cfb6ac90bc0d277a40cab5b9a5cf2 Use an enum for SSH agent configurations in the test suite 2026-06-15T21:36:53+02:00 Marco Ricci software@the13thletter.info <pre>Instead of having all these magic strings floating around all over the test suite, use a dedicated enum for consistency, discoverability, and typo-resistance. &lt;/pre&gt; tag:gitlist.org,2012:commit/b18d27971117d16358ddd511d69a11813464671e Auto-format everything due to tooling update 2026-06-15T18:20:15+02:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/68497eb1efa715ef461aaf33c5e55fc982b190cb Fix minor spelling/logic errors and missing TODOs in the test suite 2026-06-14T22:46:36+02:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/6c704955736026fc4c77164542682cb2549f3e01 Update tooling 2026-06-14T22:46:36+02:00 Marco Ricci software@the13thletter.info <pre>`ruff` now checks for too many statements in a `try` block (PLW0717), for non-trivial `__init__.py` files (RUF067), for explicitly comparing floats with `__eq__` (RUF069) and for bad control flow in a generator-based context manager (RUF075). We document our intentional RUF069 and RUF075 violations, we fix the other occurrences of RUF075, and we ignore PLW0717 and RUF067 for now. &lt;/pre&gt; tag:gitlist.org,2012:commit/bd1fc69133c0bb9cc8634ab9fb18bc5a91e21f4a Ensure better test suite behavior for regression-only testing 2026-06-14T22:46:36+02:00 Marco Ricci software@the13thletter.info <pre>Tweak the hypothesis settings for determinism and speed when running the test suite solely for the purpose of regression testing [1], in the new hypothesis profile "regression": test generation will be derandomized, stateful step counts and example counts will be set very low. As all of our slow-running tests are hypothesis-based, and all of our hypothesis-based tests are slow because of the high example count, this change alone immediately makes "regression-only" testing feasible for us without having to skip hypothesis-based tests. (In fact, the hypothesis derandomization feature appears to draw motivation from the same source [1] as we do.) As a counterpoint, mark test cases that are (or probably should be) hypothesis-based, but test for completion or correctness purposes rather than for regression purposes, with a custom marker `correctness_focused`. Also try to add at least one working example and one counterexample to each hypothesis-based test, if feasible. This buys us the flexibility (in the future) to remove test case generation from the "regression" profile, if desired. The test cases would then still run the explicit examples, and thus remain useful, instead of needing another separate set of non-hypothesis tests to cover the same ground. References: 1. Nelson Elhage: [Two kinds of testing][], particularly the section "Test budget". 2. Alex Kladov: [How to Test][], particularly the section "Make Tests Fast". [Two kinds of testing]: https://blog.nelhage.com/post/two-kinds-of-testing/ [How to Test]: https://matklad.github.io/2021/05/31/how-to-test.html#Make-Tests-Fast &lt;/pre&gt; tag:gitlist.org,2012:commit/0b4f4a9d7947199dd6111b5b9c2fc7cbc9f7e763 Merge branch 'openssh-bug3967-workaround' 2026-06-14T13:20:51+02:00 Marco Ricci software@the13thletter.info <pre>* openssh-bug3967-workaround: Ensure the SSH agent unhappy path/misbehavior tests always run Fix the test setup (SSH agent "query" double-response behavior) Harmonize coverage exclusion markers (and fix one slipup) Reorganize and rename SSH agent mock objects Test our handling of the SSH agent "query" double-response behavior Allow testing for mismatched SSH agent communication Work around double-response for "query" extension from ssh-agent (OpenSSH 10.3) Split SSHAgentClient.request in two Turn the SSH agent protocol message numbers into ints For SSH agent failures, print the raw response text &lt;/pre&gt;