def testExportAggCubesCsv(self): cubeSetName = "test-" + str(uuid.uuid4()) csvFilePath = cubeSetName + ".csv" try: shutil.copyfile("cubify/tests/testdata.csv", cubeSetName + ".csv") except Exception: shutil.copyfile("./testdata.csv", cubeSetName + ".csv") binningFileName = "cubify/tests/test_binnings.json" if os.path.isfile(binningFileName) == False: binningFileName = "./test_binnings.json" with open(binningFileName) as binnings_file: binnings = json.load(binnings_file) aggFileName = "cubify/tests/test_agg.json" if os.path.isfile(aggFileName) == False: aggFileName = "./test_agg.json" with open(aggFileName) as agg_file: aggs = json.load(agg_file) cs = CubeSetService("testdb") cubeSet = cs.createCubeSet("testOwner", cubeSetName, csvFilePath, binnings, aggs) cs.exportAggCubesToCsv(cubeSet, ".") print cubeSetName + "_binned_agg1.csv" with open(cubeSetName + "_agg_" + cubeSetName + "_binned_agg1.csv") as csvfile: reader = csv.DictReader(csvfile) fieldNames = reader.fieldnames self.assertTrue(fieldNames == ["S:ProductId", "S:Region", "N:AveragePrice", "N:AverageQty", "N:Count"]) rowNum = 0 for row in reader: rowNum += 1 self.assertTrue(rowNum == 4) with open(cubeSetName + "_agg_" + cubeSetName + "_binned_agg2.csv") as csvfile: reader = csv.DictReader(csvfile) fieldNames = reader.fieldnames self.assertTrue(fieldNames == ["S:ProductId", "N:Count", "N:TotalQty"]) rowNum = 0 for row in reader: rowNum += 1 self.assertTrue(rowNum == 2) with open(cubeSetName + "_agg_" + cubeSetName + "_binned_agg3.csv") as csvfile: reader = csv.DictReader(csvfile) fieldNames = reader.fieldnames self.assertTrue(fieldNames == ["S:ProductId", "N:AverageRevenue", "N:Count"]) rowNum = 0 for row in reader: rowNum += 1 self.assertTrue(rowNum == 2) os.remove(cubeSetName + ".csv") os.remove(cubeSetName + "_agg_" + cubeSetName + "_binned_agg1.csv") os.remove(cubeSetName + "_agg_" + cubeSetName + "_binned_agg2.csv") os.remove(cubeSetName + "_agg_" + cubeSetName + "_binned_agg3.csv")