def test_two_strings(): request_doc = WPS.Execute( OWS.Identifier('foo'), WPS.DataInputs( WPS.Input(OWS.Identifier('name1'), WPS.Data(WPS.LiteralData('foo'))), WPS.Input(OWS.Identifier('name2'), WPS.Data(WPS.LiteralData('bar'))))) rv = get_inputs_from_xml(request_doc) assert rv['name1'][0]['data'] == 'foo' assert rv['name2'][0]['data'] == 'bar'
def test_one_string(): request_doc = WPS.Execute( OWS.Identifier('foo'), WPS.DataInputs( WPS.Input(OWS.Identifier('name'), WPS.Data(WPS.LiteralData('foo'))), WPS.Input(OWS.Identifier('name'), WPS.Data(WPS.LiteralData('bar'))))) rv = get_inputs_from_xml(request_doc) assert 'name' in rv assert len(rv['name']) == 2 assert rv['name'][0]['data'] == 'foo' assert rv['name'][1]['data'] == 'bar'
def test_post_with_string_input(self): request_doc = WPS.Execute(OWS.Identifier('greeter'), WPS.DataInputs( WPS.Input( OWS.Identifier('name'), WPS.Data(WPS.LiteralData('foo')))), version='1.0.0') resp = self.client.post_xml(doc=request_doc) assert_response_success(resp) assert get_output(resp.xml) == {'message': "Hello foo!"}
def test_complex_input(): the_data = E.TheData("hello world") request_doc = WPS.Execute( OWS.Identifier('foo'), WPS.DataInputs( WPS.Input( OWS.Identifier('name'), WPS.Data(WPS.ComplexData(the_data, mimeType='text/foobar'))))) rv = get_inputs_from_xml(request_doc) assert rv['name'][0]['mimeType'] == 'text/foobar' rv_doc = lxml.etree.parse(StringIO(rv['name'][0]['data'])).getroot() assert rv_doc.tag == 'TheData' assert rv_doc.text == 'hello world'
def test_complex_input_raw_value(): the_data = '{ "plot":{ "Version" : "0.1" } }' request_doc = WPS.Execute( OWS.Identifier('foo'), WPS.DataInputs( WPS.Input( OWS.Identifier('json'), WPS.Data(WPS.ComplexData(the_data, mimeType='application/json'))))) rv = get_inputs_from_xml(request_doc) assert rv['json'][0]['mimeType'] == 'application/json' json_data = json.loads(rv['json'][0]['data']) assert json_data['plot']['Version'] == '0.1'
def test_bbox_input(): request_doc = WPS.Execute( OWS.Identifier('request'), WPS.DataInputs( WPS.Input( OWS.Identifier('bbox'), WPS.Data( WPS.BoundingBoxData(OWS.LowerCorner('40 50'), OWS.UpperCorner('60 70')))))) rv = get_inputs_from_xml(request_doc) bbox = rv['bbox'][0]['data'] assert isinstance(bbox, list) assert bbox[0] == '40' assert bbox[1] == '50' assert bbox[2] == '60' assert bbox[3] == '70'
def test_complex_input_base64_value(): the_data = 'eyAicGxvdCI6eyAiVmVyc2lvbiIgOiAiMC4xIiB9IH0=' request_doc = WPS.Execute( OWS.Identifier('foo'), WPS.DataInputs( WPS.Input( OWS.Identifier('json'), WPS.Data( WPS.ComplexData(the_data, encoding='base64', mimeType='application/json'))))) rv = get_inputs_from_xml(request_doc) assert rv['json'][0]['mimeType'] == 'application/json' json_data = json.loads(rv['json'][0]['data'].decode()) assert json_data['plot']['Version'] == '0.1'
def test_bbox_io(self): request_doc = WPS.Execute(OWS.Identifier('my_bbox_process'), WPS.DataInputs( WPS.Input( OWS.Identifier('mybbox'), WPS.Data( WPS.BoundingBoxData( OWS.LowerCorner('15 50'), OWS.UpperCorner('16 51'), )))), version='1.0.0') resp = self.client.post_xml(doc=request_doc) assert_response_success(resp) [output ] = xpath_ns(resp.xml, '/wps:ExecuteResponse' '/wps:ProcessOutputs/Output') self.assertEqual('outbbox', xpath_ns(output, './ows:Identifier')[0].text) self.assertEqual( '15.0 50.0', xpath_ns(output, './ows:BoundingBox/ows:LowerCorner')[0].text)