Пример #1
0
    def test_check_zoom_levels(self, get_table_names, get_tile_matrix_table_zoom_levels, get_zoom_levels_table):
        gpkg = "/test/file.gpkg"
        table_names = ['test_1', 'test_2']
        get_table_names.return_value = table_names

        get_tile_matrix_table_zoom_levels.return_value = [0,1,2,3]
        get_zoom_levels_table.return_value = [0,1,2]
        returned_value = check_zoom_levels(gpkg)
        self.assertFalse(returned_value)

        get_tile_matrix_table_zoom_levels.return_value = [0, 1, 2]
        get_zoom_levels_table.return_value = [0, 1, 2]
        returned_value = check_zoom_levels(gpkg)
        self.assertTrue(returned_value)

        self.assertEqual([call(gpkg), call(gpkg)], get_table_names.mock_calls)
Пример #2
0
 def check_geopackage(self, result_uid, check_zoom=False):
     file_path = os.path.join(self.download_dir, f"{result_uid}.gpkg")
     geopackage_file = self.client.download_file(result_uid, file_path)
     self.assertTrue(os.path.isfile(geopackage_file))
     self.assertTrue(check_content_exists(geopackage_file))
     if check_zoom:
         self.assertTrue(check_zoom_levels(geopackage_file))
     os.remove(geopackage_file)
Пример #3
0
    def run_job(self, data, wait_for_run=True, run_timeout=DEFAULT_TIMEOUT):
        # include zipfile
        data['include_zipfile'] = True

        response = self.client.post(self.jobs_url,
                                    json=data,
                                    headers={'X-CSRFToken': self.csrftoken,
                                             'Referer': self.create_export_url})
        if response.status_code != 202:
            logger.error(response.content)
        self.assertEqual(response.status_code, 202)
        job = response.json()

        if not wait_for_run:
            return job

        run = self.wait_for_run(job.get('uid'), run_timeout=run_timeout)
        self.orm_job = orm_job = Job.objects.get(uid=job.get('uid'))
        self.orm_run = orm_run = orm_job.runs.last()
        date = timezone.now().strftime('%Y%m%d')

        # Get the filename for the zip, to ensure that it exists.
        for provider_task in run['provider_tasks']:
            if provider_task['name'] == 'run':
                run_provider_task = provider_task

        for task in run_provider_task['tasks']:
            if 'zip' in task['name'].lower():
                zip_result = task['result']

        assert '.zip' in zip_result['filename']

        self.assertTrue(run.get('status') == "COMPLETED")
        for provider_task in run.get('provider_tasks'):
            geopackage_url = self.get_gpkg_url(run, provider_task.get("name"))
            if not geopackage_url:
                continue
            geopackage_file = self.download_file(geopackage_url)
            self.assertTrue(os.path.isfile(geopackage_file))
            self.assertTrue(check_content_exists(geopackage_file))
            self.assertTrue(check_zoom_levels(geopackage_file))
            os.remove(geopackage_file)
        delete_response = self.client.delete(self.jobs_url + '/' + job.get('uid'),
                                             headers={'X-CSRFToken': self.csrftoken, 'Referer': self.create_export_url})
        self.assertTrue(delete_response)
        for provider_task in run.get('provider_tasks'):
            geopackage_url = self.get_gpkg_url(run, provider_task.get("name"))
            if not geopackage_url:
                continue
            geopackage_file = self.download_file(geopackage_url)
            self.assertNotTrue(os.path.isfile(geopackage_file))
            if os.path.isfile(geopackage_file):
                os.remove(geopackage_file)
        return True