예제 #1
0
        class MyModel(types.Model):
            boolean = types.Boolean()
            float = types.Float()
            age = types.Integer(maximum=120)
            name = types.String()

            sub_model = SubModel()
예제 #2
0
    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")
예제 #3
0
        class ParentREST(types.Model):
            p_boolean = types.Boolean()
            p_float = types.Float()
            p_integer = types.Integer()
            p_string = types.String()

            child = ChildREST()
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
    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)
예제 #8
0
 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()
예제 #9
0
    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")
예제 #10
0
 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())
예제 #11
0
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())
예제 #12
0
    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"
        ])
예제 #13
0
    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])
예제 #14
0
 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)
예제 #15
0
    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")
예제 #16
0
    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))
예제 #17
0
    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)
예제 #18
0
 class ModelWithSubAndArray(types.Model):
     name = types.String()
     age = types.Integer()
     tags = types.Array(element_template=types.String())
     sub = SubModel()
예제 #19
0
    def test_contains(self):
        array = types.Array(element_template=types.Integer())
        self.assertFalse(1 in array)

        array.append(1)
        self.assertTrue(1 in array)
예제 #20
0
    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)
예제 #21
0
 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)
예제 #22
0
 class MyModel(types.Model):
     name = types.String()
     age = types.Integer()
     tags = types.Array(element_template=types.String())
예제 #23
0
 class ModelWithSub(types.Model):
     name = types.String()
     age = types.Integer()
     sub = SubModel()
예제 #24
0
 class ChildREST(types.Model):
     c_boolean = types.Boolean()
     c_float = types.Float()
     c_integer = types.Integer()
     c_string = types.String()
예제 #25
0
 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)
예제 #26
0
 class BasicTypesOnly(types.Model):
     name = types.String()
     age = types.Integer()
예제 #27
0
 class ChildA(types.Model):
     child_a_name = types.String()
     child_a_age = types.Integer()
     children = types.Array(element_template=ChildB())
예제 #28
0
 class ChildB(types.Model):
     child_b_name = types.String()
     child_b_age = types.Integer()
예제 #29
0
 class ChildREST(types.Model):
     boolean = types.Boolean()
     float = types.Float()
     integer = types.Integer()
     string = types.String()
예제 #30
0
 class ChildModel(types.Model):
     age = types.Integer()