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)
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)
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)
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
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)