Esempio n. 1
0
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)
Esempio n. 2
0
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"),
        ),
Esempio n. 3
0
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)
Esempio n. 4
0
            "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)
Esempio n. 5
0
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
Esempio n. 6
0
            "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"]