diff options
author | Michał Górny <mgorny@gentoo.org> | 2022-09-17 08:53:09 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2022-09-17 08:53:09 +0200 |
commit | 64d398834925001923dec85821b56ee284b80b16 (patch) | |
tree | 06ce8fc104c2f41bc8dbcc781a145b1741d91f57 /tests/test_recursiveloader.py | |
parent | 4fe74c5b55f5b29ab832b61f8c0eef290c40d1e3 (diff) | |
download | gemato-64d398834925001923dec85821b56ee284b80b16.tar.gz |
Support controlling secure hashes req in CLI update
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r-- | tests/test_recursiveloader.py | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py index f00deb9..860bace 100644 --- a/tests/test_recursiveloader.py +++ b/tests/test_recursiveloader.py @@ -2461,13 +2461,16 @@ def test_update_mtime(layout_factory, last_mtime, manifest_update): assert output == expected -@pytest.mark.parametrize( - "hashes_arg,insecure", - [("MD5", True), - ("SHA1", True), - ("SHA512", False), - ("SHA1 SHA512", True), - ]) +INSECURE_HASH_TESTS = [ + # hashes, insecure + ("MD5", ["MD5"]), + ("SHA1", ["SHA1"]), + ("SHA512", None), + ("SHA1 SHA512", ["SHA1"]), +] + + +@pytest.mark.parametrize("hashes_arg,insecure", INSECURE_HASH_TESTS) def test_insecure_hashes(layout_factory, hashes_arg, insecure): layout = BasicTestLayout tmp_path = layout_factory.create(layout) @@ -2480,13 +2483,7 @@ def test_insecure_hashes(layout_factory, hashes_arg, insecure): require_secure_hashes=True) -@pytest.mark.parametrize( - "hashes_arg,insecure", - [("MD5", True), - ("SHA1", True), - ("SHA512", False), - ("SHA1 SHA512", True), - ]) +@pytest.mark.parametrize("hashes_arg,insecure", INSECURE_HASH_TESTS) @pytest.mark.parametrize( "func,arg", [(ManifestRecursiveLoader.update_entry_for_path, "sub/deeper/test"), @@ -2514,3 +2511,17 @@ def test_insecure_hashes_update_no_arg(layout_factory): require_secure_hashes=True) with pytest.raises(ManifestInsecureHashes): m.update_entry_for_path("sub/deeper/test") + + +@pytest.mark.parametrize("hashes_arg,insecure", INSECURE_HASH_TESTS) +@pytest.mark.parametrize("command", ["create", "update"]) +def test_insecure_hashes_update_cli(layout_factory, caplog, + hashes_arg, insecure, command): + layout = BasicTestLayout + tmp_path = layout_factory.create(layout) + expected = 1 if insecure else 0 + assert gemato.cli.main(["gemato", command, "--hashes", hashes_arg, + "--require-secure-hashes", "--force-rewrite", + str(tmp_path)]) == expected + if insecure: + assert str(ManifestInsecureHashes(insecure)) in caplog.text |