Exemple #1
0
    def _save_configuration(self):
        self.conf_writer = None
        try:
            if bool(self.conf_sections["default"]["save"]):
                self.conf_writer = ConfWriter(
                    str(self.conf_sections["default"]["config"]))
        except ValueError:
            self.conf_writer = ConfWriter(
                str(self.conf_sections["default"]["save"]))

        if self.conf_writer is not None:
            self.conf_writer.write_sections(self.conf_sections)
Exemple #2
0
    def _save_configuration(self):
        self.conf_writer = None
        default_section = self.sections["default"]
        try:
            if bool(default_section.get("save", "false")):
                self.conf_writer = ConfWriter(
                    str(default_section.get("config", ".coafile")))
        except ValueError:
            self.conf_writer = ConfWriter(
                str(default_section.get("save", ".coafile")))

        if self.conf_writer is not None:
            self.conf_writer.write_sections(self.sections)
Exemple #3
0
 def delete_row(self, button, listboxrow):
     del self.sections_dict[self.section_stack_map[listboxrow].get_name()]
     self.section_stack_map[listboxrow].destroy()
     del self.section_stack_map[listboxrow]
     listboxrow.destroy()
     conf_writer = ConfWriter(self.src + '/.coafile')
     conf_writer.write_sections(self.sections_dict)
     conf_writer.close()
Exemple #4
0
 def setUp(self):
     self.project_dir = os.getcwd()
     self.printer = ConsolePrinter()
     self.coafile = os.path.join(tempfile.gettempdir(), '.coafile')
     self.writer = ConfWriter(self.coafile)
     self.arg_parser = _get_arg_parser()
     self.old_argv = deepcopy(sys.argv)
     del sys.argv[1:]
Exemple #5
0
    def setUp(self):
        self.file = os.path.join(tempfile.gettempdir(), 'ConfParserTestFile')
        with open(self.file, 'w', encoding='utf-8') as file:
            file.write(self.example_file)

        self.log_printer = LogPrinter()
        self.write_file_name = os.path.join(tempfile.gettempdir(),
                                            'ConfWriterTestFile')
        self.uut = ConfWriter(self.write_file_name)
def save_sections(sections):
    """
    Saves the given sections if they are to be saved.

    :param sections: A section dict.
    """
    default_section = sections['cli']
    try:
        if bool(default_section.get('save', 'false')):
            conf_writer = ConfWriter(
                str(default_section.get('config', Constants.local_coafile)))
        else:
            return
    except ValueError:
        conf_writer = ConfWriter(str(default_section.get('save', '.coafile')))

    conf_writer.write_sections(sections)
    conf_writer.close()
Exemple #7
0
def save_sections(sections):
    """
    Saves the given sections if they are to be saved.

    :param sections: A section dict.
    """
    default_section = sections["default"]
    try:
        if bool(default_section.get("save", "false")):
            conf_writer = ConfWriter(
                str(default_section.get("config", Constants.default_coafile)))
        else:
            return
    except ValueError:
        conf_writer = ConfWriter(str(default_section.get("save", ".coafile")))

    conf_writer.write_sections(sections)
    conf_writer.close()
Exemple #8
0
    def setUp(self):
        self.file = os.path.join(tempfile.gettempdir(), "ConfParserTestFile")
        with open(self.file, "w", encoding='utf-8') as file:
            file.write(self.example_file)

        self.conf_parser = ConfParser()
        self.write_file_name = os.path.join(tempfile.gettempdir(),
                                            "ConfWriterTestFile")
        self.uut = ConfWriter(self.write_file_name)
Exemple #9
0
 def update_section_name(self, widget, arg, old_name, section_view):
     section_view.set_name(widget.get_name())
     self.sections_dict[old_name].name = widget.get_name()
     self.sections_dict = update_ordered_dict_key(self.sections_dict,
                                                  old_name,
                                                  widget.get_name())
     widget.connect("edited", self.update_section_name, widget.get_name())
     conf_writer = ConfWriter(self.src + '/.coafile')
     conf_writer.write_sections(self.sections_dict)
     conf_writer.close()
    def test_write_with_dir(self):
        self.uut_dir = ConfWriter(tempfile.gettempdir())
        self.uut_dir.write_sections({'name': Section('name')})
        self.uut_dir.close()

        with open(os.path.join(tempfile.gettempdir(), '.coafile'), 'r') as f:
            lines = f.readlines()

        self.assertEqual(['[name]\n'], lines)
        os.remove(os.path.join(tempfile.gettempdir(), '.coafile'))
Exemple #11
0
 def on_key_changed(self, widget, arg, sensitive_button, value_entry):
     setting = Setting(widget.get_name(), value_entry.get_text())
     self.sections_dict[self.get_name()].append(setting)
     self.add_setting()
     sensitive_button.set_sensitive(True)
     sensitive_button.set_name(setting.key)
     widget.connect("edited", self.update_key, setting, sensitive_button)
     value_entry.connect("focus-out-event", self.update_value, setting)
     conf_writer = ConfWriter(self.src + '/.coafile')
     conf_writer.write_sections(self.sections_dict)
     conf_writer.close()
Exemple #12
0
 def create_section_view(self, widget=None, arg=None, row_obejct=None):
     section_view = SectionView(self.sections_dict, self.src)
     section_view.set_visible(True)
     section_view.set_name(widget.get_name())
     self.sections.add_named(section_view, widget.get_name())
     self.sections.set_visible_child_name(widget.get_name())
     if arg is not None:
         widget.connect("edited", self.update_section_name,
                        widget.get_name(), section_view)
         self.sections_dict[widget.get_name()] = Section(widget.get_name())
         section_view.add_setting()
         conf_writer = ConfWriter(self.src + '/.coafile')
         conf_writer.write_sections(self.sections_dict)
         conf_writer.close()
     self.section_stack_map[row_obejct] = section_view
Exemple #13
0
def write_coafile(printer, project_dir, settings):
    """
    Writes the coafile to disk.

    :param printer:
        A ``ConsolePrinter`` object used for console interactions.
    :param project_dir:
        Full path of the user's project directory.
    :param settings:
        A dict with section name as key and a ``Section`` object as value.
    """
    coafile = os.path.join(project_dir, ".coafile")
    if os.path.isfile(coafile):
        printer.print("'" + coafile + "' already exists.\nThe settings will be"
                      " written to '" + coafile + ".new'",
                      color="yellow")
        coafile = coafile + ".new"

    writer = ConfWriter(coafile)
    writer.write_sections(settings)
    writer.close()

    printer.print("'" + coafile + "' successfully generated.", color="green")
Exemple #14
0
 def delete_setting(self, button, setting_row):
     self.sections_dict[self.get_name()].delete_setting(button.get_name())
     setting_row.destroy()
     conf_writer = ConfWriter(self.src + '/.coafile')
     conf_writer.write_sections(self.sections_dict)
     conf_writer.close()
Exemple #15
0
 def setUp(self):
     self.coafile = os.path.join(tempfile.gettempdir(), '.coafile')
     self.writer = ConfWriter(self.coafile)
     self.old_argv = deepcopy(sys.argv)
     del sys.argv[1:]
Exemple #16
0
 def update_value(self, widget, arg, setting):
     setting.value = widget.get_text()
     conf_writer = ConfWriter(self.src + '/.coafile')
     conf_writer.write_sections(self.sections_dict)
     conf_writer.close()
Exemple #17
0
 def update_key(self, widget, arg, setting, delete_button):
     setting.key = widget.get_name()
     delete_button.set_name(widget.get_name())
     conf_writer = ConfWriter(self.src + '/.coafile')
     conf_writer.write_sections(self.sections_dict)
     conf_writer.close()
Exemple #18
0
def generate_green_mode_sections(data,
                                 project_dir,
                                 project_files,
                                 ignore_globs,
                                 printer=None,
                                 suffix=''):
    """
    Generates the section objects for the green_mode.
    :param data:
        This is the data structure generated from the method
        generate_data_struct_for_sections().
    :param project_dir:
        The path of the project directory.
    :param project_files:
        List of paths to only the files inside the project directory.
    :param ignore_globs:
        The globs of files to ignore.
    :param printer:
        The ConsolePrinter object.
    :param suffix:
        A suffix that can be added to the `.coafile.green`.
    """
    all_sections = {
        'all': [],
    }
    lang_files = split_by_language(project_files)
    extset = get_extensions(project_files)
    ignored_files = generate_ignore_field(project_dir, lang_files.keys(),
                                          extset, ignore_globs)
    if ignored_files:
        section_all = Section('all')
        section_all['ignore'] = ignored_files
        all_sections['all'].append(section_all)

    for bear in data:
        num = 0
        bear_sections = []
        for setting_combs in data[bear]:
            if not setting_combs:
                continue
            for dict_ in setting_combs:
                num = num + 1
                section = Section('all.' + bear.__name__ + str(num), None)
                for key_ in dict_:
                    if key_ == 'filename':
                        file_list_sec = dict_[key_]
                        file_list_sec, ignore_list = aggregate_files(
                            file_list_sec, project_dir)
                        dict_[key_] = file_list_sec
                        section['ignore'] = ', '.join(
                            escape(x, '\\') for x in ignore_list)
                        section['files'] = ', '.join(
                            escape(x, '\\') for x in dict_[key_])
                    else:
                        section[key_] = str(dict_[key_])
                    section['bears'] = bear.__name__
                bear_sections.append(section)
        # Remove sections for the same bear who have common files i.e. more
        # than one setting was found to be green.
        file_list = []
        new_bear_sections = []
        for index, section in enumerate(bear_sections):
            if not section.contents['files'] in file_list:
                file_list.append(section.contents['files'])
                new_bear_sections.append(section)
        all_sections[bear.__name__] = new_bear_sections

    coafile = os.path.join(project_dir, '.coafile.green' + suffix)
    writer = ConfWriter(coafile)
    write_sections(writer, all_sections)
    writer.close()
    printer.print("'" + coafile + "' successfully generated.", color='green')
Exemple #19
0
 def setUp(self):
     self.coafile = os.path.join(tempfile.gettempdir(), '.coafile')
     self.writer = ConfWriter(self.coafile)