Recent commits to derivepassphrase.git (d0604f6598ac3650f0cc3a74e22e35f9cf3e02a5) https://git.schokokeks.org/derivepassphrase.git/tree/d0604f6598ac3650f0cc3a74e22e35f9cf3e02a5 Recent commits feed provided by GitList. Fix missing documentation in the test suite Update the documentation (files, navigation) to reflect the test files split and the introduction of the `tests.data` and `tests.machinery` packages. Additionally, turn the package descriptions in the `tests` module docstring into proper hyperlinks. https://git.schokokeks.org/derivepassphrase.git/commit/d0604f6598ac3650f0cc3a74e22e35f9cf3e02a5 software@the13thletter.info (Marco Ricci) Sun, 31 Aug 2025 21:24:09 +0200 d0604f6598ac3650f0cc3a74e22e35f9cf3e02a5 Fix some documentation issues with the heavy-duty command-line inteface tests Fix both docstrings and inline commentary. https://git.schokokeks.org/derivepassphrase.git/commit/1500a6493e49a09f3d3db9a5a7edc8890420c647 software@the13thletter.info (Marco Ricci) Sun, 31 Aug 2025 21:18:26 +0200 1500a6493e49a09f3d3db9a5a7edc8890420c647 Refactor the heavy-duty command-line interface tests (This is part 10 of a series of refactorings for the test suite.) In the heavy-duty command-line tests, factor out common test setups and common hypothesis strategies. In particular, share the hypothesis strategies and the skeletal procedure for both affected state machines because they offer more or less the same transition rules. For the hypothesis test machinery, fix some types and some import aliases that affect the heavy-duty command-line tests. https://git.schokokeks.org/derivepassphrase.git/commit/b78a8508b929e71c1efcd18958a201ec13724dff software@the13thletter.info (Marco Ricci) Sun, 31 Aug 2025 21:09:13 +0200 b78a8508b929e71c1efcd18958a201ec13724dff Refactor the "all CLIs" command-line interface tests (This is part 9 of a series of refactorings for the test suite.) In the "all CLIs" tests for the command-line interface, factor out the common test operation for the "help text" and "version output" tests. Both sets of tests are identical for all command-line interface entry points, save for the command-line and the expected lines/data in the output. Furthermore, use a helper function to make the `KnownLineType` enum definition more pleasant to read. https://git.schokokeks.org/derivepassphrase.git/commit/b74c6b66d7f7e0c68082e3ae905504f60fe51f2f software@the13thletter.info (Marco Ricci) Fri, 29 Aug 2025 20:00:38 +0200 b74c6b66d7f7e0c68082e3ae905504f60fe51f2f Refactor the basic command-line interface tests (This is part 8 of a series of refactorings for the test suite.) In the basic tests, factor out the common test operation or the common environment setup for each group of related tests, whichever is more feasible. For some groups of related tests, if there were similar tests that differed only in details or in parametrization data, combine them under a new parameter set, if necessary. Both the test file and the commit should be further split up, but I am not yet sure how. https://git.schokokeks.org/derivepassphrase.git/commit/9de49490529f985c65f8f18a49a0400382b56af9 software@the13thletter.info (Marco Ricci) Fri, 29 Aug 2025 19:45:20 +0200 9de49490529f985c65f8f18a49a0400382b56af9 Fix miscellaneous imports, types and hyperlinks in the CLI machinery and tests (This is part 7 of a series of refactorings for the test suite.) In the command-line interface tests, remove unnecessary imports/aliasing of module-level constants, and add typing casts for our own constants where the syntactical type is not the nominal type. Furthermore, for both the command-line interface machinery and the command-line interface tests, update the hyperlinks to our issue tracker to the equivalent wishlist entry in the documentation, and update the commentary on the completion machinery for the Z Shell, removing links to now-resolved issues in favor of reporting the version number of `click` in which the issues were fixed. https://git.schokokeks.org/derivepassphrase.git/commit/326e19765adc272eda9b2d83dd845a84b90e19d1 software@the13thletter.info (Marco Ricci) Fri, 29 Aug 2025 19:32:37 +0200 326e19765adc272eda9b2d83dd845a84b90e19d1 Refactor the testing machinery tests (This is part 6 of a series of refactorings for the test suite.) Assign all tests to a common class, then elide common parts in the test names and docstrings. Also factor out the OpenSSH cipher blocksize for the "none" cipher into a separate constant, and use that constant in lieu of magic numbers throughout the helper functions. We correct one instance of where double the block size is used, which (if memory serves correctly) was due to a stylistic difference between OpenSSH- and Pageant-generated keys, but both conforming to the specification. These differences are removed in the canonicalization step anyway, but the double-sized block size is probably confusing to read if you don't already anticipate the canonicalization step. https://git.schokokeks.org/derivepassphrase.git/commit/bfca24c56e79e018687c5ee4e19d7360c101ddcc software@the13thletter.info (Marco Ricci) Fri, 22 Aug 2025 19:50:46 +0200 bfca24c56e79e018687c5ee4e19d7360c101ddcc Refactor the SSH agent tests (This is part 5 of a series of refactorings for the test suite.) In the basic tests, for the stubbed SSH agent socket and the agent error response tests, factor out the common environment setup for the respective group (in particular, the multiple copies of the fake `request` function from the SSH agent client). Combine the SSH agent data signing tests for suitable and unsuitable keys into a single, more heavily parametrized test. (The combined test is branchier, but more straightforward for discerning the differences between the two types of keys.) Also fix some miscellaneous errors: the IDs in the `RESOLVE_CHAINS` parametrization, and the order of contexts in the `test_request_error_responses` method. Further concerning the basic tests, add an explicit test for the `list-extended@putty.projects.tartarus.org` extension (which the extended stubbed SSH agent implements to signal support for deterministic DSA signatures, in a lackluster attempt to masquerade as Pageant). Also address a TODO in the test for SSH key selection concerning degenerate key lists. In the test data, add an extra comment on how suitable and unsuitable SSH test keys are determined, and add a function signature for the SSH agent client `request` function. In the heavy-duty tests, merely add missing `draw` labels. https://git.schokokeks.org/derivepassphrase.git/commit/f946baa1f087c9a55f9a6ee8325a24029f204750 software@the13thletter.info (Marco Ricci) Sun, 17 Aug 2025 18:00:57 +0200 f946baa1f087c9a55f9a6ee8325a24029f204750 Refactor the `exporter` tests (This is part 4 of a series of refactorings for the test suite.) For the `export vault` command-line interface tests, split the tests into tests for command-line argument support, tests for various command-line or format-related errors, and the already existing groups for "storeroom" and "vault v0.2"/"vault v0.3" format tests. For the former two groups, factor out the common test operation, which in both cases is the whole test content, though with differing call conventions. For the latter two groups, factor out the common environment setup instead. For the `exporter` subpackage tests, collect the data generation strategies in a common class `Strategies` (similar to the `Parametrize` class). Split the existing `TestUtilities` class into a `TestCLIUtilities` and a `TestExportVaultConfigDataHandlerRegistry` class, and factor out the common environment setup for each respective group. Rename the `TestCLI` class into `TestGenericVaultCLIErrors`, and factor out the common environment setup and the CLI call function. https://git.schokokeks.org/derivepassphrase.git/commit/3ab9d7ef7b70007325317011e02e4658022878cc software@the13thletter.info (Marco Ricci) Sun, 17 Aug 2025 16:42:24 +0200 3ab9d7ef7b70007325317011e02e4658022878cc Refactor the `vault` and `sequin` tests (This is part 3 of a series of refactorings for the test suite.) For the `sequin` tests, merge the two tests for bit extraction from a big-endian number. They both test testing infrastructure, and they already both had the same test parametrization. For the `vault` tests, factor out common test operations for the `TestPhraseDependence` and `TestInterchangablePhrases` classes (which in both cases amounts to the whole test body). Rewrite the `TestStringAndBinaryExchangability` tests to a more uniform style, parametrizing over the specific binary class. Also, for `test_binary_service_name` (now `test_binary_service_name_and_phrase`), cross-check that all combinations of phrase and service name classes lead to identical results. Finally, fix the explicit forbidden patterns in `test_only_numbers_and_very_high_repetition_limit`, which were one character too short, as well as a typo in the `test_arbitrary_repetition_limit` docstring. https://git.schokokeks.org/derivepassphrase.git/commit/4b9feca8184178db113ae9d9463165cdc08fb1a6 software@the13thletter.info (Marco Ricci) Sun, 17 Aug 2025 16:21:27 +0200 4b9feca8184178db113ae9d9463165cdc08fb1a6