Exemplo n.º 1
0
    def testRemoveRowsFromSourceCube(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.removeRowsFromSourceCube(cubeSet, {"dimensions.State": "CA"})

        cubeRows = cs.getSourceCubeRows(cubeSet)
        self.assertTrue(cubeRows.count() == 8)

        dimkeys = []
        for cubeRow in cubeRows:
            dimkeys.append(cubeRow["dimensionKey"])
        dimkeys.sort()

        self.assertTrue(dimkeys[0] == "#CustomerId:C2#ProductId:P1#State:NY#Date:2014-10-10")
        self.assertTrue(dimkeys[1] == "#CustomerId:C2#ProductId:P1#State:NY#Date:2014-10-11")
        self.assertTrue(dimkeys[2] == "#CustomerId:C2#ProductId:P1#State:NY#Date:2015-10-10")
        self.assertTrue(dimkeys[3] == "#CustomerId:C2#ProductId:P1#State:NY#Date:2015-10-11")
        self.assertTrue(dimkeys[4] == "#CustomerId:C2#ProductId:P2#State:NY#Date:2014-10-10")
        self.assertTrue(dimkeys[5] == "#CustomerId:C2#ProductId:P2#State:NY#Date:2015-10-10")
        self.assertTrue(dimkeys[6] == "#CustomerId:C3#ProductId:P1#State:MA#Date:2014-10-11")
        self.assertTrue(dimkeys[7] == "#CustomerId:C3#ProductId:P1#State:MA#Date:2015-10-11")

        os.remove(cubeSetName + ".csv")