Beispiel #1
0
    def test_hierarchy_compatibility(self):
        cut = PointCut("date", [2000])
        cell = Cell(self.cube, [cut])

        with self.assertRaises(HierarchyError):
            self.browser.aggregate(cell, drilldown=[("date", "yqmd", None)])

        cut = PointCut("date", [2000], hierarchy="yqmd")
        cell = Cell(self.cube, [cut])
        result = self.browser.aggregate(cell,
                                        drilldown=[("date", "yqmd", None)])

        self.assertEqual(4, result.total_cell_count)

        cut = PointCut("date", [2000], hierarchy="yqmd")
        cell = Cell(self.cube, [cut])
        self.assertRaises(HierarchyError,
                          self.browser.aggregate,
                          cell,
                          drilldown=[("date", "ywd", None)])

        cut = PointCut("date", [2000], hierarchy="ywd")
        cell = Cell(self.cube, [cut])
        result = self.browser.aggregate(cell,
                                        drilldown=[("date", "ywd", None)])

        self.assertEqual(54, result.total_cell_count)
Beispiel #2
0
    def test_cut_details(self):
        cut = PointCut("date", [2012])
        details = self.browser.cut_details(cut)
        self.assertEqual([{
            "date.year": 2012,
            "_key": 2012,
            "_label": 2012
        }], details)

        cut = PointCut("date", [2013])
        details = self.browser.cut_details(cut)
        self.assertEqual(None, details)

        cut = PointCut("date", [2012, 3])
        details = self.browser.cut_details(cut)
        self.assertEqual([{
            "date.year": 2012,
            "_key": 2012,
            "_label": 2012
        }, {
            "date.month_name": "March",
            "date.month_sname": "Mar",
            "date.month": 3,
            "_key": 3,
            "_label": "March"
        }], details)
Beispiel #3
0
 def test_cut_depth(self):
     dim = self.cube.dimension("date")
     self.assertEqual(1, PointCut(dim, [1]).level_depth())
     self.assertEqual(3, PointCut(dim, [1, 1, 1]).level_depth())
     self.assertEqual(1, RangeCut(dim, [1], [1]).level_depth())
     self.assertEqual(3, RangeCut(dim, [1, 1, 1], [1]).level_depth())
     self.assertEqual(1, SetCut(dim, [[1], [1]]).level_depth())
     self.assertEqual(3, SetCut(dim, [[1], [1], [1, 1, 1]]).level_depth())
Beispiel #4
0
    def test_cell_details(self):
        cell = Cell(self.cube, [PointCut("date", [2012])])
        details = self.browser.cell_details(cell)
        self.assertEqual(1, len(details))

        cell = Cell(self.cube, [PointCut("product", [10])])
        details = self.browser.cell_details(cell)
        self.assertEqual(1, len(details))
Beispiel #5
0
    def test_cell(self):
        cell = Cell(self.cube)
        result = self.browser.aggregate(cell)
        self.assertEqual(366, result.summary["fact_count"])

        cut = PointCut("date", [2000, 2])
        cell = Cell(self.cube, [cut])
        result = self.browser.aggregate(cell)
        self.assertEqual(29, result.summary["fact_count"])

        cut = PointCut("date", [2000, 2], hierarchy="ywd")
        cell = Cell(self.cube, [cut])
        result = self.browser.aggregate(cell)
        self.assertEqual(7, result.summary["fact_count"])

        cut = PointCut("date", [2000, 1], hierarchy="yqmd")
        cell = Cell(self.cube, [cut])
        result = self.browser.aggregate(cell)
        self.assertEqual(91, result.summary["fact_count"])
Beispiel #6
0
    def test_aggregate_condition(self):
        cut = PointCut("date", [2012])
        cell = Cell(self.cube, [cut])
        result = self.browser.aggregate(cell)

        self.assertIsNotNone(result.summary)
        self.assertEqual(1, len(result.summary.keys()))
        self.assertEqual("amount_sum", list(result.summary.keys())[0])
        self.assertEqual(550, result.summary["amount_sum"])

        cells = list(result.cells)
        self.assertEqual(0, len(cells))
Beispiel #7
0
    def test_implicit_level(self):
        cut = PointCut("date", [2000])
        cell = Cell(self.cube, [cut])

        result = self.browser.aggregate(cell, drilldown=["date"])
        self.assertEqual(12, result.total_cell_count)
        result = self.browser.aggregate(cell, drilldown=["date:month"])
        self.assertEqual(12, result.total_cell_count)

        result = self.browser.aggregate(cell,
                                        drilldown=[("date", None, "month")])
        self.assertEqual(12, result.total_cell_count)

        result = self.browser.aggregate(cell,
                                        drilldown=[("date", None, "day")])
        self.assertEqual(366, result.total_cell_count)
Beispiel #8
0
    def test_levels_from_drilldown(self):
        cell = Cell(self.cube)
        dim = self.cube.dimension("date")
        l_year = dim.level("year")
        l_month = dim.level("month")
        l_day = dim.level("day")

        drilldown = [("date", None, "year")]
        result = levels_from_drilldown(cell, drilldown)
        self.assertEqual(1, len(result))

        dd = result[0]
        self.assertEqual(dim, dd.dimension)
        self.assertEqual(dim.hierarchy(), dd.hierarchy)
        self.assertSequenceEqual([l_year], dd.levels)
        self.assertEqual(["date.year"], dd.keys)

        # Try "next level"

        cut = PointCut("date", [2010])
        cell = Cell(self.cube, [cut])

        drilldown = [("date", None, "year")]
        result = levels_from_drilldown(cell, drilldown)
        self.assertEqual(1, len(result))
        dd = result[0]
        self.assertEqual(dim, dd.dimension)
        self.assertEqual(dim.hierarchy(), dd.hierarchy)
        self.assertSequenceEqual([l_year], dd.levels)
        self.assertEqual(["date.year"], dd.keys)

        drilldown = ["date"]
        result = levels_from_drilldown(cell, drilldown)
        self.assertEqual(1, len(result))
        dd = result[0]
        self.assertEqual(dim, dd.dimension)
        self.assertEqual(dim.hierarchy(), dd.hierarchy)
        self.assertSequenceEqual([l_year, l_month], dd.levels)
        self.assertEqual(["date.year", "date.month"], dd.keys)

        # Try with range cell

        # cut = RangeCut("date", [2009], [2010])
        # cell = Cell(self.cube, [cut])

        # drilldown = ["date"]
        # expected = [(dim, dim.hierarchy(), [l_year, l_month])]
        # self.assertEqual(expected, levels_from_drilldown(cell, drilldown))

        # drilldown = [("date", None, "year")]
        # expected = [(dim, dim.hierarchy(), [l_year])]
        # self.assertEqual(expected, levels_from_drilldown(cell, drilldown))

        # cut = RangeCut("date", [2009], [2010, 1])
        # cell = Cell(self.cube, [cut])

        # drilldown = ["date"]
        # expected = [(dim, dim.hierarchy(), [l_year, l_month, l_day])]
        # self.assertEqual(expected, levels_from_drilldown(cell, drilldown))

        # Try "last level"

        cut = PointCut("date", [2010, 1, 2])
        cell = Cell(self.cube, [cut])

        drilldown = [("date", None, "day")]
        result = levels_from_drilldown(cell, drilldown)
        dd = result[0]
        self.assertSequenceEqual([l_year, l_month, l_day], dd.levels)
        self.assertEqual(["date.year", "date.month", "date.id"], dd.keys)

        drilldown = ["date"]
        with self.assertRaisesRegex(HierarchyError, "has only 3 levels"):
            levels_from_drilldown(cell, drilldown)
Beispiel #9
0
 def test_issue_157(self):
     cut = PointCut("date", [2000])
     cell = Cell(self.cube, [cut])
     result = self.browser.aggregate(cell, drilldown=["product:category"])