Exemplo n.º 1
0
def input_to_file( inp: ComplexInput, param: QgsProcessingParameterFile, 
                   context: ProcessingContext ) -> str:
    """ Save input data to file
    """
    # Handle file reference
    outputfile = (Path(context.workdir)/param.name()).with_suffix(param.extension())
    inp.download_ref(outputfile)

    # Save data
    LOGGER.debug("Saving input data as %s", outputfile.as_posix())
    with outputfile.open('wb') as f:
        data = inp.data
        if isinstance(data,str):
            data = data.encode()
        f.write(data)
    # Return base name as input file in located in workdir
    return outputfile.name
Exemplo n.º 2
0
def test_file_input( outputdir ):
    """ Test file parameter
    """
    param = QgsProcessingParameterFile("FILE", extension=".txt")

    inp = parse_input_definition(param)

    assert isinstance(inp,ComplexInput)
    assert inp.as_reference == False

    inp.data = "Hello world"

    context = QgsProcessingContext()
    context.workdir = str(outputdir)

    value = filesio.get_processing_value( param, [inp], context)

    outputpath = (Path(context.workdir)/param.name()).with_suffix(param.extension())
    assert value == outputpath.name
    assert outputpath.exists()
    
    with outputpath.open('r') as f:
        assert f.read() == inp.data