def test_tool_validation_valid(): help_string = """\ Some Tool Usage: tools [-i <input>] [-o <output>] Options: -i, --input <input> The input [Default: stdin] -o, --output <output> The output [Default: stdout] """ tool = Tool(help_string) assert tool.options is not None assert len(tool.options) == 2 tool.validate()
def test_tool_validation_missing_required(): help_string = """\ Some Tool Usage: tools -i <input> [-o <output>] Options: -i, --input <input> The input -o, --output <output> The output [Default: stdout] """ tool = Tool(help_string) assert tool.options is not None assert len(tool.options) == 2 with pytest.raises(ValidationError) as execinfo: tool.validate() assert "required" in str(execinfo.value)
def test_tool_validate_input_file_not_found(): help_string = """\ Some Tool Usage: tools [-i <input>] [-o <output>] Options: -i, --input <input> The input [Default: stdin] -o, --output <output> The output [Default: stdout] """ tool = Tool(help_string) tool.parse_args(["-i", "unknown"]) with pytest.raises(ValidationError) as execinfo: tool.validate() assert "Input file not found: unknown" in str(execinfo.value)
def validate(self, args, incoming=None): Tool.validate(self, args, incoming) # check that this is a gem index if not args["index"].endswith(".gem"): raise ValidationException({"index": "The given index does not seem to be a gem index!"})