def test_perfect_empty_schema_property(self): """Validate the perfection of an empty schema property.""" candidate_schema_property = meta_type.PropertySchema() self.assertEqual(10, len(candidate_schema_property)) self.assertDictEqual( { 'default': None, 'enum': None, 'member_max': None, 'member_min': None, 'member_type': None, 'max': None, 'min': None, 'regex': None, 'required': False, 'type': None }, candidate_schema_property) meta_type.perfect_property_schema(candidate_schema_property) self.assertEqual(10, len(candidate_schema_property)) self.assertDictEqual( { 'regex': None, 'member_max': None, 'enum': None, 'min': None, 'default': None, 'max': None, 'required': False, 'member_min': None, 'member_type': None, 'type': None }, candidate_schema_property)
def perfect_schema(candidate_schema): """Method to clean and perfect a given schema. The *perfect_schema* will fill in any missing schema setting for each of the :class:`ontic.meta_type.PropertySchema`. This function should be used to ensure property schema completeness. :param candidate_schema: The schema that is to be perfected. :type candidate_schema: :class:`ontic.schema_type.SchemaType` :rtype: None """ if candidate_schema is None: raise ValueError('"candidate_schema" must be provided.') if not isinstance(candidate_schema, SchemaType): raise ValueError('"candidate_schema" must be of SchemaType.') for property_schema in candidate_schema.values(): meta_type.perfect_property_schema(property_schema)
def test_perfect_partial_schema_property(self): """Validate the perfection of a partial schema definition.""" candidate_schema_property = meta_type.PropertySchema({ 'type': 'int', 'required': True, 'UNRECOGNIZED': 'irrelevant', }) self.assertEqual(10, len(candidate_schema_property)) self.assertDictEqual( { 'regex': None, 'member_max': None, 'enum': None, 'min': None, 'default': None, 'max': None, 'required': True, 'member_min': None, 'member_type': None, 'type': int }, candidate_schema_property) meta_type.perfect_property_schema(candidate_schema_property) self.assertEqual(10, len(candidate_schema_property)) self.assertDictEqual( { 'regex': None, 'member_max': None, 'enum': None, 'min': None, 'default': None, 'max': None, 'required': True, 'member_min': None, 'member_type': None, 'type': int }, candidate_schema_property)
def test_perfect_partial_schema_property(self): """Validate the perfection of a partial schema definition.""" candidate_schema_property = meta_type.PropertySchema( { 'type': 'int', 'required': True, 'UNRECOGNIZED': 'irrelevant', }) self.assertEqual(10, len(candidate_schema_property)) self.assertDictEqual( { 'regex': None, 'member_max': None, 'enum': None, 'min': None, 'default': None, 'max': None, 'required': True, 'member_min': None, 'member_type': None, 'type': int }, candidate_schema_property) meta_type.perfect_property_schema(candidate_schema_property) self.assertEqual(10, len(candidate_schema_property)) self.assertDictEqual( { 'regex': None, 'member_max': None, 'enum': None, 'min': None, 'default': None, 'max': None, 'required': True, 'member_min': None, 'member_type': None, 'type': int }, candidate_schema_property)