https://git.schokokeks.org/derivepassphrase.git/tree/b4d8439fa4207b665ad8ea2217f21f807f603734Recent commits to derivepassphrase.git (b4d8439fa4207b665ad8ea2217f21f807f603734)2024-09-01T11:06:43+02:00tag:gitlist.org,2012:commit/b4d8439fa4207b665ad8ea2217f21f807f603734Merge topic branch 'issue1-vault-config-exporter' into master2024-09-01T11:06:43+02:00Marco Riccim@the13thletter.info
<pre>* t/issue1-vault-config-exporter:
Fix formatting and linting issues in exporter tests
Add Changelog entry for the vault exporter
Rename vault v0.2/v0.3 classes, and fix API weirdnesses and test coverage
Add more tests of the storeroom format exporter's internals
Test exporter data loading functionality more robustly
Move exporter command-line interface into a separate module
Add preliminary tests for the exporter
Add command-line interface to the exporter
Move vault key and path detection logic into the exporter module
Add prototype for "vault v0.2/v0.3"-type data export
Support exports from outside the current directory
Add dependency on cryptography for the exporter
Add an actual storeroom exporter, not just a reader
Add docstrings and better variable names on storeroom exporter
Add example for "storeroom"-type data export
Add prototype for "storeroom"-type data export
GitHub: Closes #1.
</pre>
tag:gitlist.org,2012:commit/fb6913b190365893f3d5e83225a496c9061c6e54Fix formatting and linting issues in exporter tests2024-09-01T11:05:14+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/5022fff219bf1bc30988d3070e564ad058f0d5c4Add Changelog entry for the vault exporter2024-08-31T22:09:41+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/0169d5fbbb766fef119548e8b07cd0e2bcd43ac6Rename vault v0.2/v0.3 classes, and fix API weirdnesses and test coverage2024-08-31T21:26:49+02:00Marco Riccim@the13thletter.info
<pre>The `Reader` classes are now named `VaultNativeConfigParser`, because
`Reader` is a very non-descript name. The interface is now somewhat more
pythonic, and uses fewer internal branches. Further tests of the
internals have been added, so the module has 100% test coverage.
</pre>
tag:gitlist.org,2012:commit/349f20ebdbc4c3bd4e4fc9e8454dc10b5d081396Add more tests of the storeroom format exporter's internals2024-08-31T21:24:29+02:00Marco Riccim@the13thletter.info
<pre>Further tests are necessary to achieve 100% coverage, but these concern
the detection of format errors, so the test files are rather hard to
generate.
</pre>
tag:gitlist.org,2012:commit/fa6125de4455fb187db8888e510400e9e9820b3bTest exporter data loading functionality more robustly2024-08-31T21:04:32+02:00Marco Riccim@the13thletter.info
<pre>Move the `_load_data` function, which deals with determining the correct
vault storage format (with automatic rollover) into the top level, where
the function can be tested in isolation, and stubbed out if necessary.
Also, use the environments with disabled cryptography support to test
for correct failure behavior of the exporter. Use
`importlib.util.find_spec` instead of an `import` statement to check for
importability of a module, which does not require handling of
`ModuleNotFoundError` if restricted to top-level modules/packages.
</pre>
tag:gitlist.org,2012:commit/0be132367e57855736c2c4163dd6c606f2b88d23Move exporter command-line interface into a separate module2024-08-31T13:32:33+02:00Marco Riccim@the13thletter.info
<pre>Also replicate this module structure in the tests, which allows us to
use `pytest.importorskip` to deal with missing `cryptography` support.
</pre>
tag:gitlist.org,2012:commit/fa1083e98907a6a7dc48e8decfa7146708510341Add preliminary tests for the exporter2024-08-25T23:50:03+02:00Marco Riccim@the13thletter.info
<pre>Includes basic testing of command-line functionality, explicit examples
of each supported format, and proper hatch environment and dependency
selection (with exporter support, or without) to run tests in. The
major missing pieces are weird-to-reach error conditions in the
internals of the exporter functions (which require invasive mocking) and
explicit API testing of the exporter functions (i.e. beyond each
exporter's "main" function). Because the internal API is not yet
stable, particularly the v0.2 and v0.3 exporters, this is currently left
as a TODO.
Since we are attempting to support installations without the
cryptography module, we must ensure the exporter modules all stay
importable without triggering import errors. (This is also relevant for
pytest's test collection phase, where those modules too are scanned for
doctests.) Currently we stub out each (sub-)module of the cryptography
package implicitly, such that calling any method on the stub raises an
import error, as well as explicitly through a `STUBBED` attribute on the
exporter module.
</pre>
tag:gitlist.org,2012:commit/9fa74020070b37e150e4f34b3bd77ea279d0350cAdd command-line interface to the exporter2024-08-25T23:31:24+02:00Marco Riccim@the13thletter.info
<pre>A new script `derivepassphrase_export` implements a command-line
interface to the exporter machinery. It is implemented as a separate
script because it has a very different call signature which doesn't
easily map to `derivepassphrase`'s command-line interface.
</pre>
tag:gitlist.org,2012:commit/d525f4302bd1f00edffe1159f78b8da745f06d24Move vault key and path detection logic into the exporter module2024-08-18T09:41:16+02:00Marco Riccim@the13thletter.info
<pre>Instead of having both exporters reimplement the logic for determining
the vault key and vault configuration path, implement this functionality
in the `derivepassphrase.exporter` package, which is otherwise still
empty.
</pre>