def test_split_geom_raise_grid_service_error_when_task_not_usable(self):
     if self.skip_tests:
         return
     with self.assertRaises(SplitServiceError):
         task_stub = Task()
         task_stub.is_square = True
         SplitService._create_split_tasks("foo", "bar", "dum", task_stub)
    def test_split_geom_returns_split_geometries(self):

        # arrange
        x = 2021
        y = 2798
        zoom = 12
        task_stub = Task()
        task_stub.is_square = True

        expected = geojson.loads(json.dumps(get_canned_json("split_task.json")))

        # act
        result = SplitService._create_split_tasks(x, y, zoom, task_stub)

        # assert
        self.assertEqual(str(expected), str(result))
    def test_split_non_square_task(self, mock_task):

        # Lock task for mapping
        task = Task.get(2, self.test_project.id)
        task.lock_task_for_mapping(self.test_user.id)

        split_task_dto = SplitTaskDTO()
        split_task_dto.user_id = self.test_user.id
        split_task_dto.project_id = self.test_project.id
        split_task_dto.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))