def test_simplify(self): """Simplification of attribute reference (with and without details)""" level = cubes.Level("name", attributes=["name"]) dim = cubes.Dimension("group", levels=[level]) attr = dim.attribute("name") self.assertEqual("name", attr.name) self.assertEqual("name", str(attr)) self.assertEqual("group", attr.ref()) self.assertEqual("group.name", attr.ref(simplify=False)) self.assertEqual("group", attr.ref(simplify=True)) level = cubes.Level("name", attributes=["key", "name"]) dim = cubes.Dimension("group", levels=[level]) attr = dim.attribute("name") self.assertEqual("name", attr.name) self.assertEqual("name", str(attr)) self.assertEqual("group.name", attr.ref()) self.assertEqual("group.name", attr.ref(simplify=False)) self.assertEqual("group.name", attr.ref(simplify=True))
def setUp(self): self.levels = [ cubes.Level("year", attributes=["year"]), cubes.Level("month", attributes=["month", "month_name", "month_sname"]), cubes.Level("day", attributes=["day"]), cubes.Level("week", attributes=["week"]) ] self.level_names = [level.name for level in self.levels] self.dimension = cubes.Dimension("date", levels=self.levels) self.hierarchy = cubes.Hierarchy("default", ["year", "month", "day"], self.dimension)
def test_coalesce_attribute(self): """Coalesce attribute object (string or Attribute instance)""" level = cubes.Level("name", attributes=["key", "name"]) dim = cubes.Dimension("group", levels=[level]) obj = cubes.coalesce_attribute("name") self.assertIsInstance(obj, cubes.Attribute) self.assertEqual("name", obj.name) obj = cubes.coalesce_attribute({"name": "key"}, dim) self.assertIsInstance(obj, cubes.Attribute) self.assertEqual("key", obj.name) self.assertEqual(dim, obj.dimension) attr = dim.attribute("key") obj = cubes.coalesce_attribute(attr) self.assertIsInstance(obj, cubes.Attribute) self.assertEqual("key", obj.name) self.assertEqual(obj, attr)
import sqlalchemy import cubes import cubes.tutorial.sql as tutorial engine = sqlalchemy.create_engine('sqlite:///:memory:') tutorial.create_table_from_csv(engine, "IBRD_Balance_Sheet__FY2010.csv", table_name="irbd_balance", fields=[("category", "string"), ("line_item", "string"), ("year", "integer"), ("amount", "integer")], create_id=True) model = cubes.Model model.add_dimension(cubes.Dimension("category")) model.add_dimension(cubes.Dimension("line_item")) model.add_dimension(cubes.Dimension("year")) cube = cubes.Cube(name="irbd_balance", model=model, dimensions=["category", "line_item", "year"], measures=["amount"]) browser = cubes.backends.sql.SQLBrowser(cube, engine.connect(), view_name="irbd_balance") cell = browser.full_cube() result = browser.aggregate(cell)