def setUpClass(cls): if 'SKIP_BQ_LOAD' not in os.environ: # Create local test data from fixtures, then upload this to a # test project in bigquery call_command('loaddata', 'frontend/tests/fixtures/ccgs.json', verbosity=0) call_command('loaddata', 'frontend/tests/fixtures/practices.json', verbosity=0) call_command('loaddata', 'frontend/tests/fixtures/practice_listsizes.json', verbosity=0) prescribing_fixture_path = os.path.join( 'frontend', 'tests', 'fixtures', 'commands', 'prescribing_bigquery_views_fixture.csv' ) client = Client('hscic') for table_name in [ 'normalised_prescribing_standard', 'normalised_prescribing_legacy']: table = client.get_or_create_table( table_name, PRESCRIBING_SCHEMA ) table.insert_rows_from_csv(prescribing_fixture_path) table = client.get_or_create_table('ccgs', CCG_SCHEMA) columns = [field.name for field in CCG_SCHEMA] table.insert_rows_from_pg(PCT, columns, ccgs_transform) table = client.get_or_create_table( 'practice_statistics', PRACTICE_STATISTICS_SCHEMA ) columns = [field.name for field in PRACTICE_STATISTICS_SCHEMA] columns[0] = 'date' columns[-1] = 'practice_id' table.insert_rows_from_pg( PracticeStatistics, columns, statistics_transform ) client = StorageClient() bucket = client.get_bucket() for blob in bucket.list_blobs(prefix='hscic/views/vw__'): blob.delete() ImportLog.objects.create( category='prescribing', current_at='2015-10-01') # Create view tables and indexes with open( 'frontend/management/commands/replace_matviews.sql', 'r') as f: with connection.cursor() as c: c.execute(f.read())
def setUpClass(cls): if 'SKIP_BQ_LOAD' not in os.environ: # Create local test data from fixtures, then upload this to a # test project in bigquery call_command('loaddata', 'frontend/tests/fixtures/orgs.json', verbosity=0) call_command('loaddata', 'frontend/tests/fixtures/practices.json', verbosity=0) call_command('loaddata', 'frontend/tests/fixtures/practice_listsizes.json', verbosity=0) client = Client('hscic') table = client.get_or_create_table('prescribing', PRESCRIBING_SCHEMA) prescribing_fixture_path = os.path.join( 'frontend', 'tests', 'fixtures', 'commands', 'prescribing_bigquery_views_fixture.csv') table.insert_rows_from_csv(prescribing_fixture_path) table = client.get_or_create_table('ccgs', CCG_SCHEMA) columns = [field.name for field in CCG_SCHEMA] table.insert_rows_from_pg(PCT, columns, ccgs_transform) table = client.get_or_create_table('practices', PRACTICE_SCHEMA) columns = [field.name for field in PRACTICE_SCHEMA] table.insert_rows_from_pg(Practice, columns) table = client.get_or_create_table('practice_statistics', PRACTICE_STATISTICS_SCHEMA) columns = [field.name for field in PRACTICE_STATISTICS_SCHEMA] columns[0] = 'date' columns[-1] = 'practice_id' table.insert_rows_from_pg(PracticeStatistics, columns, statistics_transform) sql = """ SELECT prescribing.sha AS sha, practices.ccg_id AS pct, prescribing.practice AS practice, prescribing.bnf_code AS bnf_code, prescribing.bnf_name AS bnf_name, prescribing.items AS items, prescribing.net_cost AS net_cost, prescribing.actual_cost AS actual_cost, prescribing.quantity AS quantity, prescribing.month AS month FROM {project}.{hscic}.prescribing AS prescribing INNER JOIN {project}.{hscic}.practices AS practices ON practices.code = prescribing.practice """ try: client.delete_table('normalised_prescribing_standard') except NotFound: pass client.create_table_with_view('normalised_prescribing_standard', sql, False) client = StorageClient() bucket = client.get_bucket() for blob in bucket.list_blobs(prefix='hscic/views/vw__'): blob.delete() else: assert 'BQ_NONCE' in os.environ, 'Set BQ_NONCE to reuse BQ data' ImportLog.objects.create(category='prescribing', current_at='2015-10-01') # Create view tables and indexes with open('frontend/management/commands/replace_matviews.sql') as f: with connection.cursor() as c: c.execute(f.read())