def test_validate_hash_error(td, mock_schema_path, mock_keystore): data = trust_data("tests/data/sample_root.json") data["signatures"][0]["sig"] = "Q" + data["signatures"][0]["sig"][1:] trust_data_ = td.TrustData(data, "root") ks = KeyStore() with pytest.raises(ValidationError) as err: trust_data_._validate_hash(ks) assert "failed validating trust data hash." in str(err.value)
def test_health_check_acr(acrapi, mock_request, host: str, out: bool): assert acrapi.health_check(host) == out @pytest.mark.parametrize("slfsig, out", [("1", True), ("0", False), ("", False)]) def test_is_notary_selfsigned(napi, slfsig: str, out: bool, monkeypatch): monkeypatch.setenv("SELFSIGNED_NOTARY", slfsig) assert napi.is_notary_selfsigned() == out @pytest.mark.parametrize( "image, role, out", [ ("alice-image:tag", "root", trust_data("tests/data/alice-image/root.json")), ( "alice-image:tag", "targets", trust_data("tests/data/alice-image/targets.json"), ), ( "alice-image:tag", "targets/phbelitz", trust_data("tests/data/alice-image/targets/phbelitz.json"), ), ( "auth.io/sample-image:tag", "targets", trust_data("tests/data/sample-image/targets.json"), ),
def test_get_digest_error(td, mock_schema_path): _trust_data = td.TrustData(trust_data("tests/data/sample2_targets.json"), "targets") with pytest.raises(NotFoundException) as err: _trust_data.get_digest("hurr") assert 'could not find digest for tag "hurr".' in str(err.value)
"targets/releases": ("pNjHgtwOrSZB5l0bzHZt9u3dUdFpKsPBhWPiVrIMm88=", 712), } monkeypatch.setattr(KeyStore, "__init__", init) def trust_data(path: str): with open(path, "r") as file: return json.load(file) @pytest.mark.parametrize( "data, role, class_", [ (trust_data("tests/data/sample_root.json"), "root", "RootData"), (trust_data("tests/data/sample_snapshot.json"), "snapshot", "SnapshotData"), (trust_data("tests/data/sample_timestamp.json"), "timestamp", "TimestampData"), (trust_data("tests/data/sample_targets.json"), "targets", "TargetsData"), ( trust_data("tests/data/sample_releases.json"), "targets/releases", "TargetsData", ), ], ) def test_trust_data(td, mock_schema_path, data: dict, role: str, class_: str): trust_data_ = td.TrustData(data, role)
def test_search_image_targets_for_tag(napi, image: str, digest: str): data = trust_data("tests/data/sample_releases.json")["signed"]["targets"] assert napi.search_image_targets_for_tag(data, Image(image)) == digest
"targets": ("QGNOSBnOmZHpn8uefASR1xw9ZrPpr0SMW+xWvY4nSAc=", 1307), "targets/releases": ("pNjHgtwOrSZB5l0bzHZt9u3dUdFpKsPBhWPiVrIMm88=", 712), } monkeypatch.setattr(KeyStore, "__init__", init) def trust_data(path: str): with open(path, "r") as file: return json.load(file) @pytest.mark.parametrize( "data, role, class_", [ (trust_data("tests/data/sample_root.json"), "root", "RootData"), (trust_data("tests/data/sample_snapshot.json"), "snapshot", "SnapshotData"), (trust_data("tests/data/sample_timestamp.json"), "timestamp", "TimestampData"), (trust_data("tests/data/sample_targets.json"), "targets", "TargetsData"), ( trust_data("tests/data/sample_releases.json"), "targets/releases", "TargetsData", ), ], ) def test_trust_data(td, mock_schema_path, data: dict, role: str, class_: str): trust_data_ = td.TrustData(data, role) assert trust_data_.signed == data["signed"] assert trust_data_.signatures == data["signatures"]