def testOsmImport(self): repoPath = self.getTempRepoPath() repo = Repository(repoPath, init = True) osmfile = os.path.join(os.path.dirname(__file__), "data", "osm", "ways.xml") repo.importosm(osmfile) feature = Feature(repo, geogit.WORK_HEAD, "way/31045880") self.assertTrue(feature.exists())
def testBlame(self): feature = Feature(self.repo, geogit.HEAD, "parks/5") blame = feature.blame() self.assertEquals(8, len(blame)) attrs = feature.attributes() for k,v in blame.iteritems(): self.assertTrue(v[0], attrs[k])
def testRemoveFeature(self): repo = self.getClonedRepo() repo.removefeatures(["parks/1"]) f = Feature(repo, geogit.WORK_HEAD, "parks/1") self.assertFalse(f.exists()) f = Feature(repo, geogit.STAGE_HEAD, "parks/1") self.assertFalse(f.exists())
def testOsmImportWithMappingFile(self): repoPath = self.getTempRepoPath() repo = Repository(repoPath, init = True) osmfile = os.path.join(os.path.dirname(__file__), "data", "osm", "ways.xml") mappingfile = os.path.join(os.path.dirname(__file__), "data", "osm", "mapping.json") repo.importosm(osmfile, False, mappingfile) feature = Feature(repo, geogit.WORK_HEAD, "onewaystreets/31045880") self.assertTrue(feature.exists())
def testDiff(self): feature = Feature(self.repo, geogit.HEAD, "parks/5") featureB = Feature(self.repo, geogit.HEAD + "~1", "parks/5") diffs = feature.diff(featureB) self.assertTrue(2, len(diffs)) areas = diffs["area"] self.assertEquals("15297.503295898438", areas[1]) self.assertEquals("15246.59765625", areas[0]) self.assertTrue("the_geom" in diffs)
def testFeatureType(self): feature = Feature(self.repo, geogit.HEAD, "parks/5") ftype = feature.featuretype() self.assertTrue("owner" in ftype) self.assertTrue("agency" in ftype) self.assertTrue("name" in ftype) self.assertTrue("parktype" in ftype) self.assertTrue("area" in ftype) self.assertTrue("perimeter" in ftype) self.assertTrue("the_geom" in ftype) self.assertEquals("MULTIPOLYGON EPSG:4326", ftype['the_geom'])
def testOsmImportWithMapping(self): mapping = OSMMapping() rule = OSMMappingRule("onewaystreets") rule.addfilter("oneway", "yes") rule.addfield("lit", "lit", geogit.TYPE_STRING) rule.addfield("geom", "the_geom", geogit.TYPE_LINESTRING) mapping.addrule(rule) repoPath = self.getTempRepoPath() repo = Repository(repoPath, init = True) osmfile = os.path.join(os.path.dirname(__file__), "data", "osm", "ways.xml") repo.importosm(osmfile, False, mapping) feature = Feature(repo, geogit.WORK_HEAD, "onewaystreets/31045880") self.assertTrue(feature.exists())
def testAttributes(self): feature = Feature(self.repo, geogit.HEAD, "parks/1") data = feature.attributes() self.assertEquals(8, len(data)) self.assertEquals("Public", data["usage"]) self.assertTrue("owner" in data) self.assertTrue("agency" in data) self.assertTrue("name" in data) self.assertTrue("parktype" in data) self.assertTrue("area" in data) self.assertTrue("perimeter" in data) self.assertTrue("the_geom" in data) self.assertTrue(isinstance(data["the_geom"][0], Polygon))
def testFeatureType(self): feature = Feature(self.repo, geogit.HEAD, "parks/5") ftype = feature.featuretype()
def testExists(self): feature = Feature(self.repo, geogit.HEAD, "parks/1") self.assertTrue(feature.exists()) feature = Feature(self.repo, geogit.HEAD, "wrong/path") self.assertFalse(feature.exists())