def test_data_is_aggregated(self): # there are 11 rows in the input file; 2 are for the same # practice/presentation and should be collapsed, and 1 is for # an UNKNONWN SURGERY (see issue #349) raw_data_path = ("frontend/tests/fixtures/commands/" + "convert_hscic_prescribing/2016_01/" + "EPD_201601.csv") gcs_path = "hscic/prescribing_v2/2016_01/EPD_201601.csv" client = StorageClient() bucket = client.get_bucket() blob = bucket.blob(gcs_path) with open(raw_data_path, "rb") as f: blob.upload_from_file(f) call_command("convert_hscic_prescribing", filename=raw_data_path) # Test that data added to prescribing table client = BQClient() sql = """SELECT * FROM {hscic}.prescribing_v2 WHERE month = TIMESTAMP('2016-01-01')""" rows = list(results_to_dicts(client.query(sql))) self.assertEqual(len(rows), 9) for row in rows: if row["practice"] == "P92042" and row[ "bnf_code"] == "0202010B0AAABAB": self.assertEqual(row["quantity"], 1288)
def test_data_is_aggregated(self): # there are 11 rows in the input file; 2 are for the same # practice/presentation and should be collapsed, and 1 is for # an UNKNONWN SURGERY (see issue #349) raw_data_path = 'frontend/tests/fixtures/commands/' +\ 'convert_hscic_prescribing/2016_01/' +\ 'Detailed_Prescribing_Information.csv' converted_data_path = 'frontend/tests/fixtures/commands/' +\ 'convert_hscic_prescribing/2016_01/' +\ 'Detailed_Prescribing_Information_formatted.CSV' gcs_path = 'hscic/prescribing/2016_01/' +\ 'Detailed_Prescribing_Information.csv' client = StorageClient() bucket = client.get_bucket() blob = bucket.blob(gcs_path) with open(raw_data_path) as f: blob.upload_from_file(f) call_command('convert_hscic_prescribing', filename=raw_data_path) # Test that data added to prescribing table client = BQClient() sql = '''SELECT * FROM {hscic}.prescribing WHERE month = TIMESTAMP('2016-01-01')''' rows = list(results_to_dicts(client.query(sql))) self.assertEqual(len(rows), 9) for row in rows: if row['practice'] == 'P92042' and \ row['bnf_code'] == '0202010B0AAABAB': self.assertEqual(row['quantity'], 1288) # Test that downloaded data is correct with open(converted_data_path) as f: rows = list(csv.reader(f)) self.assertEqual(len(rows), 9) for row in rows: if row[1] == 'P92042' and row[2] == '0202010B0AAABAB': self.assertEqual(row[6], '1288')