Exemplo n.º 1
0
    def test_check_content_exists(self, get_table_names, get_table_count):
        gpkg = "/test/file.gpkg"
        table_names = ["test_1", "test_2"]
        get_table_names.return_value = table_names

        get_table_count.return_value = 0
        returned_value = check_content_exists(gpkg)
        self.assertFalse(returned_value)

        get_table_count.return_value = 1
        returned_value = check_content_exists(gpkg)
        self.assertTrue(returned_value)

        self.assertEqual([call(gpkg), call(gpkg)], get_table_names.mock_calls)
Exemplo n.º 2
0
    def test_check_content_exists(self, get_table_names, get_table_count):
        gpkg = "/test/file.gpkg"
        table_names = ['test_1', 'test_2']
        get_table_names.return_value = table_names

        get_table_count.return_value = 0
        returned_value = check_content_exists(gpkg)
        self.assertFalse(returned_value)

        get_table_count.return_value = 1
        returned_value = check_content_exists(gpkg)
        self.assertTrue(returned_value)

        self.assertEqual([call(gpkg), call(gpkg)], get_table_names.mock_calls)
Exemplo n.º 3
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)
Exemplo n.º 4
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
Exemplo n.º 5
0
    def test_rerun_all(self):
        """
        This test ensures that if all formats and all providers are selected
        that the test will finish then successfully rerun.
        :return:
        """
        job_data = {"csrfmiddlewaretoken": self.csrftoken, "name": "test", "description": "test",
                    "event": "test", "selection": self.selection,
                    "tags": [], "provider_tasks": [{"provider": "eventkit-integration-test-wms",
                                                    "formats": ["shp", "gpkg", "kml", "sqlite"]},
                                                   {"provider": "OpenStreetMap Data (Generic)",
                                                    "formats": ["shp", "gpkg", "kml", "sqlite"]},
                                                   {"provider": "OpenStreetMap Data (Themes)",
                                                    "formats": ["shp", "gpkg", "kml", "sqlite"]},
                                                   {"provider": "eventkit-integration-test-wmts",
                                                    "formats": ["shp", "gpkg", "kml", "sqlite"]},
                                                   {"provider": "eventkit-integration-test-arc-raster",
                                                    "formats": ["shp", "gpkg", "kml", "sqlite"]},
                                                   {"provider": "eventkit-integration-test-wfs",
                                                    "formats": ["shp", "gpkg", "kml", "sqlite"]},
                                                   {"provider": "eventkit-integration-test-wcs",
                                                    "formats": ["gpkg"]},
                                                   # {"provider": "eventkit-integration-test-arc-fs",
                                                   #  "formats": ["shp", "gpkg", "kml", "sqlite"]}
                                                   ]}
        response = self.client.post(self.jobs_url,
                                    json=job_data,
                                    headers={'X-CSRFToken': self.csrftoken,
                                             'Referer': self.create_export_url})
        self.assertEqual(response.status_code, 202)
        job = response.json()

        run = self.wait_for_run(job.get('uid'), run_timeout=DEFAULT_TIMEOUT)
        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))
            os.remove(geopackage_file)

        rerun_response = self.client.get('{0}/{1}/run'.format(self.jobs_url, job.get('uid')),
                                         headers={'X-CSRFToken': self.csrftoken,
                                                  'Referer': self.create_export_url})

        self.assertEqual(rerun_response.status_code, 202)
        rerun = self.wait_for_run(job.get('uid'), run_timeout=DEFAULT_TIMEOUT)
        self.assertTrue(rerun.get('status') == "COMPLETED")
        for provider_task in rerun.get('provider_tasks'):
            geopackage_url = self.get_gpkg_url(rerun, 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))
            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)