示例#1
0
    def test_logging(self):
        uut = Section("test", log_printer=NullPrinter())
        uut.append(Setting(key="log_TYPE", value="conSole"))
        uut.retrieve_logging_objects()
        self.assertIsInstance(uut.log_printer, ConsolePrinter)
        self.assertIsInstance(uut.interactor, ConsoleInteractor)

        uut = Section("test", log_printer=ConsolePrinter())
        uut.append(Setting(key="log_TYPE", value="NONE"))
        uut.retrieve_logging_objects()
        self.assertIsInstance(uut.log_printer, NullPrinter)

        uut = Section("test", log_printer=NullPrinter())
        uut.append(Setting(key="log_TYPE", value="./invalid path/@#$%^&*()_"))
        uut.retrieve_logging_objects()  # This should throw a warning
        self.assertIsInstance(uut.log_printer, ConsolePrinter)
        self.assertEqual(uut.log_printer.log_level, LOG_LEVEL.WARNING)
        uut.append(Setting(key="LOG_LEVEL", value="DEBUG"))
        uut.retrieve_logging_objects()  # This should throw a warning
        self.assertEqual(uut.log_printer.log_level, LOG_LEVEL.DEBUG)

        filename = tempfile.gettempdir(
        ) + os.path.sep + "testcoalasectiontestfile~"
        uut = Section("test", log_printer=NullPrinter())
        uut.append(Setting(key="log_TYPE", value=filename))
        uut.retrieve_logging_objects()
        self.assertIsInstance(uut.log_printer, FilePrinter)
        del uut
        os.remove(filename)
示例#2
0
 def test_string_conversion(self):
     uut = Section('name')
     self.assertEqual(str(uut), 'name {}')
     uut.append(Setting('key', 'value'))
     self.assertEqual(str(uut), "name {key : 'value'}")
     uut.append(Setting('another_key', 'another_value'))
     self.assertEqual(
         str(uut), "name {key : 'value', another_key : 'another_value'}")
示例#3
0
 def test_string_conversion(self):
     uut = Section("name")
     self.assertEqual(str(uut), "name {}")
     uut.append(Setting("key", "value"))
     self.assertEqual(str(uut), "name {key : 'value'}")
     uut.append(Setting("another_key", "another_value"))
     self.assertEqual(str(uut),
                      "name {key : 'value', another_key : 'another_value'}")
示例#4
0
    def test_iter(self):
        defaults = Section('default', None)
        uut = Section('name', defaults)
        uut.append(Setting(5, 5, 5))
        uut.add_or_create_setting(Setting('TEsT', 4, 5))
        defaults.append(Setting('tEsT', 1, 3))
        defaults.append(Setting(' great   ', 3, 8))
        defaults.append(Setting(' great   ', 3, 8), custom_key='custom')
        uut.add_or_create_setting(Setting('custom', 4, 8, to_append=True))
        uut.add_or_create_setting(Setting(' NEW   ', 'val', 8))
        uut.add_or_create_setting(Setting(' NEW   ', 'vl', 8),
                                  allow_appending=False)
        uut.add_or_create_setting(Setting('new', 'val', 9),
                                  custom_key='teSt ',
                                  allow_appending=True)
        self.assertEqual(list(uut), ['5', 'test', 'custom', 'new', 'great'])

        for index in uut:
            t = uut[index]
            self.assertNotEqual(t, None)

        self.assertIn('teST', defaults)
        self.assertIn('       GREAT', defaults)
        self.assertNotIn('       GrEAT !', defaults)
        self.assertNotIn('', defaults)
        self.assertEqual(str(uut['test']), '4\nval')
        self.assertEqual(str(uut['custom']), '3, 4')
        self.assertEqual(int(uut['GREAT ']), 3)
        self.assertRaises(IndexError, uut.__getitem__, 'doesnotexist')
        self.assertRaises(IndexError, uut.__getitem__, 'great', True)
        self.assertRaises(IndexError, uut.__getitem__, ' ')
示例#5
0
    def test_outputting(self):
        uut = Section("test", log_printer=NullPrinter())
        uut.retrieve_logging_objects()
        self.assertIsInstance(uut.interactor, ConsoleInteractor)

        uut.append(Setting(key="output", value="none"))
        uut.retrieve_logging_objects()
        self.assertIsInstance(uut.interactor, NullInteractor)

        uut.append(Setting(key="output", value="anything else"))
        uut.retrieve_logging_objects()
        self.assertIsInstance(uut.interactor, ConsoleInteractor)
示例#6
0
    def test_extract_aspects_from_section_with_exclude(self):
        section = Section('section')
        section.append(Setting('aspects', 'commitmessage'))
        section.append(Setting('excludes', 'TrailingPeriod'))
        section.append(Setting('language', 'py 3.4'))

        aspects = extract_aspects_from_section(section)

        self.assertTrue(
            issubaspect(get_aspect('trailingperiod'),
                        get_aspect('commitmessage')))
        self.assertIsNone(aspects.get('trailingperiod'))
示例#7
0
    def test_copy(self):
        uut = Section('name')
        uut.append(Setting('key', 'value'))
        self.assertEqual(str(uut['key']), 'value')
        copy = uut.copy()
        self.assertEqual(str(copy), str(uut))
        uut.append(Setting('key', 'another_value'))
        self.assertNotEqual(str(copy), str(uut))

        uut.defaults = copy
        copy = uut.copy()
        self.assertEqual(str(uut.defaults), str(copy.defaults))
        uut.defaults.append(Setting('key', 'quite_something_else'))
        self.assertNotEqual(str(uut.defaults), str(copy.defaults))
示例#8
0
    def test_iter(self):
        defaults = Section("default", None)
        uut = Section("name", defaults)
        uut.append(Setting(5, 5, 5))
        uut.add_or_create_setting(Setting("TEsT", 4, 5))
        defaults.append(Setting("tEsT", 1, 3))
        defaults.append(Setting(" great   ", 3, 8))
        defaults.append(Setting(" great   ", 3, 8), custom_key="custom")
        uut.add_or_create_setting(Setting(" NEW   ", "val", 8))
        uut.add_or_create_setting(Setting(" NEW   ", "vl", 8),
                                  allow_appending=False)
        uut.add_or_create_setting(Setting("new", "val", 9),
                                  custom_key="teSt ",
                                  allow_appending=True)
        self.assertEqual(list(uut), ["5", "test", "new", "great", "custom"])

        for index in uut:
            t = uut[index]
            self.assertNotEqual(t, None)

        self.assertIn("teST", defaults)
        self.assertIn("       GREAT", defaults)
        self.assertNotIn("       GrEAT !", defaults)
        self.assertNotIn("", defaults)
        self.assertEqual(str(uut['test']), "4\nval")
        self.assertEqual(int(uut["GREAT "]), 3)
        self.assertRaises(IndexError, uut.__getitem__, "doesnotexist")
        self.assertRaises(IndexError, uut.__getitem__, "great", True)
        self.assertRaises(IndexError, uut.__getitem__, " ")
示例#9
0
    def test_copy(self):
        uut = Section("name")
        uut.append(Setting("key", "value"))
        self.assertEqual(str(uut["key"]), "value")
        copy = uut.copy()
        self.assertEqual(str(copy), str(uut))
        uut.append(Setting("key", "another_value"))
        self.assertNotEqual(str(copy), str(uut))

        uut.defaults = copy
        copy = uut.copy()
        self.assertEqual(str(uut.defaults), str(copy.defaults))
        uut.defaults.append(Setting("key", "quite_something_else"))
        self.assertNotEqual(str(uut.defaults), str(copy.defaults))
示例#10
0
    def test_delete_setting(self):
        section = Section('section', None)

        section.append(Setting('key1', 'value11'))
        section.append(Setting('key2', 'value12'))

        section.delete_setting('key1')
        self.assertEqual(str(section), "section {key2 : 'value12'}")

        section.append(Setting('key3', 'value13'))
        section.append(Setting('key4', 'value14'))

        section.delete_setting('key3')
        self.assertEqual(str(section),
                         "section {key2 : 'value12', key4 : 'value14'}")
示例#11
0
    def test_apply_filters(self):
        section_one = Section('apply')
        section_one.append(Setting('tags', 'save'))

        section_two = Section('filters')
        section_two.append(Setting('tags', 'change'))

        filtered = apply_filters([('section_tags', 'save')],
                                 sections=[
                                     section_one,
                                     section_two,
                                 ])

        self.assertEqual(len(filtered), 1)
        self.assertEqual(filtered[0].name, 'apply')
示例#12
0
    def test_delete_setting(self):
        section = Section("section", None)

        section.append(Setting("key1", "value11"))
        section.append(Setting("key2", "value12"))

        section.delete_setting("key1")
        self.assertEqual(str(section), "section {key2 : 'value12'}")

        section.append(Setting("key3", "value13"))
        section.append(Setting("key4", "value14"))

        section.delete_setting("key3")
        self.assertEqual(str(section),
                         "section {key2 : 'value12', key4 : 'value14'}")
示例#13
0
    def test_update_setting(self):
        section = Section("section", None)

        section.append(Setting("key1", "value11"))
        section.append(Setting("key2", "value12"))

        section.update_setting("key1", new_value="value13")
        self.assertEqual(str(section),
                         "section {key1 : 'value13', key2 : 'value12'}")
        section.update_setting("key1", "key3")
        self.assertEqual(str(section),
                         "section {key3 : 'value13', key2 : 'value12'}")
        section.update_setting("key3", "key4", "value14")
        self.assertEqual(str(section),
                         "section {key4 : 'value14', key2 : 'value12'}")
示例#14
0
    def test_apply_rename(self):
        # Initial file contents, *before* a patch was applied
        file_dict = {self.fa: ['1\n', '2\n', '3\n']}

        # A patch that was applied for some reason to make things complicated
        file_diff_dict = {}
        diff = Diff(file_dict[self.fa], rename=self.fa + '.renamed')
        diff.change_line(3, '3\n', '3_changed\n')
        ApplyPatchAction().apply(
            Result('origin', 'msg', diffs={self.fa: diff}), file_dict,
            file_diff_dict)
        # End file contents after the patch and the OpenEditorAction was
        # applied
        expected_file_dict = {self.fa: ['1\n', '3_changed\n']}

        section = Section('')
        section.append(Setting('editor', 'vim'))
        uut = OpenEditorAction()
        subprocess.call = self.fake_edit
        diff_dict = uut.apply_from_section(
            Result.from_values('origin', 'msg', self.fa), file_dict,
            file_diff_dict, section)

        for filename in diff_dict:
            file_dict[filename] = (file_diff_dict[filename].modified)

        self.assertEqual(file_dict, expected_file_dict)
        open(self.fa, 'w').close()
示例#15
0
    def test_apply_section_filters(self):
        section_one = Section('apply')
        section_one.append(Setting('tags', 'save'))

        filtered = _apply_section_filter('section_tags', [], [section_one])

        self.assertEqual(filtered, [section_one])
示例#16
0
    def test_apply(self):
        file_dict = {
            "f_a": ["1\n", "2\n", "3\n"],
            "f_b": ["1\n", "2\n", "3\n"],
            "f_c": ["1\n", "2\n", "3\n"]
        }
        expected_file_dict = {
            "f_a": ["1\n", "3\n"],
            "f_b": ["1\n", "3_changed\n"],
            "f_c": ["1\n", "2\n", "3\n"]
        }
        diff_dict = {"f_b": Diff()}
        diff_dict["f_b"].change_line(3, "3\n", "3_changed\n")

        section = Section("")
        section.append(Setting("editor", ""))
        uut = OpenEditorAction()
        os.system = self.fake_edit
        diff_dict = uut.apply_from_section(Result("origin", "msg", "f_a"),
                                           file_dict, diff_dict, section)
        diff_dict = uut.apply_from_section(Result("origin", "msg", "f_b"),
                                           file_dict, diff_dict, section)

        for filename in diff_dict:
            file_dict[filename] = diff_dict[filename].apply(
                file_dict[filename])

        self.assertEqual(file_dict, expected_file_dict)
示例#17
0
    def setUp(self):
        diff0 = Diff(['coler'])
        diff0.modify_line(1, 'color')

        diff1 = Diff(['coler'])
        diff1.modify_line(1, 'colour')

        diff2 = Diff(['coler'])
        diff2.modify_line(1, 'cooler')

        diff3 = Diff(['coler'])
        diff3.modify_line(1, 'coder')

        self.original_diff = {'filename': diff0}
        self.alternate_diff1 = {'filename': diff1}
        self.alternate_diff2 = {'filename': diff2}
        self.alternate_diff3 = {'filename': diff3}
        self.alternate_diffs = [
            self.alternate_diff1, self.alternate_diff2, self.alternate_diff3
        ]
        self.result = Result('origin',
                             'message',
                             diffs=self.original_diff,
                             alternate_diffs=self.alternate_diffs)
        self.original_file_dict = {'filename': ['coler']}
        self.section = Section('name')
        self.section.append(Setting('no_color', 'True'))

        self.uut1 = AlternatePatchAction(self.alternate_diff1, 1)
        self.uut2 = AlternatePatchAction(self.alternate_diff2, 2)
        self.uut3 = AlternatePatchAction(self.alternate_diff3, 3)
示例#18
0
 def test_setitem(self):
     uut = Section("section", None)
     uut["key1"] = "value1"
     self.assertEqual(str(uut), "section {key1 : 'value1'}")
     uut["key1"] = "changed_value1"
     self.assertEqual(str(uut), "section {key1 : 'changed_value1'}")
     uut["key1"] = Setting("any key", "value1")
     self.assertEqual(str(uut), "section {key1 : 'value1'}")
示例#19
0
    def test_section_tags_filter_no_tags(self):
        filter = available_filters['section_tags']

        section = Section('sample')
        section.append(Setting('tags', 'save'))

        flag = filter(section, [])
        self.assertTrue(flag)
示例#20
0
 def test_setitem(self):
     uut = Section('section', None)
     uut['key1'] = 'value1'
     self.assertEqual(str(uut), "section {key1 : 'value1'}")
     uut['key1'] = 'changed_value1'
     self.assertEqual(str(uut), "section {key1 : 'changed_value1'}")
     uut['key1'] = Setting('any key', 'value1')
     self.assertEqual(str(uut), "section {key1 : 'value1'}")
示例#21
0
    def test_section_tags_filter_false(self):
        filter = available_filters['section_tags']

        section = Section('sample')
        section.append(Setting('tags', 'save'))

        test_bear = TestBear(section, None)
        flag = filter(test_bear, ['change'])
        self.assertFalse(flag)
示例#22
0
 def test_extract_aspects_from_section_no_language(self):
     section = Section('section')
     section.append(Setting('aspects', 'commitmessage'))
     with self.assertRaisesRegex(
             AttributeError,
             'Language was not found in configuration file. '
             'Usage of aspect-based configuration must include '
             'language information.'):
         extract_aspects_from_section(section)
示例#23
0
 def test_bear_dirs(self):
     section = Section("section", None)
     empty_bear_dirs_len = len(section.bear_dirs())
     section.append(Setting("bear_dirs", "test1, test2 (1)"))
     self.assertEqual(len(section.bear_dirs()), empty_bear_dirs_len + 2)
     # Verify if bear directories are properly escaped
     root = get_config_directory(section)
     path = os.path.join(glob_escape(root), glob_escape("test2 (1)"), "**")
     self.assertIn(path, section.bear_dirs())
示例#24
0
 def test_bear_dirs(self):
     section = Section('section', None)
     empty_bear_dirs_len = len(section.bear_dirs())
     section.append(Setting('bear_dirs', 'test1, test2 (1)'))
     self.assertEqual(len(section.bear_dirs()), empty_bear_dirs_len + 2)
     # Verify if bear directories are properly escaped
     root = get_config_directory(section)
     path = os.path.join(glob_escape(root), glob_escape('test2 (1)'), '**')
     self.assertIn(path, section.bear_dirs())
示例#25
0
    def test_enabled(self):
        uut = Section("name")
        self.assertTrue(uut.is_enabled([]))
        self.assertTrue(uut.is_enabled(["name", "wrongname"]))
        self.assertFalse(uut.is_enabled(["wrongname"]))

        uut.append(Setting("enabled", "false"))
        self.assertFalse(uut.is_enabled([]))
        self.assertFalse(uut.is_enabled(["wrong_name"]))
        self.assertTrue(uut.is_enabled(["name", "wrongname"]))
示例#26
0
    def test_from_section(self):
        section = Section('name')
        section.append(Setting('setting_one', ' 5'))
        section.append(Setting('raw_setting', ' 5s'))
        uut = TestObject.from_section(section)
        self.assertEqual(uut.setting_one, 5)
        self.assertEqual(str(uut.raw_setting), '5s')
        self.assertEqual(uut.setting_two, False)
        self.assertEqual(uut.setting_three, [1, 2])
        self.assertEqual(str(uut.opt_raw_set), '5')

        section.append(Setting('setting_three', '2, 4'))
        section.append(Setting('opt_raw_set', 'tst ,'))
        uut = TestObject.from_section(section)
        self.assertEqual(uut.setting_one, 5)
        self.assertEqual(str(uut.raw_setting), '5s')
        self.assertEqual(uut.setting_two, False)
        self.assertEqual(uut.setting_three, ['2', '4'])
        self.assertEqual(str(uut.opt_raw_set), 'tst ,')
示例#27
0
    def test_from_section(self):
        section = Section("name")
        section.append(Setting("setting_one", " 5"))
        section.append(Setting("raw_setting", " 5s"))
        uut = TestObject.from_section(section)
        self.assertEqual(uut.setting_one, 5)
        self.assertEqual(str(uut.raw_setting), "5s")
        self.assertEqual(uut.setting_two, False)
        self.assertEqual(uut.setting_three, [1, 2])
        self.assertEqual(str(uut.opt_raw_set), "5")

        section.append(Setting("setting_three", "2, 4"))
        section.append(Setting("opt_raw_set", "tst ,"))
        uut = TestObject.from_section(section)
        self.assertEqual(uut.setting_one, 5)
        self.assertEqual(str(uut.raw_setting), "5s")
        self.assertEqual(uut.setting_two, False)
        self.assertEqual(uut.setting_three, ["2", "4"])
        self.assertEqual(str(uut.opt_raw_set), "tst ,")
示例#28
0
    def test_enabled(self):
        uut = Section('name')
        self.assertTrue(uut.is_enabled([]))
        self.assertTrue(uut.is_enabled(['name', 'wrongname']))
        self.assertFalse(uut.is_enabled(['wrongname']))

        uut.append(Setting('enabled', 'false'))
        self.assertFalse(uut.is_enabled([]))
        self.assertFalse(uut.is_enabled(['wrong_name']))
        self.assertTrue(uut.is_enabled(['name', 'wrongname']))
示例#29
0
    def test_subl(self):
        file_dict = {"f_a": []}
        section = Section("")
        section.append(Setting("editor", "subl"))
        uut = OpenEditorAction()
        os.system = self.fake_edit_subl
        diff_dict = uut.apply_from_section(Result("origin", "msg", "f_a"),
                                           file_dict, {}, section)
        file_dict["f_a"] = diff_dict["f_a"].apply(file_dict["f_a"])

        self.assertEqual(file_dict, file_dict)
示例#30
0
    def test_subl(self):
        file_dict = {self.fa: []}
        section = Section("")
        section.append(Setting("editor", "subl"))
        uut = OpenEditorAction()
        subprocess.call = self.fake_edit_subl
        diff_dict = uut.apply_from_section(
            Result.from_values("origin", "msg", self.fa), file_dict, {},
            section)
        file_dict[self.fa] = diff_dict[self.fa].modified

        self.assertEqual(file_dict, file_dict)