def test_simplify(self): """Simplification of attribute reference (with and without details)""" level = Level("name", attributes=[Attribute("name")]) dim = Dimension("group", levels=[level]) attr = dim.attribute("name") self.assertEqual("name", attr.name) # Simplified -> dimension name self.assertEqual("group.name", str(attr)) self.assertEqual("group.name", attr.ref) level = Level("name", attributes=[Attribute("key"), Attribute("name")]) dim = Dimension("group", levels=[level]) attr = dim.attribute("name") self.assertEqual("name", attr.name) self.assertEqual("group.name", str(attr)) self.assertEqual("group.name", attr.ref)
def test_create_attribute(self): """Coalesce attribute object (string or Attribute instance)""" level = Level("name", attributes=[Attribute("key"), Attribute("name")]) dim = Dimension("group", levels=[level]) obj = Attribute.from_metadata("name") self.assertIsInstance(obj, Attribute) self.assertEqual("name", obj.name) obj = Attribute.from_metadata({"name": "key"}) obj.dimension = dim self.assertIsInstance(obj, Attribute) self.assertEqual("key", obj.name) self.assertEqual(dim, obj.dimension) attr = dim.attribute("key") obj = Attribute.from_metadata(attr) obj.dimension = dim self.assertIsInstance(obj, Attribute) self.assertEqual("key", obj.name) self.assertEqual(obj, attr)