def testPerformAggregation(self): cubeSetName = 'test-' + str(uuid.uuid4()) csvFileName = cubeSetName + '.csv' shutil.copyfile('testdata.csv', cubeSetName + '.csv') with open('test_binnings.json') as binnings_file: binnings = json.load(binnings_file) with open('test_agg.json') as agg_file: aggs = json.load(agg_file) cs = CubeSetService('testdb') cs.createCubeSet("testOwner", cubeSetName, cubeSetName, csvFileName, binnings, None) cs.performAggregation(cubeSetName, aggs) agg = aggs[0] aggCubeCells = cs.getAggregatedCubeCells(cubeSetName, agg['name']) self.assertTrue (aggCubeCells.count(False) == 4) for aggCubeCell in aggCubeCells: self.assertTrue(len(aggCubeCell['dimensions']) == 2) print aggCubeCell print '---------' agg = aggs[1] aggCubeCells = cs.getAggregatedCubeCells(cubeSetName, agg['name']) self.assertTrue (aggCubeCells.count(False) == 2) for aggCubeCell in aggCubeCells: self.assertTrue(len(aggCubeCell['dimensions']) == 1) print aggCubeCell print '---------' agg = aggs[2] aggCubeCells = cs.getAggregatedCubeCells(cubeSetName, agg['name']) self.assertTrue (aggCubeCells.count(False) == 2) for aggCubeCell in aggCubeCells: self.assertTrue(len(aggCubeCell['dimensions']) == 1) print aggCubeCell print '---------' os.remove(cubeSetName + '.csv')
def testAddCellsToSourceCube(self): cubeSetName = 'test-' + str(uuid.uuid4()) csvFileName = cubeSetName + '.csv' shutil.copyfile('testdata.csv', cubeSetName + '.csv') with open('test_binnings.json') as binnings_file: binnings = json.load(binnings_file) with open('test_agg.json') as agg_file: aggs = json.load(agg_file) cs = CubeSetService('testdb') cs.createCubeSet("testOwner", cubeSetName, cubeSetName, csvFileName, binnings, aggs) cs.addCellsToSourceCube(cubeSetName, 'testdataIncremental.csv') sourceCubeCells = cs.getSourceCubeCells(cubeSetName) self.assertTrue(sourceCubeCells.count() == 21) binnedCubeCells = cs.getBinnedCubeCells(cubeSetName) dimkeys = [] for binnedCubeCell in binnedCubeCells: dimkeys.append(binnedCubeCell['dimensionKey']) dimkeys.sort() self.assertTrue(dimkeys[0] == '#CustomerId:C1#PriceBin:0-5#ProductId:P1#QtyBin:0-5#Region:West#State:CA#Year:Year2014#Date:2014-10-11') self.assertTrue(dimkeys[1] == '#CustomerId:C1#PriceBin:0-5#ProductId:P1#QtyBin:0-5#Region:West#State:CA#Year:Year2015#Date:2015-10-11') self.assertTrue(dimkeys[2] == '#CustomerId:C1#PriceBin:0-5#ProductId:P1#QtyBin:0-5#Region:West#State:CA#Year:Year2016#Date:2016-10-11') self.assertTrue(dimkeys[3] == '#CustomerId:C1#PriceBin:10+#ProductId:P1#QtyBin:0-5#Region:West#State:CA#Year:Year2014#Date:2014-10-10') self.assertTrue(dimkeys[4] == '#CustomerId:C1#PriceBin:10+#ProductId:P1#QtyBin:0-5#Region:West#State:CA#Year:Year2015#Date:2015-10-10') self.assertTrue(dimkeys[5] == '#CustomerId:C1#PriceBin:10+#ProductId:P1#QtyBin:0-5#Region:West#State:CA#Year:Year2016#Date:2016-10-10') self.assertTrue(dimkeys[6] == '#CustomerId:C1#PriceBin:10+#ProductId:P2#QtyBin:0-5#Region:West#State:CA#Year:Year2014#Date:2014-10-11') self.assertTrue(dimkeys[7] == '#CustomerId:C1#PriceBin:10+#ProductId:P2#QtyBin:0-5#Region:West#State:CA#Year:Year2015#Date:2015-10-11') self.assertTrue(dimkeys[8] == '#CustomerId:C1#PriceBin:10+#ProductId:P2#QtyBin:0-5#Region:West#State:CA#Year:Year2016#Date:2016-10-11') self.assertTrue(dimkeys[9] == '#CustomerId:C2#PriceBin:0-5#ProductId:P1#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2014#Date:2014-10-11') self.assertTrue(dimkeys[10] == '#CustomerId:C2#PriceBin:0-5#ProductId:P1#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2015#Date:2015-10-11') self.assertTrue(dimkeys[11] == '#CustomerId:C2#PriceBin:0-5#ProductId:P1#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2016#Date:2016-10-11') self.assertTrue(dimkeys[12] == '#CustomerId:C2#PriceBin:10+#ProductId:P1#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2014#Date:2014-10-10') self.assertTrue(dimkeys[13] == '#CustomerId:C2#PriceBin:10+#ProductId:P1#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2015#Date:2015-10-10') self.assertTrue(dimkeys[14] == '#CustomerId:C2#PriceBin:10+#ProductId:P1#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2016#Date:2016-10-10') self.assertTrue(dimkeys[15] == '#CustomerId:C2#PriceBin:5-10#ProductId:P2#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2014#Date:2014-10-10') self.assertTrue(dimkeys[16] == '#CustomerId:C2#PriceBin:5-10#ProductId:P2#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2015#Date:2015-10-10') self.assertTrue(dimkeys[17] == '#CustomerId:C2#PriceBin:5-10#ProductId:P2#QtyBin:0-5#Region:NorthEast#State:NY#Year:Year2016#Date:2016-10-10') self.assertTrue(dimkeys[18] == '#CustomerId:C3#PriceBin:10+#ProductId:P1#QtyBin:5+#Region:NorthEast#State:MA#Year:Year2014#Date:2014-10-11') self.assertTrue(dimkeys[19] == '#CustomerId:C3#PriceBin:10+#ProductId:P1#QtyBin:5+#Region:NorthEast#State:MA#Year:Year2015#Date:2015-10-11') self.assertTrue(dimkeys[20] == '#CustomerId:C3#PriceBin:10+#ProductId:P1#QtyBin:5+#Region:NorthEast#State:MA#Year:Year2016#Date:2016-10-11') agg = aggs[0] aggCubeCells = cs.getAggregatedCubeCells(cubeSetName, agg['name']) self.assertTrue (aggCubeCells.count(False) == 4) for aggCubeCell in aggCubeCells: self.assertTrue(len(aggCubeCell['dimensions']) == 2) print aggCubeCell print '---------' agg = aggs[1] aggCubeCells = cs.getAggregatedCubeCells(cubeSetName, agg['name']) self.assertTrue (aggCubeCells.count(False) == 2) for aggCubeCell in aggCubeCells: self.assertTrue(len(aggCubeCell['dimensions']) == 1) print aggCubeCell print '---------' agg = aggs[2] aggCubeCells = cs.getAggregatedCubeCells(cubeSetName, agg['name']) self.assertTrue (aggCubeCells.count(False) == 2) for aggCubeCell in aggCubeCells: self.assertTrue(len(aggCubeCell['dimensions']) == 1) print aggCubeCell print '---------' os.remove(cubeSetName + '.csv')