Пример #1
0
def test_get_operator_indices(capsys, hostname):
    images = ["registry.io/index-image:4.5", "registry.io/index-image:4.6"]
    data = [{"path": image, "something": "else"} for image in images]
    ver = "4.5-4.6"
    org = "redhat"

    args = [
        "dummy",
        "--pyxis-server",
        hostname,
        "--ocp-versions-range",
        ver,
        "--pyxis-ssl-crtfile",
        "/root/name.crt",
        "--pyxis-ssl-keyfile",
        "/root/name.key",
        "--organization",
        org,
    ]

    expected = json.dumps(data,
                          sort_keys=True,
                          indent=4,
                          separators=(",", ": "))

    with requests_mock.Mocker() as m:
        m.get(
            "{0}v1/operators/indices?ocp_versions_range={1}&organization={2}".
            format(hostname, ver, org),
            json={"data": data},
        )
        pyxis_ops.get_operator_indices_main(args)

    out, _ = capsys.readouterr()
    assert out == expected
Пример #2
0
def test_arg_parser_missing_ssl_option(mock_kerberos, mock_ssl, mock_client):
    bad_args = [
        "dummy",
        "--pyxis-server",
        "https://pyxis.engineering.redhat.com/",
        "--ocp-versions-range",
        "4.5",
        "--pyxis-ssl-crtfile",
        "/root/name.crt",
    ]

    with pytest.raises(ValueError, match="Either Kerberos principal.*"):
        pyxis_ops.get_operator_indices_main(bad_args)

    bad_args2 = [
        "dummy",
        "--pyxis-server",
        "https://pyxis.engineering.redhat.com/",
        "--ocp-versions-range",
        "4.5",
        "--pyxis-ssl-keyfile",
        "/root/name.key",
    ]

    with pytest.raises(ValueError, match="Either Kerberos principal.*"):
        pyxis_ops.get_operator_indices_main(bad_args2)

    mock_kerberos.assert_not_called()
    mock_ssl.assert_not_called()
Пример #3
0
def test_arg_parser_required_missing_server(mock_client):
    missing_server = ["dummy", "--ocp-versions-range", "4.5"]

    with pytest.raises(SystemExit) as system_error:
        pyxis_ops.get_operator_indices_main(missing_server)

    assert system_error.type == SystemExit
    assert system_error.value.code == 2
Пример #4
0
def test_arg_parser_required_missing_ocp_versions(mock_client):
    missing_ocp_versions = [
        "dummy",
        "--pyxis-server",
        "https://pyxis.engineering.redhat.com/",
    ]

    with pytest.raises(SystemExit) as system_error:
        pyxis_ops.get_operator_indices_main(missing_ocp_versions)

    assert system_error.type == SystemExit
    assert system_error.value.code == 2
Пример #5
0
def test_arg_parser_required_missing_ocp_versions(mock_client, hostname):
    missing_ocp_versions = [
        "dummy",
        "--pyxis-server",
        hostname,
    ]

    with pytest.raises(SystemExit) as system_error:
        pyxis_ops.get_operator_indices_main(missing_ocp_versions)

    assert system_error.type == SystemExit
    assert system_error.value.code == 2
Пример #6
0
def test_arg_parser_krb_verification(mock_kerberos, mock_ssl, mock_client,
                                     mock_json):
    good_args = [
        "dummy",
        "--pyxis-server",
        "https://pyxis.engineering.redhat.com/",
        "--ocp-versions-range",
        "4.5",
        "--pyxis-krb-principal",
        "*****@*****.**",
    ]
    pyxis_ops.get_operator_indices_main(good_args)

    mock_kerberos.assert_called_once()
    mock_ssl.assert_not_called()
Пример #7
0
def test_arg_parser_no_verification(mock_kerberos, mock_ssl, mock_client,
                                    hostname):
    bad_args = [
        "dummy",
        "--pyxis-server",
        hostname,
        "--ocp-versions-range",
        "4.5",
    ]

    with pytest.raises(ValueError, match="Either Kerberos principal.*"):
        pyxis_ops.get_operator_indices_main(bad_args)

    mock_kerberos.assert_not_called()
    mock_ssl.assert_not_called()
Пример #8
0
def test_arg_parser_ssl_verification(mock_kerberos, mock_ssl, mock_client,
                                     mock_json):
    good_args = [
        "dummy",
        "--pyxis-server",
        "https://pyxis.engineering.redhat.com/",
        "--ocp-versions-range",
        "4.5",
        "--pyxis-ssl-crtfile",
        "/root/name.crt",
        "--pyxis-ssl-keyfile",
        "/root/name.key",
    ]
    pyxis_ops.get_operator_indices_main(good_args)

    mock_kerberos.assert_not_called()
    mock_ssl.assert_called_once()
Пример #9
0
def test_arg_parser_required(mock_client, mock_json, hostname):
    good_args = [
        "dummy",
        "--pyxis-server",
        hostname,
        "--ocp-versions-range",
        "4.5",
    ]
    pyxis_ops.get_operator_indices_main(good_args)
    called_args, _ = mock_client.call_args

    assert called_args[0].ocp_versions_range == "4.5"
    assert called_args[0].pyxis_server == hostname
    assert called_args[0].organization is None
    assert called_args[0].pyxis_insecure is None
    assert called_args[0].pyxis_krb_ktfile is None
    assert called_args[0].pyxis_krb_principal is None
    assert called_args[0].pyxis_ssl_crtfile is None
    assert called_args[0].pyxis_ssl_keyfile is None
Пример #10
0
def test_arg_parser_both_verifications_krb_used(mock_kerberos, mock_ssl,
                                                mock_client, mock_json,
                                                hostname):
    good_args = [
        "dummy",
        "--pyxis-server",
        hostname,
        "--ocp-versions-range",
        "4.5",
        "--pyxis-ssl-crtfile",
        "/root/name.crt",
        "--pyxis-ssl-keyfile",
        "/root/name.key",
        "--pyxis-krb-principal",
        "*****@*****.**",
    ]
    pyxis_ops.get_operator_indices_main(good_args)

    mock_kerberos.assert_called_once()
    mock_ssl.assert_not_called()