Esempio n. 1
0
def randomNumber_exists_if_required(context):
    field = context["field"]

    if (field["settings"]["dataType"]["dataType"] == "randomNumber"
            and "randomNumber" not in field["settings"]["dataType"]):
        raise exceptions.BadSpecificationError(
            "randomNumber missing from " + context_str(context) + ", " +
            "dispite dataType being 'randomNumber'")
Esempio n. 2
0
def foreignKeyParams_exists_if_required(context):
    field = context["field"]

    if (field["settings"]["keySettings"]["foreignKey"] is True
            and "foreignKeyParams" not in field["settings"]["keySettings"]):
        raise exceptions.BadSpecificationError(
            "foreignKeyParams missing from " + context_str(context) + ", " +
            "dispite foreignKey being True")
Esempio n. 3
0
def numberSequence_exists_if_required(context):
    field = context["field"]

    if (field["settings"]["dataType"]["dataType"] == "numberSequence"
            and "numberSequence" not in field["settings"]["dataType"]):
        raise exceptions.BadSpecificationError(
            "numberSequence missing from " + context_str(context) + ", " +
            "dispite dataType being 'numberSequence'")
Esempio n. 4
0
def one_primaryKey_per_table(context):
    table = context["table"]

    num_pkeys = 0
    for field in table["fields"]:
        if field["settings"]["keySettings"]["primaryKey"] is True:
            num_pkeys += 1
            if num_pkeys > 2:
                break  # Short-circuit - validation has already failed

    if num_pkeys == 0:
        raise exceptions.BadSpecificationError("no primaryKey defined in " +
                                               context_str(context) +
                                               " (one required)")
    elif num_pkeys > 1:
        raise exceptions.BadSpecificationError(
            "multiple primaryKeys defined in " + context_str(context) + " " +
            "(one required)")
Esempio n. 5
0
def randomNumber_start_le_end(context):
    field = context["field"]

    # Otherwise, this validation step is not applicable
    if (field["settings"]["dataType"]["dataType"] == "randomNumber"):
        randomNumber_spec = field["settings"]["dataType"]["randomNumber"]
        if (randomNumber_spec["start"] > randomNumber_spec["end"]):
            raise exceptions.BadSpecificationError(
                "start must be less than end in randomNumber parameters in " +
                context_str(context))
Esempio n. 6
0
def foreignKeyParams_references_exist(context):
    spec = context["generate-spec"]
    cur_field = context["field"]

    if cur_field["settings"]["keySettings"]["foreignKey"] is True:
        # Foreign Key Params
        fkp = cur_field["settings"]["keySettings"]["foreignKeyParams"]

        tables = spec["tables"]
        if (find(tables, lambda table: table["name"] == fkp["table"]) is None):
            raise exceptions.BadSpecificationError(
                "table '" + fkp["table"] + "' referenced by foreign key in " +
                context_str(context) + " does not exist")

        table = find(tables, lambda table: table["name"] == fkp["table"])
        fields = table["fields"]
        if (find(fields, lambda field: field["name"] == fkp["field"]) is None):
            raise exceptions.BadSpecificationError(
                "field '" + fkp["field"] + "' referenced by foreign key " +
                context_str(context) + " does not exist")
Esempio n. 7
0
def loopingSequenceParams_exists_if_required(context):
    field = context["field"]

    data_type_spec = field["settings"]["dataType"]
    if (data_type_spec["dataType"] == "numberSequence"
            and data_type_spec["numberSequence"]["sequenceType"] == "looping"
            and "loopingSequenceParams"
            not in data_type_spec["numberSequence"]):
        raise exceptions.BadSpecificationError(
            "loopingSequenceParams missing from " + context_str(context) +
            ", " + "dispite sequenceType being 'looping'")