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
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, ), ])
def test_empty_report_on_valid_option(self): assert_report_item_list_equal( validate.ValuePortRange("key").validate({"key": "100-200"}), [])