Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_cant_create_aoi_with_non_multipolygon_type(self):
# Arrange
bad_geom = geojson.Polygon(
[[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38, 57.322)]]
)
bad_feature = geojson.Feature(geometry=bad_geom)
# bad_feature_collection = geojson.FeatureCollection([bad_feature])
# Act / Assert
with self.assertRaises(InvalidGeoJson):
# Only geometries of type MultiPolygon are valid
GridService.merge_to_multi_polygon(
geojson.dumps(bad_feature), dissolve=True
)
def test_has(self):
"""Test has filter function"""
ff = create_filter(['has', 'a'])
passing = Feature(geometry=line_geometry, properties=dict(a=1))
failing = Feature(geometry=line_geometry, properties=dict(b=3))
self.assertTrue(ff(passing))
self.assertFalse(ff(failing))
def test_invalid(self):
with self.assertRaises(ValueError) as cm:
geojson.loads('{"type":"Point", "coordinates":[[-Infinity, 4.0]]}')
self.assertIn('is not JSON compliant', str(cm.exception))
' "properties":'
' {"link": "http://example.org/features/1",'
' "summary": "The first feature",'
' "title": "Feature 1"},'
' "type": "Feature"}')
self.assertEqual(geojson.dumps(feature, sort_keys=True), json)
# Decoding
factory = geojson.examples.create_simple_web_feature
json = ('{"geometry": {"type": "Point",'
' "coordinates": [53.0, -4.0]},'
' "id": "1",'
' "properties": {"summary": "The first feature",'
' "link": "http://example.org/features/1",'
' "title": "Feature 1"}}')
feature = geojson.loads(json, object_hook=factory, encoding="utf-8")
self.assertEqual(repr(type(feature)),
"")
self.assertEqual(feature.id, '1')
self.assertEqual(feature.properties['title'], 'Feature 1')
self.assertEqual(feature.properties['summary'], 'The first feature')
self.assertEqual(feature.properties['link'],
'http://example.org/features/1')
self.assertEqual(geojson.dumps(feature.geometry, sort_keys=True),
'{"coordinates": [53.0, -4.0], "type": "Point"}')
def test_feature_collection_to_multi_polygon_nodissolve(self):
# arrange
grid_json = get_canned_json("test_grid.json")
grid_dto = GridDTO(grid_json)
expected = geojson.loads(json.dumps(get_canned_json("multi_polygon.json")))
aoi_geojson = geojson.loads(json.dumps(grid_dto.area_of_interest))
# act
result = GridService.merge_to_multi_polygon(aoi_geojson, False)
# assert
self.assertEqual(str(expected), str(result))
def _raises_on_dump(self, unstrict):
with self.assertRaises(ValueError):
geojson.dumps(unstrict)
def test_crs_decode(self):
dumped = geojson.dumps(self.crs)
actual = geojson.loads(dumped)
self.assertEqual(actual, self.crs)
def test_featurecollection(self):
p1 = geojson.Feature(geometry=geojson.Point((-115.11, 37.11)))
p2 = geojson.Feature(geometry=geojson.Point((-115.22, 37.22)))
itr = coords(geojson.FeatureCollection([p1, p2]))
pairs = list(itr)
self.assertEqual(pairs[0], (-115.11, 37.11))
self.assertEqual(pairs[1], (-115.22, 37.22))
def test_valid_jsonobject(self):
point = geojson.Point((-10.52, 2.33))
self.assertEqual(point.is_valid, True)
def test_invalid_geometrycollection(self):
point = geojson.Point((10, 20))
bad_poly = geojson.Polygon([[(2.38, 57.322), (23.194, -20.28),
(-120.43, 19.15), (25.44, -17.91)]])
geom_collection = geojson.GeometryCollection(
geometries=[point, bad_poly]
)
self.assertFalse(geom_collection.is_valid)