Marco Ricci commited on 2025-01-11 19:04:57
Zeige 1 geänderte Dateien mit 49 Einfügungen und 9 Löschungen.
For each test calling an export handler directly, also perform the test when calling the export handler dispatcher.
... | ... |
@@ -267,11 +267,19 @@ class TestStoreroom: |
267 | 267 |
), |
268 | 268 |
], |
269 | 269 |
) |
270 |
+ @pytest.mark.parametrize( |
|
271 |
+ 'handler', |
|
272 |
+ [ |
|
273 |
+ pytest.param(storeroom.export_storeroom_data, id='handler'), |
|
274 |
+ pytest.param(exporter.export_vault_config_data, id='dispatcher'), |
|
275 |
+ ], |
|
276 |
+ ) |
|
270 | 277 |
def test_200_export_data_path_and_keys_type( |
271 | 278 |
self, |
272 | 279 |
monkeypatch: pytest.MonkeyPatch, |
273 | 280 |
path: str | None, |
274 | 281 |
key: str | Buffer | None, |
282 |
+ handler: exporter.ExportVaultConfigDataFunction, |
|
275 | 283 |
) -> None: |
276 | 284 |
runner = click.testing.CliRunner(mix_stderr=False) |
277 | 285 |
with tests.isolated_vault_exporter_config( |
... | ... |
@@ -281,7 +289,7 @@ class TestStoreroom: |
281 | 289 |
vault_key=tests.VAULT_MASTER_KEY, |
282 | 290 |
): |
283 | 291 |
assert ( |
284 |
- storeroom.export_storeroom_data(path, key) |
|
292 |
+ handler(path, key, format='storeroom') |
|
285 | 293 |
== tests.VAULT_STOREROOM_CONFIG_DATA |
286 | 294 |
) |
287 | 295 |
|
... | ... |
@@ -327,11 +335,19 @@ class TestStoreroom: |
327 | 335 |
('{"version": 1}\nAAAA', 'cannot handle version 0 encrypted keys'), |
328 | 336 |
], |
329 | 337 |
) |
338 |
+ @pytest.mark.parametrize( |
|
339 |
+ 'handler', |
|
340 |
+ [ |
|
341 |
+ pytest.param(storeroom.export_storeroom_data, id='handler'), |
|
342 |
+ pytest.param(exporter.export_vault_config_data, id='dispatcher'), |
|
343 |
+ ], |
|
344 |
+ ) |
|
330 | 345 |
def test_402_export_storeroom_data_bad_master_keys_file( |
331 | 346 |
self, |
332 | 347 |
monkeypatch: pytest.MonkeyPatch, |
333 | 348 |
data: str, |
334 | 349 |
err_msg: str, |
350 |
+ handler: exporter.ExportVaultConfigDataFunction, |
|
335 | 351 |
) -> None: |
336 | 352 |
runner = click.testing.CliRunner(mix_stderr=False) |
337 | 353 |
with tests.isolated_vault_exporter_config( |
... | ... |
@@ -343,7 +359,7 @@ class TestStoreroom: |
343 | 359 |
with open('.vault/.keys', 'w', encoding='UTF-8') as outfile: |
344 | 360 |
print(data, file=outfile) |
345 | 361 |
with pytest.raises(RuntimeError, match=err_msg): |
346 |
- storeroom.export_storeroom_data() |
|
362 |
+ handler(format='storeroom') |
|
347 | 363 |
|
348 | 364 |
@pytest.mark.parametrize( |
349 | 365 |
['zipped_config', 'error_text'], |
... | ... |
@@ -370,11 +386,19 @@ class TestStoreroom: |
370 | 386 |
), |
371 | 387 |
], |
372 | 388 |
) |
389 |
+ @pytest.mark.parametrize( |
|
390 |
+ 'handler', |
|
391 |
+ [ |
|
392 |
+ pytest.param(storeroom.export_storeroom_data, id='handler'), |
|
393 |
+ pytest.param(exporter.export_vault_config_data, id='dispatcher'), |
|
394 |
+ ], |
|
395 |
+ ) |
|
373 | 396 |
def test_403_export_storeroom_data_bad_directory_listing( |
374 | 397 |
self, |
375 | 398 |
monkeypatch: pytest.MonkeyPatch, |
376 | 399 |
zipped_config: bytes, |
377 | 400 |
error_text: str, |
401 |
+ handler: exporter.ExportVaultConfigDataFunction, |
|
378 | 402 |
) -> None: |
379 | 403 |
runner = click.testing.CliRunner(mix_stderr=False) |
380 | 404 |
# Use parenthesized context manager expressions once Python 3.9 |
... | ... |
@@ -389,7 +413,7 @@ class TestStoreroom: |
389 | 413 |
) |
390 | 414 |
) |
391 | 415 |
stack.enter_context(pytest.raises(RuntimeError, match=error_text)) |
392 |
- storeroom.export_storeroom_data() |
|
416 |
+ handler(format='storeroom') |
|
393 | 417 |
|
394 | 418 |
def test_404_decrypt_keys_wrong_data_length(self) -> None: |
395 | 419 |
payload = ( |
... | ... |
@@ -506,12 +530,20 @@ class TestVaultNativeConfig: |
506 | 530 |
), |
507 | 531 |
], |
508 | 532 |
) |
533 |
+ @pytest.mark.parametrize( |
|
534 |
+ 'handler', |
|
535 |
+ [ |
|
536 |
+ pytest.param(vault_native.export_vault_native_data, id='handler'), |
|
537 |
+ pytest.param(exporter.export_vault_config_data, id='dispatcher'), |
|
538 |
+ ], |
|
539 |
+ ) |
|
509 | 540 |
def test_201_export_vault_native_data_no_arguments( |
510 | 541 |
self, |
511 | 542 |
monkeypatch: pytest.MonkeyPatch, |
512 | 543 |
config: str, |
513 | 544 |
format: Literal['v0.2', 'v0.3'], |
514 | 545 |
result: _types.VaultConfig | type[Exception], |
546 |
+ handler: exporter.ExportVaultConfigDataFunction, |
|
515 | 547 |
) -> None: |
516 | 548 |
runner = click.testing.CliRunner(mix_stderr=False) |
517 | 549 |
with tests.isolated_vault_exporter_config( |
... | ... |
@@ -522,11 +554,9 @@ class TestVaultNativeConfig: |
522 | 554 |
): |
523 | 555 |
if isinstance(result, type): |
524 | 556 |
with pytest.raises(result): |
525 |
- vault_native.export_vault_native_data(None, format=format) |
|
557 |
+ handler(None, format=format) |
|
526 | 558 |
else: |
527 |
- parsed_config = vault_native.export_vault_native_data( |
|
528 |
- None, format=format |
|
529 |
- ) |
|
559 |
+ parsed_config = handler(None, format=format) |
|
530 | 560 |
assert parsed_config == result |
531 | 561 |
|
532 | 562 |
@pytest.mark.parametrize('path', ['.vault', None]) |
... | ... |
@@ -546,11 +576,19 @@ class TestVaultNativeConfig: |
546 | 576 |
), |
547 | 577 |
], |
548 | 578 |
) |
579 |
+ @pytest.mark.parametrize( |
|
580 |
+ 'handler', |
|
581 |
+ [ |
|
582 |
+ pytest.param(vault_native.export_vault_native_data, id='handler'), |
|
583 |
+ pytest.param(exporter.export_vault_config_data, id='dispatcher'), |
|
584 |
+ ], |
|
585 |
+ ) |
|
549 | 586 |
def test_202_export_data_path_and_keys_type( |
550 | 587 |
self, |
551 | 588 |
monkeypatch: pytest.MonkeyPatch, |
552 | 589 |
path: str | None, |
553 | 590 |
key: str | Buffer | None, |
591 |
+ handler: exporter.ExportVaultConfigDataFunction, |
|
554 | 592 |
) -> None: |
555 | 593 |
runner = click.testing.CliRunner(mix_stderr=False) |
556 | 594 |
with tests.isolated_vault_exporter_config( |
... | ... |
@@ -559,8 +597,10 @@ class TestVaultNativeConfig: |
559 | 597 |
vault_config=tests.VAULT_V03_CONFIG, |
560 | 598 |
vault_key=tests.VAULT_MASTER_KEY, |
561 | 599 |
): |
562 |
- parsed_config = vault_native.export_vault_native_data(None) |
|
563 |
- assert parsed_config == tests.VAULT_V03_CONFIG_DATA |
|
600 |
+ assert ( |
|
601 |
+ handler(path, key, format='v0.3') |
|
602 |
+ == tests.VAULT_V03_CONFIG_DATA |
|
603 |
+ ) |
|
564 | 604 |
|
565 | 605 |
@pytest.mark.parametrize( |
566 | 606 |
['parser_class', 'config', 'result'], |
567 | 607 |