Пример #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
Пример #2
0
 def test_report_bad_end(self):
     assert_report_item_list_equal(
         validate.ValuePortRange("key").validate({"key": "100-65536"}), [
             fixture.error(
                 report_codes.INVALID_OPTION_VALUE,
                 option_name="key",
                 option_value="100-65536",
                 allowed_values="port-port",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
         ])
Пример #3
0
 def test_empty_report_on_valid_option(self):
     assert_report_item_list_equal(
         validate.ValuePortRange("key").validate({"key": "100-200"}), [])