Source code for gigl.src.validation_check.libs.utils
from google.protobuf import message
[docs]
def assert_proto_has_field(proto: message.Message, field_name: str) -> None:
    """
    Assert that a proto has a defined field. Throws an AssertionError if the field is not set.
    Note: this method only works for message fields, not for singular (non-message) fields.
    Args:
        proto: A proto message.
        field_name: A string representing the field name.
    """
    assert proto.HasField(
        field_name
    ), f"Invalid '{field_name}'; must provide {field_name}." 
[docs]
def assert_proto_field_value_is_truthy(proto: message.Message, field_name: str) -> None:
    """
    Assert that a proto field is not empty. Throws an AssertionError if the field is not set or if the value in the field is equal to the default value.
    Args:
        proto: A proto message.
        field_name: A string representing the field name.
    """
    assert getattr(proto, field_name), (
        f"Invalid '{field_name}'; value must be "
        "positive (if integer) or non-empty (if string)."
    )