# SPDX-FileCopyrightText: 2024 Marco Ricci <software@the13thletter.info>
#
# SPDX-License-Identifier: MIT
from __future__ import annotations
import base64
import json
from typing import TYPE_CHECKING
import click.testing
import pytest
import tests
from derivepassphrase import cli
from derivepassphrase.exporter import storeroom, vault_native
cryptography = pytest.importorskip('cryptography', minversion='38.0')
if TYPE_CHECKING:
from collections.abc import Callable
from typing import Any
class TestCLI:
def test_200_path_parameter(self, monkeypatch: pytest.MonkeyPatch) -> None:
runner = click.testing.CliRunner(mix_stderr=False)
with tests.isolated_vault_exporter_config(
monkeypatch=monkeypatch,
runner=runner,
vault_config=tests.VAULT_V03_CONFIG,
vault_key=tests.VAULT_MASTER_KEY,
):
monkeypatch.setenv('VAULT_KEY', tests.VAULT_MASTER_KEY)
_result = runner.invoke(
cli.derivepassphrase_export_vault,
['VAULT_PATH'],
)
result = tests.ReadableResult.parse(_result)
assert result.clean_exit(empty_stderr=True), 'expected clean exit'
assert json.loads(result.output) == tests.VAULT_V03_CONFIG_DATA
def test_201_key_parameter(self, monkeypatch: pytest.MonkeyPatch) -> None:
runner = click.testing.CliRunner(mix_stderr=False)
with tests.isolated_vault_exporter_config(
monkeypatch=monkeypatch,
runner=runner,
vault_config=tests.VAULT_V03_CONFIG,
):
_result = runner.invoke(
cli.derivepassphrase_export_vault,