def test_create(self): """Create level from a dictionary""" desc = "year" level = create_level(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 = create_level(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 = create_level(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 = create_level(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 = create_level(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)
def test_level_inherit(self): desc = {"name": "product_type", "label": "Product Type"} level = create_level(desc) self.assertEqual(1, len(level.attributes)) attr = level.attributes[0] self.assertEqual("product_type", attr.name) self.assertEqual("Product Type", attr.label)
def test_create(self): """Create level from a dictionary""" desc = "year" level = cubes.create_level(desc) self.assertIsInstance(level, cubes.Level) self.assertEqual("year", level.name) self.assertEqual(["year"], [str(a) for a in level.attributes]) # Test default: Attributes desc = {"name": "year"} level = cubes.create_level(desc) self.assertIsInstance(level, cubes.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 = cubes.create_level(desc) self.assertIsInstance(level, cubes.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 = cubes.create_level(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 = cubes.create_level(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)
def test_level_inherit(self): desc = { "name": "product_type", "label": "Product Type" } level = cubes.create_level(desc) self.assertEqual(1, len(level.attributes)) attr = level.attributes[0] self.assertEqual("product_type", attr.name) self.assertEqual("Product Type", attr.label)
def test_key_label_attributes(self): """Test key and label attributes - explicit and implicit""" attrs = cubes.attribute_list(["code"]) level = cubes.Level("product", attrs) self.assertIsInstance(level.key, cubes.Attribute) self.assertEqual("code", str(level.key)) self.assertIsInstance(level.label_attribute, cubes.Attribute) self.assertEqual("code", str(level.label_attribute)) attrs = cubes.attribute_list(["code", "name"]) level = cubes.Level("product", attrs) self.assertIsInstance(level.key, cubes.Attribute) self.assertEqual("code", str(level.key)) self.assertIsInstance(level.label_attribute, cubes.Attribute) self.assertEqual("name", str(level.label_attribute)) attrs = cubes.attribute_list(["info", "code", "name"]) level = cubes.Level("product", attrs, key="code", label_attribute="name") self.assertIsInstance(level.key, cubes.Attribute) self.assertEqual("code", str(level.key)) self.assertIsInstance(level.label_attribute, cubes.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 = cubes.create_level(desc) self.assertIsInstance(level.key, cubes.Attribute) self.assertEqual("code", str(level.key)) self.assertIsInstance(level.label_attribute, cubes.Attribute) self.assertEqual("name", str(level.label_attribute))