def test_simplify(self): """Simplification of attribute reference (with and without details)""" level = Level("name", attributes=["name"]) dim = 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 = Level("name", attributes=["key", "name"]) dim = 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 test_create_attribute(self): """Coalesce attribute object (string or Attribute instance)""" level = Level("name", attributes=["key", "name"]) dim = Dimension("group", levels=[level]) obj = create_attribute("name") self.assertIsInstance(obj, Attribute) self.assertEqual("name", obj.name) obj = create_attribute({"name": "key"}) obj.dimension = dim self.assertIsInstance(obj, Attribute) self.assertEqual("key", obj.name) self.assertEqual(dim, obj.dimension) attr = dim.attribute("key") obj = create_attribute(attr) obj.dimension = dim self.assertIsInstance(obj, Attribute) self.assertEqual("key", obj.name) self.assertEqual(obj, attr)