예제 #1
0
    def test_create(self):
        """Create level from a dictionary"""
        desc = "year"
        level = Level.from_metadata(desc)
        self.assertIsInstance(level, Level)
        self.assertEqual("year", level.name)
        self.assertEqual(["year"], [str(a) for a in level.attributes])

        # Test default: Attributes
        desc = {"name": "year"}
        level = Level.from_metadata(desc)
        self.assertIsInstance(level, Level)
        self.assertEqual("year", level.name)
        self.assertEqual(["year"], [str(a) for a in level.attributes])

        # Test default: Attributes
        desc = {"name": "year", "attributes": ["key"]}
        level = Level.from_metadata(desc)
        self.assertIsInstance(level, Level)
        self.assertEqual("year", level.name)
        self.assertEqual(["key"], [str(a) for a in level.attributes])
        self.assertFalse(level.has_details)

        desc = {"name": "year", "attributes": ["key", "label"]}
        level = Level.from_metadata(desc)
        self.assertTrue(level.has_details)
        self.assertEqual(["key", "label"], [str(a) for a in level.attributes])

        # Level from description with full details
        desc = {
            "name":
            "month",
            "attributes": [{
                "name": "month"
            }, {
                "name": "month_name",
                "locales": ["en", "sk"]
            }, {
                "name": "month_sname",
                "locales": ["en", "sk"]
            }]
        }

        level = Level.from_metadata(desc)
        self.assertTrue(level.has_details)
        self.assertEqual(3, len(level.attributes))
        names = [str(a) for a in level.attributes]
        self.assertEqual(["month", "month_name", "month_sname"], names)
예제 #2
0
    def test_level_inherit(self):
        desc = {"name": "product_type", "label": "Product Type"}

        level = Level.from_metadata(desc)
        self.assertEqual(1, len(level.attributes))

        attr = level.attributes[0]
        self.assertEqual("product_type", attr.name)
        self.assertEqual("Product Type", attr.label)
예제 #3
0
    def test_create(self):
        """Create level from a dictionary"""
        desc = "year"
        level = Level.from_metadata(desc)
        self.assertIsInstance(level, Level)
        self.assertEqual("year", level.name)
        self.assertEqual(["year"], [str(a) for a in level.attributes])

        # Test default: Attributes
        desc = {"name": "year"}
        level = Level.from_metadata(desc)
        self.assertIsInstance(level, Level)
        self.assertEqual("year", level.name)
        self.assertEqual(["year"], [str(a) for a in level.attributes])

        # Test default: Attributes
        desc = {"name": "year", "attributes": ["key"]}
        level = Level.from_metadata(desc)
        self.assertIsInstance(level, Level)
        self.assertEqual("year", level.name)
        self.assertEqual(["key"], [str(a) for a in level.attributes])
        self.assertFalse(level.has_details)

        desc = {"name": "year", "attributes": ["key", "label"]}
        level = Level.from_metadata(desc)
        self.assertTrue(level.has_details)
        self.assertEqual(["key", "label"], [str(a) for a in level.attributes])

        # Level from description with full details
        desc = {
            "name": "month",
            "attributes": [
                {"name": "month"},
                {"name": "month_name", "locales": ["en", "sk"]},
                {"name": "month_sname", "locales": ["en", "sk"]}
            ]
        }

        level = Level.from_metadata(desc)
        self.assertTrue(level.has_details)
        self.assertEqual(3, len(level.attributes))
        names = [str(a) for a in level.attributes]
        self.assertEqual(["month", "month_name", "month_sname"], names)
예제 #4
0
    def test_level_inherit(self):
        desc = {
            "name": "product_type",
            "label": "Product Type"
        }

        level = Level.from_metadata(desc)
        self.assertEqual(1, len(level.attributes))

        attr = level.attributes[0]
        self.assertEqual("product_type", attr.name)
        self.assertEqual("Product Type", attr.label)
예제 #5
0
    def test_key_label_attributes(self):
        """Test key and label attributes - explicit and implicit"""

        attrs = [Attribute("code")]
        level = Level("product", attrs)
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("code", str(level.label_attribute))

        attrs = [Attribute("code"), Attribute("name")]
        level = Level("product", attrs)
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("name", str(level.label_attribute))

        attrs = [Attribute("info"), Attribute("code"), Attribute("name")]
        level = Level("product", attrs, key="code",
                            label_attribute="name")
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("name", str(level.label_attribute))

        # Test key/label in full desc
        desc = {
            "name": "product",
            "attributes": ["info", "code", "name"],
            "label_attribute": "name",
            "key": "code"
        }

        level = Level.from_metadata(desc)
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("name", str(level.label_attribute))
예제 #6
0
    def test_key_label_attributes(self):
        """Test key and label attributes - explicit and implicit"""

        attrs = [Attribute("code")]
        level = Level("product", attrs)
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("code", str(level.label_attribute))

        attrs = [Attribute("code"), Attribute("name")]
        level = Level("product", attrs)
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("name", str(level.label_attribute))

        attrs = [Attribute("info"), Attribute("code"), Attribute("name")]
        level = Level("product", attrs, key="code", label_attribute="name")
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("name", str(level.label_attribute))

        # Test key/label in full desc
        desc = {
            "name": "product",
            "attributes": ["info", "code", "name"],
            "label_attribute": "name",
            "key": "code"
        }

        level = Level.from_metadata(desc)
        self.assertIsInstance(level.key, Attribute)
        self.assertEqual("code", str(level.key))
        self.assertIsInstance(level.label_attribute, Attribute)
        self.assertEqual("name", str(level.label_attribute))