Пример #1
0
    def test_boolean_given_values(self):
        boolean_type = types.Boolean(
            required=False,
            default=True
        )

        blueprint = boolean_type.blueprint()
        blueprint["map_name"] = "a_b"
        boolean_meta = AttributeMetaData("is_admin", blueprint)
        self.assertEqual(boolean_meta.name, "is_admin")
        self.assertEqual(boolean_meta.map_name, "a_b")
        self.assertEqual(boolean_meta.cc, "IsAdmin")
        self.assertEqual(boolean_meta.ccif, "isAdmin")
        self.assertEqual(boolean_meta.blueprint_type, "boolean")
        self.assertEqual(boolean_meta.client_class_name, "Boolean")
        self.assertEqual(boolean_meta.required, "false")
        self.assertEqual(boolean_meta.default, "true")

        boolean_type = types.Boolean(
            required=False,
            default=False
        )

        blueprint = boolean_type.blueprint()
        blueprint["map_name"] = "a_b"
        boolean_meta = AttributeMetaData("is_admin", blueprint)
        self.assertEqual(boolean_meta.name, "is_admin")
        self.assertEqual(boolean_meta.map_name, "a_b")
        self.assertEqual(boolean_meta.cc, "IsAdmin")
        self.assertEqual(boolean_meta.ccif, "isAdmin")
        self.assertEqual(boolean_meta.blueprint_type, "boolean")
        self.assertEqual(boolean_meta.client_class_name, "Boolean")
        self.assertEqual(boolean_meta.required, "false")
        self.assertEqual(boolean_meta.default, "false")
Пример #2
0
    def test_add_filter_dependency(self):
        base = Base(template_engine=None,
                    models_definition="models.py",
                    namespace="namespace.filters",
                    output_directory="namespace/filters")
        self.assertEqual(base._dependencies, [])

        class User(types.Model):
            first_name = types.String()

        user_blueprint = User().blueprint()
        user_blueprint["map_name"] = "a"

        base.add_filter_dependency(AttributeMetaData("user", user_blueprint))
        self.assertEqual(base._dependencies, ["namespace.filters.User"])

        users_blueprint = types.Array(element_template=User()).blueprint()
        users_blueprint["map_name"] = "b"

        base.add_filter_dependency(AttributeMetaData("users", users_blueprint))
        self.assertEqual(base._dependencies, ["namespace.filters.User"])

        class Log(types.Model):
            message = types.String()

        logs_blueprint = types.Array(element_template=Log()).blueprint()
        logs_blueprint["map_name"] = "c"

        base.add_filter_dependency(AttributeMetaData("logs", logs_blueprint))
        self.assertEqual(base._dependencies,
                         ["namespace.filters.User", "namespace.filters.Log"])
Пример #3
0
    def test_add_attribute_string(self):
        base = Base(template_engine=None,
                    models_definition="models.py",
                    namespace="namespace.models",
                    output_directory="namespace/models")
        self.assertEqual(base.attribute_string, "")

        string_blueprint = types.String().blueprint()
        string_blueprint["map_name"] = "a"

        base.add_attribute_string(AttributeMetaData("string",
                                                    string_blueprint))
        self.assertEqual(base.attribute_string, "this.string_")

        class MyModel(types.Model):
            field = types.String()

        model_blueprint = MyModel().blueprint()
        model_blueprint["map_name"] = "b"

        base.add_attribute_string(AttributeMetaData("model", model_blueprint))
        self.assertEqual(base.attribute_string,
                         "this.string_ || this.model_.anyFieldsEnabled()")

        array_blueprint = types.Array(element_template=MyModel()).blueprint()
        array_blueprint["map_name"] = "c"

        base.add_attribute_string(AttributeMetaData("array", array_blueprint))
        self.assertEqual(
            base.attribute_string,
            "this.string_ || this.model_.anyFieldsEnabled() || this.array_.anyFieldsEnabled()"
        )
Пример #4
0
    def test_string_given_values(self):
        string_type = types.String(
            required=False,
            trim=False,
            default="default",
            format="[a-z]{2,8}",
            choices=["a", "b", "c"],
            min_length=2,
            max_length=8
        )

        blueprint = string_type.blueprint()
        blueprint["map_name"] = "a_b"
        string_meta = AttributeMetaData("first_name", blueprint)
        self.assertEqual(string_meta.name, "first_name")
        self.assertEqual(string_meta.map_name, "a_b")
        self.assertEqual(string_meta.cc, "FirstName")
        self.assertEqual(string_meta.ccif, "firstName")
        self.assertEqual(string_meta.blueprint_type, "string")
        self.assertEqual(string_meta.client_class_name, "String")
        self.assertEqual(string_meta.required, "false")
        self.assertEqual(string_meta.trim, "false")
        self.assertEqual(string_meta.default, "\"default\"")
        self.assertEqual(string_meta.format, "\"[a-z]{2,8}\"")
        self.assertEqual(string_meta.choices, ["a", "b", "c"])
        self.assertEqual(string_meta.min_length, 2)
        self.assertEqual(string_meta.max_length, 8)
Пример #5
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"
        ])
Пример #6
0
    def test_data_url_file_default(self):
        data_url_file_type = types.DataURLFile()

        blueprint = data_url_file_type.blueprint()
        blueprint["map_name"] = "b_a"
        data_url_file_meta = AttributeMetaData("file_download", blueprint)
        self.assertEqual(data_url_file_meta.name, "file_download")
        self.assertEqual(data_url_file_meta.map_name, "b_a")
        self.assertEqual(data_url_file_meta.cc, "FileDownload")
        self.assertEqual(data_url_file_meta.ccif, "fileDownload")
        self.assertEqual(data_url_file_meta.blueprint_type, "data_url_file")
        self.assertEqual(data_url_file_meta.client_class_name, "DataURLFile")
        self.assertEqual(data_url_file_meta.required, "true")
        self.assertEqual(data_url_file_meta.allowed_mime_types, [])
Пример #7
0
    def test_time_default(self):
        datetime_type = types.Time()

        blueprint = datetime_type.blueprint()
        blueprint["map_name"] = "a_b"
        datetime_meta = AttributeMetaData("opening_time", blueprint)
        self.assertEqual(datetime_meta.name, "opening_time")
        self.assertEqual(datetime_meta.map_name, "a_b")
        self.assertEqual(datetime_meta.cc, "OpeningTime")
        self.assertEqual(datetime_meta.ccif, "openingTime")
        self.assertEqual(datetime_meta.blueprint_type, "time")
        self.assertEqual(datetime_meta.client_class_name, "Time")
        self.assertEqual(datetime_meta.required, "true")
        self.assertEqual(datetime_meta.default, "null")
Пример #8
0
    def test_date_default(self):
        datetime_type = types.Date()

        blueprint = datetime_type.blueprint()
        blueprint["map_name"] = "a_b"
        datetime_meta = AttributeMetaData("created_date", blueprint)
        self.assertEqual(datetime_meta.name, "created_date")
        self.assertEqual(datetime_meta.map_name, "a_b")
        self.assertEqual(datetime_meta.cc, "CreatedDate")
        self.assertEqual(datetime_meta.ccif, "createdDate")
        self.assertEqual(datetime_meta.blueprint_type, "date")
        self.assertEqual(datetime_meta.client_class_name, "Date")
        self.assertEqual(datetime_meta.required, "true")
        self.assertEqual(datetime_meta.default, "null")
Пример #9
0
    def test_boolean_default(self):
        boolean_type = types.Boolean()

        blueprint = boolean_type.blueprint()
        blueprint["map_name"] = "a_b"
        boolean_meta = AttributeMetaData("is_admin", blueprint)
        self.assertEqual(boolean_meta.name, "is_admin")
        self.assertEqual(boolean_meta.map_name, "a_b")
        self.assertEqual(boolean_meta.cc, "IsAdmin")
        self.assertEqual(boolean_meta.ccif, "isAdmin")
        self.assertEqual(boolean_meta.blueprint_type, "boolean")
        self.assertEqual(boolean_meta.client_class_name, "Boolean")
        self.assertEqual(boolean_meta.required, "true")
        self.assertEqual(boolean_meta.default, "null")
Пример #10
0
    def test_model(self):
        class User(types.Model):
            first_name = types.String()

        blueprint = User().blueprint()
        blueprint["map_name"] = "b_a"
        data_url_file_meta = AttributeMetaData("my_model", blueprint)
        self.assertEqual(data_url_file_meta.name, "my_model")
        self.assertEqual(data_url_file_meta.map_name, "b_a")
        self.assertEqual(data_url_file_meta.cc, "MyModel")
        self.assertEqual(data_url_file_meta.ccif, "myModel")
        self.assertEqual(data_url_file_meta.blueprint_type, "model")
        self.assertEqual(data_url_file_meta.client_class_name, "Model")
        self.assertEqual(data_url_file_meta.required, "true")
        self.assertEqual(data_url_file_meta.model_template, "User")
Пример #11
0
    def test_float_default(self):
        float_type = types.Float()

        blueprint = float_type.blueprint()
        blueprint["map_name"] = "a_b"
        float_meta = AttributeMetaData("max_size", blueprint)
        self.assertEqual(float_meta.name, "max_size")
        self.assertEqual(float_meta.map_name, "a_b")
        self.assertEqual(float_meta.cc, "MaxSize")
        self.assertEqual(float_meta.ccif, "maxSize")
        self.assertEqual(float_meta.blueprint_type, "float")
        self.assertEqual(float_meta.client_class_name, "Float")
        self.assertEqual(float_meta.required, "true")
        self.assertEqual(float_meta.default, "null")
        self.assertEqual(float_meta.choices, "null")
        self.assertEqual(float_meta.minimum, "null")
        self.assertEqual(float_meta.maximum, "null")
Пример #12
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")
Пример #13
0
    def test_data_url_file_given_values(self):
        data_url_file_type = types.DataURLFile(
            required=False,
            allowed_mime_types=["text/plain"]
        )

        blueprint = data_url_file_type.blueprint()
        blueprint["map_name"] = "b_a"
        data_url_file_meta = AttributeMetaData("file_download", blueprint)
        self.assertEqual(data_url_file_meta.name, "file_download")
        self.assertEqual(data_url_file_meta.map_name, "b_a")
        self.assertEqual(data_url_file_meta.cc, "FileDownload")
        self.assertEqual(data_url_file_meta.ccif, "fileDownload")
        self.assertEqual(data_url_file_meta.blueprint_type, "data_url_file")
        self.assertEqual(data_url_file_meta.client_class_name, "DataURLFile")
        self.assertEqual(data_url_file_meta.required, "false")
        self.assertEqual(data_url_file_meta.allowed_mime_types, ["text/plain"])
Пример #14
0
    def test_time_given_values(self):
        datetime_type = types.Time(
            required=False,
            default=types.Time.NOW
        )

        blueprint = datetime_type.blueprint()
        blueprint["map_name"] = "a_b"
        datetime_meta = AttributeMetaData("opening_time", blueprint)
        self.assertEqual(datetime_meta.name, "opening_time")
        self.assertEqual(datetime_meta.map_name, "a_b")
        self.assertEqual(datetime_meta.cc, "OpeningTime")
        self.assertEqual(datetime_meta.ccif, "openingTime")
        self.assertEqual(datetime_meta.blueprint_type, "time")
        self.assertEqual(datetime_meta.client_class_name, "Time")
        self.assertEqual(datetime_meta.required, "false")
        self.assertEqual(datetime_meta.default, "prestans.types.Time.NOW")
Пример #15
0
    def test_date_given_values(self):
        datetime_type = types.Date(
            required=False,
            default=types.Date.TODAY
        )

        blueprint = datetime_type.blueprint()
        blueprint["map_name"] = "a_b"
        datetime_meta = AttributeMetaData("created_date", blueprint)
        self.assertEqual(datetime_meta.name, "created_date")
        self.assertEqual(datetime_meta.map_name, "a_b")
        self.assertEqual(datetime_meta.cc, "CreatedDate")
        self.assertEqual(datetime_meta.ccif, "createdDate")
        self.assertEqual(datetime_meta.blueprint_type, "date")
        self.assertEqual(datetime_meta.client_class_name, "Date")
        self.assertEqual(datetime_meta.required, "false")
        self.assertEqual(datetime_meta.default, "prestans.types.Date.TODAY")
Пример #16
0
    def test_array_basic_type(self):
        array = types.Array(element_template=types.String(default="default"))

        blueprint = array.blueprint()
        blueprint["map_name"] = "b_a"
        array_meta = AttributeMetaData("user_tags", blueprint)
        self.assertEqual(array_meta.name, "user_tags")
        self.assertEqual(array_meta.map_name, "b_a")
        self.assertEqual(array_meta.cc, "UserTags")
        self.assertEqual(array_meta.ccif, "userTags")
        self.assertEqual(array_meta.blueprint_type, "array")
        self.assertEqual(array_meta.client_class_name, "Array")
        self.assertEqual(array_meta.required, "true")
        self.assertEqual(array_meta.min_length, "null")
        self.assertEqual(array_meta.max_length, "null")
        self.assertFalse(array_meta.element_template_is_model)
        self.assertEqual(array_meta.element_template.blueprint_type, "string")
        self.assertEqual(array_meta.element_template.default, "\"default\"")
Пример #17
0
    def test_string_default(self):
        string_type = types.String()

        blueprint = string_type.blueprint()
        blueprint["map_name"] = "a_b"
        string_meta = AttributeMetaData("first_name", blueprint)
        self.assertEqual(string_meta.name, "first_name")
        self.assertEqual(string_meta.map_name, "a_b")
        self.assertEqual(string_meta.cc, "FirstName")
        self.assertEqual(string_meta.ccif, "firstName")
        self.assertEqual(string_meta.blueprint_type, "string")
        self.assertEqual(string_meta.client_class_name, "String")
        self.assertEqual(string_meta.required, "true")
        self.assertEqual(string_meta.trim, "true")
        self.assertEqual(string_meta.default, "null")
        self.assertEqual(string_meta.format, "null")
        self.assertEqual(string_meta.choices, "null")
        self.assertEqual(string_meta.min_length, "null")
        self.assertEqual(string_meta.max_length, "null")
Пример #18
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)
Пример #19
0
    def test_float_given_values(self):
        float_type = types.Float(
            required=False,
            default=3.3,
            choices=[1.1, 3.3, 5.5],
            minimum=1.1,
            maximum=5.5
        )

        blueprint = float_type.blueprint()
        blueprint["map_name"] = "a_b"
        float_meta = AttributeMetaData("max_size", blueprint)
        self.assertEqual(float_meta.name, "max_size")
        self.assertEqual(float_meta.map_name, "a_b")
        self.assertEqual(float_meta.cc, "MaxSize")
        self.assertEqual(float_meta.ccif, "maxSize")
        self.assertEqual(float_meta.blueprint_type, "float")
        self.assertEqual(float_meta.client_class_name, "Float")
        self.assertEqual(float_meta.required, "false")
        self.assertEqual(float_meta.default, 3.3)
        self.assertEqual(float_meta.choices, [1.1, 3.3, 5.5])
        self.assertEqual(float_meta.minimum, 1.1)
        self.assertEqual(float_meta.maximum, 5.5)
Пример #20
0
    def test_array_model(self):
        class User(types.Model):
            first_name = types.String(required=False)

        array = types.Array(
            min_length=1,
            max_length=10,
            element_template=User()
        )

        blueprint = array.blueprint()
        blueprint["map_name"] = "b_a"
        array_meta = AttributeMetaData("user_records", blueprint)
        self.assertEqual(array_meta.name, "user_records")
        self.assertEqual(array_meta.map_name, "b_a")
        self.assertEqual(array_meta.cc, "UserRecords")
        self.assertEqual(array_meta.ccif, "userRecords")
        self.assertEqual(array_meta.blueprint_type, "array")
        self.assertEqual(array_meta.client_class_name, "Array")
        self.assertEqual(array_meta.required, "true")
        self.assertEqual(array_meta.min_length, 1)
        self.assertEqual(array_meta.max_length, 10)
        self.assertTrue(array_meta.element_template_is_model)
        self.assertEqual(array_meta.element_template, "User")