123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- """Test the JSON extension of the GRASS parser
- (C) 2014 by the GRASS Development Team
- This program is free software under the GNU General Public
- License (>=v2). Read the file COPYING that comes with GRASS
- for details.
- @author Soeren Gebbert
- """
- import subprocess
- from grass.gunittest.case import TestCase
- import json
- class TestParserJson(TestCase):
- def test_r_slope_aspect_json(self):
- args = ["r.slope.aspect",
- "elevation=elevation+https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
- "slope=slope+GTiff",
- "aspect=aspect+GTiff", "--json"]
- inputs = [
- {"import_descr": {"source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
- "type": "raster"},
- "param": "elevation", "value": "elevation"},
- {"param": "format", "value": "degrees"},
- {"param": "precision", "value": "FCELL"},
- {"param": "zscale", "value": "1.0"},
- {"param": "min_slope", "value": "0.0"}
- ]
- outputs = [
- {"export": {"format": "GTiff", "type": "raster"},
- "param": "slope", "value": "slope"},
- {"export": {"format": "GTiff", "type": "raster"},
- "param": "aspect", "value": "aspect"}
- ]
- stdout, stderr = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()
- print(stdout)
- json_code = json.loads(stdout)
- self.assertEqual(json_code["module"], "r.slope.aspect")
- self.assertEqual(len(json_code["inputs"]), 5)
- self.assertEqual(json_code["inputs"], inputs)
- self.assertEqual(json_code["outputs"], outputs)
- def test_v_out_ascii(self):
- args = ["v.out.ascii",
- "input=hospitals@PERMANENT",
- "output=myfile+TXT",
- "--json"]
- inputs = [
- {"param": "input", "value": "hospitals@PERMANENT"},
- {"param": "layer", "value": "1"},
- {"param": "type", "value": "point,line,boundary,centroid,area,face,kernel"},
- {"param": "format", "value": "point"},
- {"param": "separator", "value": "pipe"},
- {"param": "precision", "value": "8"}
- ]
- outputs = [
- {"export": {"format": "TXT", "type": "file"},
- "param": "output", "value": "$file::myfile"}
- ]
- stdout, stderr = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()
- print(stdout)
- json_code = json.loads(stdout)
- self.assertEqual(json_code["module"], "v.out.ascii")
- self.assertEqual(len(json_code["inputs"]), 6)
- self.assertEqual(json_code["inputs"], inputs)
- self.assertEqual(json_code["outputs"], outputs)
- def test_v_info(self):
- args = ["v.info",
- "map=hospitals@PERMANENT",
- "-c",
- "--json"]
- inputs = [
- {"param": "map", "value": "hospitals@PERMANENT"},
- {"param": "layer", "value": "1"}
- ]
- stdout, stderr = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()
- print(stdout)
- json_code = json.loads(stdout)
- self.assertEqual(json_code["module"], "v.info")
- self.assertEqual(len(json_code["inputs"]), 2)
- self.assertEqual(json_code["inputs"], inputs)
- if __name__ == '__main__':
- from grass.gunittest.main import test
- test()
|