コード例 #1
0
    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)
コード例 #2
0
    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)