示例#1
0
def test_secret_immutable():
    secret = Secret(
        name="name",
        description="desc",
        values={"key": "value"},
    )

    with pytest.raises(AttributeError):
        secret.name = "test"

    with pytest.raises(AttributeError):
        secret.description = "test"

    with pytest.raises(TypeError):
        secret["key"] = "test"
示例#2
0
def test_secret_update():
    secret = Secret(
        name="name-value",
        description="description-value",
        values={
            "key_one": "value_one",
            "key_two": "value_two"
        },
    )

    secret.update({"key_three": "value_three"})
    expected = {
        "key_one": "value_one",
        "key_two": "value_two",
        "key_three": "value_three",
    }

    assert secret == expected
示例#3
0
def test_secret_properties():
    secret = Secret(
        name="name-value",
        description="description-value",
        values={},
    )

    assert secret.name == "name-value"
    assert secret.description == "description-value"
示例#4
0
def test_secret_contains():
    secret = Secret(
        name="name-value",
        description="description-value",
        values={
            "key_one": "value_one",
            "key_two": "value_two"
        },
    )

    assert "key_two" in secret
示例#5
0
def test_secret_iterate():
    secret = Secret(
        name="name-value",
        description="description-value",
        values={
            "key_one": "value_one",
            "key_two": "value_two"
        },
    )

    assert list(secret) == ["key_one", "key_two"]
示例#6
0
def test_set_key_vault_error_empty():
    lib = Crypto()
    lib._secrets = mock_secrets = mock.Mock()

    key = lib.generate_key()
    mock_secrets.get_secret.return_value = Secret("MockSecret", "", {})

    with pytest.raises(ValueError):
        lib.use_encryption_key_from_vault("SomeKeyValue")
    assert mock_secrets.get_secret.called_once_with("SomeKeyValue")
    assert lib._key is None
示例#7
0
def test_set_key_vault_no_key():
    lib = Crypto()
    lib._secrets = mock_secrets = mock.Mock()

    key = lib.generate_key()
    mock_secrets.get_secret.return_value = Secret("MockSecret", "",
                                                  {"key": key})

    lib.use_encryption_key_from_vault("SomeKeyValue")
    assert mock_secrets.get_secret.called_once_with("SomeKeyValue")
    assert lib._key is not None
示例#8
0
def test_secret_get():
    secret = Secret(
        name="name-value",
        description="description-value",
        values={
            "key_one": "value_one",
            "key_two": "value_two"
        },
    )

    assert secret["key_one"] == "value_one"
    assert secret["key_two"] == "value_two"
    with pytest.raises(KeyError):
        _ = secret["key_invalid"]
示例#9
0
def test_secret_print():
    secret = Secret(
        name="name-value",
        description="description-value",
        values={
            "key_one": "value_one",
            "key_two": "value_two"
        },
    )

    repr_string = repr(secret)
    assert "value_one" not in repr_string
    assert "value_two" not in repr_string

    str_string = str(secret)
    assert "value_one" not in str_string
    assert "value_two" not in str_string