class MyModel(types.Model): boolean = types.Boolean() float = types.Float() age = types.Integer(maximum=120) name = types.String() sub_model = SubModel()
def test_custom(self): boolean_array = types.Array(element_template=types.Boolean(), description="boolean") self.assertEqual(boolean_array.description, "boolean") float_array = types.Array(element_template=types.Float(), description="float") self.assertEqual(float_array.description, "float") integer_array = types.Array(element_template=types.Integer(), description="integer") self.assertEqual(integer_array.description, "integer") string_array = types.Array(element_template=types.String(), description="string") self.assertEqual(string_array.description, "string") date_array = types.Array(element_template=types.Date(), description="date") self.assertEqual(date_array.description, "date") datetime_array = types.Array(element_template=types.DateTime(), description="datetime") self.assertEqual(datetime_array.description, "datetime") time_array = types.Array(element_template=types.Date(), description="time") self.assertEqual(time_array.description, "time")
class ParentREST(types.Model): p_boolean = types.Boolean() p_float = types.Float() p_integer = types.Integer() p_string = types.String() child = ChildREST()
def test_data_type(self): self.assertTrue( types.Array(element_template=types.Boolean()).is_scalar) self.assertTrue(types.Array(element_template=types.Float()).is_scalar) self.assertTrue( types.Array(element_template=types.Integer()).is_scalar) self.assertTrue(types.Array(element_template=types.String()).is_scalar)
def test_custom(self): self.assertEqual( types.Array(element_template=types.Boolean(), max_length=1).max_length, 1) self.assertEqual( types.Array(element_template=types.Float(), max_length=2).max_length, 2) self.assertEqual( types.Array(element_template=types.Integer(), max_length=3).max_length, 3) self.assertEqual( types.Array(element_template=types.String(), max_length=4).max_length, 4) self.assertEqual( types.Array(element_template=types.Date(), max_length=5).max_length, 5) self.assertEqual( types.Array(element_template=types.DateTime(), max_length=6).max_length, 6) self.assertEqual( types.Array(element_template=types.Time(), max_length=7).max_length, 7) self.assertEqual( types.Array(element_template=types.Model(), max_length=8).max_length, 8)
def test_default(self): self.assertIsNone( types.Array(element_template=types.Boolean()).max_length) self.assertIsNone( types.Array(element_template=types.Float()).max_length) self.assertIsNone( types.Array(element_template=types.Integer()).max_length) self.assertIsNone( types.Array(element_template=types.Integer()).max_length) self.assertIsNone( types.Array(element_template=types.Date()).max_length) self.assertIsNone( types.Array(element_template=types.DateTime()).max_length) self.assertIsNone( types.Array(element_template=types.Time()).max_length) self.assertIsNone( types.Array(element_template=types.Model()).max_length)
def test_len(self): array = types.Array(element_template=types.Integer()) self.assertEqual(len(array), 0) array.append(1) self.assertEqual(len(array), 1) array.append(2) self.assertEqual(len(array), 2)
class MyModel(types.Model): boolean = types.Boolean() date = types.Date() datetime = types.DateTime() float = types.Float() integer = types.Integer() string = types.String() sub = SubModel() time = types.Time()
def test_integer_default(self): integer_type = types.Integer() integer = BasicTypeElementTemplate(integer_type.blueprint()) self.assertEqual(integer.blueprint_type, "integer") self.assertEqual(integer.client_class_name, "Integer") self.assertEqual(integer.required, "true") self.assertEqual(integer.default, "null") self.assertEqual(integer.minimum, "null") self.assertEqual(integer.maximum, "null") self.assertEqual(integer.choices, "null")
def test_data_type(self): self.assertIsNone( types.Array(element_template=types.Boolean()). attribute_rewrite_reverse_map()) self.assertIsNone( types.Array(element_template=types.Float()). attribute_rewrite_reverse_map()) self.assertIsNone( types.Array(element_template=types.Integer()). attribute_rewrite_reverse_map()) self.assertIsNone( types.Array(element_template=types.String()). attribute_rewrite_reverse_map())
class PersonREST(types.Model): first_name = types.String() last_name = types.String() short_string = types.String(max_length=10) address = AddressREST(required=False) addresses = types.Array(element_template=AddressREST()) booleans = types.Array(element_template=types.Boolean()) floats = types.Array(element_template=types.Float()) integers = types.Array(element_template=types.Integer()) strings = types.Array(element_template=types.String())
def test_add_model_dependency(self): base = Base(template_engine=None, models_definition="models.py", namespace="namespace.models", output_directory="namespace/models") self.assertEqual(base._dependencies, []) class User(types.Model): first_name = types.String() model_blueprint = User().blueprint() model_blueprint["map_name"] = "a" base.add_model_dependency(AttributeMetaData("user", model_blueprint)) self.assertEqual(base._dependencies, ["namespace.models.User"]) string_blueprint = types.String().blueprint() string_blueprint["map_name"] = "a_b" base.add_model_dependency( AttributeMetaData("first_name", string_blueprint)) self.assertEqual(base._dependencies, ["namespace.models.User", "prestans.types.String"]) array_basic = types.Array(element_template=types.String()).blueprint() array_basic["map_name"] = "c" base.add_model_dependency(AttributeMetaData("tags", array_basic)) self.assertEqual(base._dependencies, ["namespace.models.User", "prestans.types.String"]) array_model = types.Array(element_template=User()).blueprint() array_model["map_name"] = "d" base.add_model_dependency(AttributeMetaData("users", array_model)) self.assertEqual(base._dependencies, ["namespace.models.User", "prestans.types.String"]) integer_blueprint = types.Integer().blueprint() integer_blueprint["map_name"] = "e" base.add_model_dependency( AttributeMetaData("numbers", integer_blueprint)) self.assertEqual(base._dependencies, [ "namespace.models.User", "prestans.types.String", "prestans.types.Integer" ])
def test_integer_given_values(self): integer_type = types.Integer( required=False, default=3, minimum=1, maximum=5, choices=[1, 3, 5] ) integer = BasicTypeElementTemplate(integer_type.blueprint()) self.assertEqual(integer.blueprint_type, "integer") self.assertEqual(integer.client_class_name, "Integer") self.assertEqual(integer.required, "false") self.assertEqual(integer.default, 3) self.assertEqual(integer.minimum, 1) self.assertEqual(integer.maximum, 5) self.assertEqual(integer.choices, [1, 3, 5])
def test_default(self): self.assertIsNone( types.Array(element_template=types.Boolean()).description) self.assertIsNone( types.Array(element_template=types.Float()).description) self.assertIsNone( types.Array(element_template=types.Integer()).description) self.assertIsNone( types.Array(element_template=types.String()).description) self.assertIsNone( types.Array(element_template=types.Date()).description) self.assertIsNone( types.Array(element_template=types.DateTime()).description) self.assertIsNone( types.Array(element_template=types.Time()).description) self.assertIsNone( types.Array(element_template=types.Model()).description)
def test_integer_default(self): integer_type = types.Integer() blueprint = integer_type.blueprint() blueprint["map_name"] = "a_b" integer_meta = AttributeMetaData("max_size", blueprint) self.assertEqual(integer_meta.name, "max_size") self.assertEqual(integer_meta.map_name, "a_b") self.assertEqual(integer_meta.cc, "MaxSize") self.assertEqual(integer_meta.ccif, "maxSize") self.assertEqual(integer_meta.blueprint_type, "integer") self.assertEqual(integer_meta.client_class_name, "Integer") self.assertEqual(integer_meta.required, "true") self.assertEqual(integer_meta.default, "null") self.assertEqual(integer_meta.choices, "null") self.assertEqual(integer_meta.minimum, "null") self.assertEqual(integer_meta.maximum, "null")
def test_data_type(self): boolean_array = types.Array(element_template=types.Boolean()) self.assertFalse(boolean_array.get_attribute_filter()) self.assertFalse(boolean_array.get_attribute_filter(False)) self.assertTrue(boolean_array.get_attribute_filter(True)) float_array = types.Array(element_template=types.Float()) self.assertFalse(float_array.get_attribute_filter()) self.assertFalse(float_array.get_attribute_filter(False)) self.assertTrue(float_array.get_attribute_filter(True)) integer_array = types.Array(element_template=types.Integer()) self.assertFalse(integer_array.get_attribute_filter()) self.assertFalse(integer_array.get_attribute_filter(False)) self.assertTrue(integer_array.get_attribute_filter(True)) string_array = types.Array(element_template=types.String()) self.assertFalse(string_array.get_attribute_filter()) self.assertFalse(string_array.get_attribute_filter(False)) self.assertTrue(string_array.get_attribute_filter(True))
def test_given_values(self): integer_type = types.Integer( required=False, default=3, choices=[1, 3, 5], minimum=1, maximum=5 ) blueprint = integer_type.blueprint() blueprint["map_name"] = "a_b" integer_meta = AttributeMetaData("max_size", blueprint) self.assertEqual(integer_meta.name, "max_size") self.assertEqual(integer_meta.map_name, "a_b") self.assertEqual(integer_meta.cc, "MaxSize") self.assertEqual(integer_meta.ccif, "maxSize") self.assertEqual(integer_meta.blueprint_type, "integer") self.assertEqual(integer_meta.client_class_name, "Integer") self.assertEqual(integer_meta.required, "false") self.assertEqual(integer_meta.default, 3) self.assertEqual(integer_meta.choices, [1, 3, 5]) self.assertEqual(integer_meta.minimum, 1) self.assertEqual(integer_meta.maximum, 5)
class ModelWithSubAndArray(types.Model): name = types.String() age = types.Integer() tags = types.Array(element_template=types.String()) sub = SubModel()
def test_contains(self): array = types.Array(element_template=types.Integer()) self.assertFalse(1 in array) array.append(1) self.assertTrue(1 in array)
def test_getitem(self): array = types.Array(element_template=types.Integer()) self.assertRaises(IndexError, array.__getitem__, 0) array.append(1) self.assertEqual(array[0], 1)
def test_from_model_integer_array(self): integer_array = types.Array(element_template=types.Integer()) AttributeFilter.from_model(model_instance=integer_array, default_value=True)
class MyModel(types.Model): name = types.String() age = types.Integer() tags = types.Array(element_template=types.String())
class ModelWithSub(types.Model): name = types.String() age = types.Integer() sub = SubModel()
class ChildREST(types.Model): c_boolean = types.Boolean() c_float = types.Float() c_integer = types.Integer() c_string = types.String()
def test_integer_array(self): integer_array = types.Array(element_template=types.Integer()) verb_config = VerbConfig(response_template=integer_array) self.assertEqual(verb_config.response_template, integer_array)
class BasicTypesOnly(types.Model): name = types.String() age = types.Integer()
class ChildA(types.Model): child_a_name = types.String() child_a_age = types.Integer() children = types.Array(element_template=ChildB())
class ChildB(types.Model): child_b_name = types.String() child_b_age = types.Integer()
class ChildREST(types.Model): boolean = types.Boolean() float = types.Float() integer = types.Integer() string = types.String()
class ChildModel(types.Model): age = types.Integer()