예제 #1
0
 def test_set_from_commit_ignore_specific(self):
     # ignore specific rules
     config_builder = LintConfigBuilder()
     config_builder.set_config_from_commit(
         self.gitcommit(u"tëst\ngitlint-ignore: T1, body-hard-tab"))
     config = config_builder.build()
     self.assertEqual(config.ignore, ["T1", "body-hard-tab"])
예제 #2
0
    def test_lint_sample5(self):
        commit = self.gitcommit(self.get_sample("commit_message/sample5"))
        config_builder = LintConfigBuilder()
        config_builder.set_config_from_commit(commit)
        linter = GitLinter(config_builder.build())
        violations = linter.lint(commit)

        title = u" Commit title containing 'WIP', \tleading and tråiling whitespace and longer than 72 characters."
        # expect only certain violations because sample5 has a 'gitlint-ignore: T3, T6, body-max-line-length'
        expected = [
            RuleViolation("T1", "Title exceeds max length (95>72)", title, 1),
            RuleViolation("T4", "Title contains hard tab characters (\\t)",
                          title, 1),
            RuleViolation("T5",
                          "Title contains the word 'WIP' (case-insensitive)",
                          title, 1),
            RuleViolation("B4", "Second line is not empty",
                          u"This line should be ëmpty", 2),
            RuleViolation("B2", "Line has trailing whitespace",
                          u"This line has a tråiling space. ", 4),
            RuleViolation("B2", "Line has trailing whitespace",
                          "This line has a trailing tab.\t", 5),
            RuleViolation("B3", "Line contains hard tab characters (\\t)",
                          "This line has a trailing tab.\t", 5)
        ]
        self.assertListEqual(violations, expected)
예제 #3
0
 def test_lint_sample4(self):
     commit = self.gitcommit(self.get_sample("commit_message/sample4"))
     config_builder = LintConfigBuilder()
     config_builder.set_config_from_commit(commit)
     linter = GitLinter(config_builder.build())
     violations = linter.lint(commit)
     # expect no violations because sample4 has a 'gitlint: disable line'
     expected = []
     self.assertListEqual(violations, expected)
예제 #4
0
 def test_lint_sample4(self):
     commit = self.gitcommit(self.get_sample("commit_message/sample4"))
     config_builder = LintConfigBuilder()
     config_builder.set_config_from_commit(commit)
     linter = GitLinter(config_builder.build())
     violations = linter.lint(commit)
     # expect no violations because sample4 has a 'gitlint: disable line'
     expected = []
     self.assertListEqual(violations, expected)
예제 #5
0
    def test_set_from_commit_ignore_all(self):
        config = LintConfig()
        original_rules = config.rules
        original_rule_ids = [rule.id for rule in original_rules]

        config_builder = LintConfigBuilder()

        # nothing gitlint
        config_builder.set_config_from_commit(self.gitcommit("test\ngitlint\nfoo"))
        config = config_builder.build()
        self.assertListEqual(config.rules, original_rules)
        self.assertListEqual(config.ignore, [])

        # ignore all rules
        config_builder.set_config_from_commit(self.gitcommit("test\ngitlint-ignore: all\nfoo"))
        config = config_builder.build()
        self.assertEqual(config.ignore, original_rule_ids)

        # ignore all rules, no space
        config_builder.set_config_from_commit(self.gitcommit("test\ngitlint-ignore:all\nfoo"))
        config = config_builder.build()
        self.assertEqual(config.ignore, original_rule_ids)

        # ignore all rules, more spacing
        config_builder.set_config_from_commit(self.gitcommit("test\ngitlint-ignore: \t all\nfoo"))
        config = config_builder.build()
        self.assertEqual(config.ignore, original_rule_ids)
예제 #6
0
    def test_set_from_commit_ignore_all(self):
        config = LintConfig()
        original_rules = config.rules
        original_rule_ids = [rule.id for rule in original_rules]

        config_builder = LintConfigBuilder()

        # nothing gitlint
        config_builder.set_config_from_commit(
            self.gitcommit(u"tëst\ngitlint\nfoo"))
        config = config_builder.build()
        self.assertListEqual(config.rules, original_rules)
        self.assertListEqual(config.ignore, [])

        # ignore all rules
        config_builder.set_config_from_commit(
            self.gitcommit(u"tëst\ngitlint-ignore: all\nfoo"))
        config = config_builder.build()
        self.assertEqual(config.ignore, original_rule_ids)

        # ignore all rules, no space
        config_builder.set_config_from_commit(
            self.gitcommit(u"tëst\ngitlint-ignore:all\nfoo"))
        config = config_builder.build()
        self.assertEqual(config.ignore, original_rule_ids)

        # ignore all rules, more spacing
        config_builder.set_config_from_commit(
            self.gitcommit(u"tëst\ngitlint-ignore: \t all\nfoo"))
        config = config_builder.build()
        self.assertEqual(config.ignore, original_rule_ids)
예제 #7
0
    def test_lint_sample5(self):
        commit = self.gitcommit(self.get_sample("commit_message/sample5"))
        config_builder = LintConfigBuilder()
        config_builder.set_config_from_commit(commit)
        linter = GitLinter(config_builder.build())
        violations = linter.lint(commit)

        title = " Commit title containing 'WIP', \tleading and trailing whitespace and longer than 72 characters."
        # expect only certain violations because sample5 has a 'gitlint: T3,'
        expected = [RuleViolation("T1", "Title exceeds max length (95>72)", title, 1),
                    RuleViolation("T4", "Title contains hard tab characters (\\t)", title, 1),
                    RuleViolation("T5", "Title contains the word 'WIP' (case-insensitive)", title, 1),
                    RuleViolation("B4", "Second line is not empty", "This line should be empty", 2),
                    RuleViolation("B2", "Line has trailing whitespace",
                                  "This line has a trailing space. ", 4),
                    RuleViolation("B2", "Line has trailing whitespace", "This line has a trailing tab.\t",
                                  5),
                    RuleViolation("B3", "Line contains hard tab characters (\\t)",
                                  "This line has a trailing tab.\t", 5)]
        self.assertListEqual(violations, expected)
예제 #8
0
 def test_set_from_commit_ignore_specific(self):
     # ignore specific rules
     config_builder = LintConfigBuilder()
     config_builder.set_config_from_commit(self.gitcommit("test\ngitlint-ignore: T1, body-hard-tab"))
     config = config_builder.build()
     self.assertEqual(config.ignore, ["T1", "body-hard-tab"])