def test_tasks_from_aoi_features(self): # arrange grid_json = get_canned_json('test_grid.json') grid_dto = GridDTO(grid_json) expected = geojson.loads( json.dumps(get_canned_json('tasks_from_aoi_features.json'))) # act result = GridService.tasks_from_aoi_features(grid_dto.area_of_interest) # assert self.assertEquals(str(expected), str(result))
def test_feature_collection_multi_polygon_with_zcoord_dissolve(self): # arrange project_json = get_canned_json('canned_kml_project.json') project_dto = DraftProjectDTO(project_json) expected = geojson.loads(json.dumps(get_canned_json('2d_multi_polygon.json'))) aoi_geojson = geojson.loads(json.dumps(project_dto.area_of_interest)) # act result = GridService.merge_to_multi_polygon(aoi_geojson, dissolve=True) # assert self.assertEquals(str(expected), str(result))
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.assertEquals(str(expected), str(result))
def test_get_intersecting_projects(self, get_dto_for_locale, _get_intersecting_projects, get_user_by_username, validate_bbox_area, _make_4326_polygon_from_bbox): if self.skip_tests: return # arrange _make_4326_polygon_from_bbox mock _make_4326_polygon_from_bbox.return_value = Polygon([ (34.68826225820438, -12.59912449955007), (34.68826225820438, -11.57858317689196), (32.50198296132938, -11.57858317689196), (32.50198296132938, -12.59912449955007), (34.68826225820438, -12.59912449955007) ]) # arrange validate_bbox_area mock validate_bbox_area.return_value = True # arrange get_user_by_username mock get_user_by_username.return_value = User(id=3488526) # arrange _get_intersecting_projects mock polygon = json.dumps(get_canned_json('search_bbox_feature.json')) project = Project(id=2274, status=0, default_locale='en', geometry=polygon) projects = [project] _get_intersecting_projects.return_value = projects # arrange get_dto_for_locale mock get_dto_for_locale.return_value = ProjectInfo( name='PEPFAR Kenya: Homa Bay') # arrange dto dto = ProjectSearchBBoxDTO() dto.bbox = map(float, '34.404,-1.034, 34.717,-0.624'.split(',')) dto.preferred_locale = 'en' dto.input_srid = 4326 dto.project_author = 3488526 dto.validate() # arrange expected result expected = json.dumps(get_canned_json('search_bbox_result.json')) # act result = ProjectSearchService.get_projects_geojson(dto) # assert self.assertEqual(str(expected), str(expected))
def test_trim_grid_to_aoi_clip(self): # arrange grid_json = get_canned_json('test_grid.json') grid_dto = GridDTO(grid_json) expected = geojson.loads(json.dumps(get_canned_json('clipped_feature_collection.json'))) grid_dto.clip_to_aoi = True # act result = GridService.trim_grid_to_aoi(grid_dto) # assert self.assertEquals(str(expected), str(result))
def test_raises_InvalidGeoJson_when_geometry_is_linestring(self): # arrange grid_json = get_canned_json('CHAI-Escuintla-West2.json') grid_dto = GridDTO(grid_json) grid_dto.clip_to_aoi = True # Act / Assert with self.assertRaises(InvalidGeoJson): GridService.merge_to_multi_polygon(grid_dto.area_of_interest, dissolve=True)
def test_split_geom_returns_split_geometries(self): if self.skip_tests: return # arrange x = 1010 y = 1399 zoom = 11 expected = geojson.loads(json.dumps(get_canned_json('split_task.json'))) # act result = SplitService._create_split_tasks(x, y, zoom) # assert self.assertEqual(str(expected), str(result))
def test_split_non_square_task(self, mock_task): if self.skip_tests: return # Lock task for mapping task = Task.get(2, self.test_project.id) task.lock_task_for_mapping(self.test_user.id) splitTaskDTO = SplitTaskDTO() splitTaskDTO.user_id = self.test_user.id splitTaskDTO.project_id = self.test_project.id splitTaskDTO.task_id = 2 # Split tasks expected = geojson.loads(json.dumps(get_canned_json('non_square_split_results.json'))) result = SplitService._create_split_tasks(task.x, task.y, task.zoom, task) self.assertEqual(str(expected), str(result))