예제 #1
0
    def test_conventional_commits(self):
        rule = ConventionalCommit()

        # No violations when using a correct type and format
        for type in [
                "fix", "feat", "chore", "docs", "style", "refactor", "perf",
                "test", "revert", "ci", "build"
        ]:
            violations = rule.validate(type + u": föo", None)
            self.assertListEqual([], violations)

        # assert violation on wrong type
        expected_violation = RuleViolation(
            "CT1", "Title does not start with one of fix, feat, chore, docs,"
            " style, refactor, perf, test, revert, ci, build", u"bår: foo")
        violations = rule.validate(u"bår: foo", None)
        self.assertListEqual([expected_violation], violations)

        # assert violation on wrong format
        expected_violation = RuleViolation(
            "CT1", "Title does not follow ConventionalCommits.org format "
            "'type(optional-scope): description'", u"fix föo")
        violations = rule.validate(u"fix föo", None)
        self.assertListEqual([expected_violation], violations)

        # assert no violation when adding new type
        rule = ConventionalCommit({'types': [u"föo", u"bär"]})
        for typ in [u"föo", u"bär"]:
            violations = rule.validate(typ + u": hür dur", None)
            self.assertListEqual([], violations)

        # assert violation when using incorrect type when types have been reconfigured
        violations = rule.validate(u"fix: hür dur", None)
        expected_violation = RuleViolation(
            "CT1", u"Title does not start with one of föo, bär",
            u"fix: hür dur")
        self.assertListEqual([expected_violation], violations)
 def test_enable(self):
     # Test that rule can be enabled in config
     for rule_ref in ['CT1', 'contrib-title-conventional-commits']:
         config = LintConfig()
         config.contrib = [rule_ref]
         self.assertIn(ConventionalCommit(), config.rules)