Esempio n. 1
0
def _validate_port_map_list(options_list, id_provider, force_options):
    kwargs = validate.set_warning(report_codes.FORCE_OPTIONS, force_options)
    option_type = "port-map"
    validators = [
        validate.NamesIn(PORT_MAP_OPTIONS, option_type=option_type, **kwargs),
        validate.ValueId("id",
                         option_name_for_report="port-map id",
                         id_provider=id_provider),
        validate.DependsOnOption(
            ["internal-port"],
            "port",
            option_type=option_type,
            prerequisite_type=option_type,
        ),
        validate.IsRequiredSome(["port", "range"], option_type=option_type),
        validate.MutuallyExclusive(["port", "range"], option_type=option_type),
        validate.ValuePortNumber("port"),
        validate.ValuePortNumber("internal-port"),
        validate.ValuePortRange("range", **kwargs),
    ]
    validator_all = validate.ValidatorAll(validators)

    report_list = []
    for options in options_list:
        report_list.extend(validator_all.validate(options))
    return report_list
Esempio n. 2
0
 def test_success_when_dependency_present(self):
     assert_report_item_list_equal(
         validate.DependsOnOption(
             ["name"], "prerequisite", option_type="type"
         ).validate({"name": "value", "prerequisite": "value",}),
         [],
     )
Esempio n. 3
0
 def test_report_when_dependency_missing(self):
     assert_report_item_list_equal(
         validate.DependsOnOption(
             ["name"],
             "prerequisite",
             option_type="type1",
             prerequisite_type="type2").validate({"name": "value"}), [
                 fixture.error(
                     report_codes.PREREQUISITE_OPTION_IS_MISSING,
                     option_name="name",
                     option_type="type1",
                     prerequisite_name="prerequisite",
                     prerequisite_type="type2",
                 ),
             ])
Esempio n. 4
0
 def test_more_options(self):
     assert_report_item_list_equal(
         validate.DependsOnOption(
             ["name1", "name2", "name3"], "prerequisite"
         ).validate({"name1": "value", "name3": "value",}),
         [
             fixture.error(
                 report_codes.PREREQUISITE_OPTION_IS_MISSING,
                 option_name=name,
                 option_type=None,
                 prerequisite_name="prerequisite",
                 prerequisite_type=None,
             )
             for name in ["name1", "name3"]
         ],
     )