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)
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)
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())
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))
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"])
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))
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)
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)
def test_issue_157(self): cut = PointCut("date", [2000]) cell = Cell(self.cube, [cut]) result = self.browser.aggregate(cell, drilldown=["product:category"])