def test_insert_file(self):
        test_file = open(get_file_path("files/file/insert.skel"))
        test_text = test_file.read()

        file_object = File(test_text)
        file_object.insert_file("insert", get_file_path("files/file/insert.inc"))

        result = open(get_file_path("files/file/insert_file_result.skel")).read()

        assert file_object.text == result
    def test_remove_modelines_custom_number(self):
        test_file = open(get_file_path("files/file/modelines.skel"))
        test_text = test_file.read()

        result = ""

        file_object = File(test_text, remove_modelines=0)

        file_object.remove_modelines(n=10)

        assert file_object.text == result
    def test_remove_modelines(self):
        test_file = open(get_file_path("files/file/modelines.skel"))
        test_text = test_file.read()

        result = "\n".join(test_text.split("\n")[5:])

        file_object = File(test_text, remove_modelines=0)

        file_object.remove_modelines()

        assert file_object.text == result
Ejemplo n.º 4
0
    def get_generator(self):
        generator_h_skel_file = open(
            self.script_dir +
            "text_includes/auto_function_generator.h.skel").read()
        generator_cpp_skel_file = open(
            self.script_dir +
            "text_includes/auto_function_generator.cpp.skel").read()

        replacements = [["replace_text", "name", self.get_name()]]

        generator_h_file = File(generator_h_skel_file, replacements)
        generator_cpp_file = File(generator_cpp_skel_file, replacements)

        return [generator_h_file.text, generator_cpp_file.text]
Ejemplo n.º 5
0
    def test_init(self):
        test_file = open(get_file_path("files/file/init.skel"))
        test_text = test_file.read()

        file_object = File(test_text)

        assert file_object.text == test_text
        assert file_object.init_text == test_text
Ejemplo n.º 6
0
    def get_class(self):
        class_h_skel_file = open(self.script_dir + "text_includes/auto_function_class.h.skel")
        class_h_file = File(class_h_skel_file.read())

        class_h_file.replace_text("name", self.get_name())

        for var in self.get_section("global").split("\n"):
            if var != "":
                class_h_file.insert_text("vars", var + ";")

        if len(self.get_args()) == 0:
            class_cpp_skel_file = open(self.script_dir + "text_includes/auto_function_class_no_args.cpp.skel")
        else:
            class_cpp_skel_file = open(self.script_dir + "text_includes/auto_function_class.cpp.skel")
        class_cpp_file = File(class_cpp_skel_file.read())

        class_cpp_file.replace_text("name", self.get_name())
        class_cpp_file.replace_text("init_code", self.get_section_code("init"))
        class_cpp_file.replace_text("periodic_code", self.get_section_code("periodic"))

        return [class_h_file.text, class_cpp_file.text]
Ejemplo n.º 7
0
def generate_auto_functions(auto_function_objects, h_file_name):
    replacements = [
        ["replace_file", "warning", get_script_dir() + "text_includes/warning.inc"]
    ]
    includes = []

    auto_classes_h_file = File(open(get_script_dir() + "text_includes/auto_classes.h.skel").read(), replacements)
    auto_classes_cpp_file = File(open(get_script_dir() + "text_includes/auto_classes.cpp.skel").read(), replacements)

    auto_classes_cpp_file.replace_text("h_file", h_file_name)

    for auto_function in auto_function_objects:
        includes += auto_function.get_includes()
        auto_classes_h_file.insert_text("classes", auto_function.get_class()[0])
        auto_classes_cpp_file.insert_text("classes", auto_function.get_class()[1])
        auto_classes_h_file.insert_text("generators", auto_function.get_generator()[0])
        auto_classes_cpp_file.insert_text("generators", auto_function.get_generator()[1])
        auto_function_arg_string = "-".join([argl[0] for argl in auto_function.get_args()])
        auto_classes_cpp_file.insert_text("addgenerators", File(open(get_script_dir() + "text_includes/add_to_return_vector.skel").read(), [["replace_text", "name", auto_function.get_name()], ["replace_text", "args", auto_function_arg_string]]).text)

    includes = ["#include " + name for name in includes]
    auto_classes_h_file.insert_text("include", "\n".join(includes))
    auto_classes_cpp_file.replace_file("convert", get_script_dir() + "text_includes/ls_convert.inc")

    return [auto_classes_h_file.text, auto_classes_cpp_file.text]
Ejemplo n.º 8
0
def generate_auto_functions(auto_function_objects, h_file_name):
    replacements = [[
        "replace_file", "warning",
        get_script_dir() + "text_includes/warning.inc"
    ]]
    includes = []

    auto_classes_h_file = File(
        open(get_script_dir() + "text_includes/auto_classes.h.skel").read(),
        replacements)
    auto_classes_cpp_file = File(
        open(get_script_dir() + "text_includes/auto_classes.cpp.skel").read(),
        replacements)

    auto_classes_cpp_file.replace_text("h_file", h_file_name)

    for auto_function in auto_function_objects:
        includes += auto_function.get_includes()
        auto_classes_h_file.insert_text("classes",
                                        auto_function.get_class()[0])
        auto_classes_cpp_file.insert_text("classes",
                                          auto_function.get_class()[1])
        auto_classes_h_file.insert_text("generators",
                                        auto_function.get_generator()[0])
        auto_classes_cpp_file.insert_text("generators",
                                          auto_function.get_generator()[1])
        auto_function_arg_string = "-".join(
            [argl[0] for argl in auto_function.get_args()])
        auto_classes_cpp_file.insert_text(
            "addgenerators",
            File(
                open(get_script_dir() +
                     "text_includes/add_to_return_vector.skel").read(),
                [["replace_text", "name",
                  auto_function.get_name()],
                 ["replace_text", "args", auto_function_arg_string]]).text)

    includes = ["#include " + name for name in includes]
    auto_classes_h_file.insert_text("include", "\n".join(includes))
    auto_classes_cpp_file.replace_file(
        "convert",
        get_script_dir() + "text_includes/ls_convert.inc")

    return [auto_classes_h_file.text, auto_classes_cpp_file.text]
Ejemplo n.º 9
0
    def get_class(self):
        class_h_skel_file = open(self.script_dir +
                                 "text_includes/auto_function_class.h.skel")
        class_h_file = File(class_h_skel_file.read())

        class_h_file.replace_text("name", self.get_name())

        for var in self.get_section("global").split("\n"):
            if var != "":
                class_h_file.insert_text("vars", var + ";")

        if len(self.get_args()) == 0:
            class_cpp_skel_file = open(
                self.script_dir +
                "text_includes/auto_function_class_no_args.cpp.skel")
        else:
            class_cpp_skel_file = open(
                self.script_dir + "text_includes/auto_function_class.cpp.skel")
        class_cpp_file = File(class_cpp_skel_file.read())

        class_cpp_file.replace_text("name", self.get_name())
        class_cpp_file.replace_text("init_code", self.get_section_code("init"))
        class_cpp_file.replace_text("periodic_code",
                                    self.get_section_code("periodic"))

        return [class_h_file.text, class_cpp_file.text]