예제 #1
0
    def test_author_valid_email_rule(self):
        rule = AuthorValidEmail()

        # valid email addresses
        valid_email_addresses = [
            "fö[email protected]", "Jö[email protected]", "jö[email protected]",
            "jöhn/[email protected]", "jö[email protected]"
        ]
        for email in valid_email_addresses:
            commit = self.gitcommit("", author_email=email)
            violations = rule.validate(commit)
            self.assertIsNone(violations)

        # No email address (=allowed for now, as gitlint also lints messages passed via stdin that don't have an
        # email address)
        commit = self.gitcommit("")
        violations = rule.validate(commit)
        self.assertIsNone(violations)

        # Invalid email addresses: no TLD, no domain, no @, space anywhere (=valid but not allowed by gitlint)
        invalid_email_addresses = [
            "föo@bar", "JöhnDoe", "Jöhn Doe", "Jöhn [email protected]",
            " Jö[email protected]", "JöhnDoe@ foo.com", "JöhnDoe@foo. com",
            "JöhnDoe@foo. com", "@bår.com", "fö[email protected]"
        ]
        for email in invalid_email_addresses:
            commit = self.gitcommit("", author_email=email)
            violations = rule.validate(commit)
            self.assertListEqual(violations, [
                RuleViolation("M1", "Author email for commit is invalid",
                              email)
            ])
예제 #2
0
    def test_author_valid_email_rule_custom_regex(self):
        # regex=None -> the rule isn't applied
        rule = AuthorValidEmail()
        rule.options['regex'].set(None)
        emailadresses = ["föo", None, "hür dür"]
        for email in emailadresses:
            commit = self.gitcommit("", author_email=email)
            violations = rule.validate(commit)
            self.assertIsNone(violations)

        # Custom domain
        rule = AuthorValidEmail({'regex': "[^@]+@bår.com"})
        valid_email_addresses = [
            "föo@bår.com", "Jöhn.Doe@bår.com", "jöhn+doe@bår.com",
            "jöhn/doe@bår.com"
        ]
        for email in valid_email_addresses:
            commit = self.gitcommit("", author_email=email)
            violations = rule.validate(commit)
            self.assertIsNone(violations)

        # Invalid email addresses
        invalid_email_addresses = ["fö[email protected]"]
        for email in invalid_email_addresses:
            commit = self.gitcommit("", author_email=email)
            violations = rule.validate(commit)
            self.assertListEqual(violations, [
                RuleViolation("M1", "Author email for commit is invalid",
                              email)
            ])
예제 #3
0
    def test_author_valid_email_rule_custom_regex(self):
        # Custom domain
        rule = AuthorValidEmail({'regex': u"[^@]+@bår.com"})
        valid_email_addresses = [
            u"föo@bår.com", u"Jöhn.Doe@bår.com", u"jöhn+doe@bår.com",
            u"jöhn/doe@bår.com"
        ]
        for email in valid_email_addresses:
            commit = self.gitcommit(u"", author_email=email)
            violations = rule.validate(commit)
            self.assertIsNone(violations)

        # Invalid email addresses
        invalid_email_addresses = [u"fö[email protected]"]
        for email in invalid_email_addresses:
            commit = self.gitcommit(u"", author_email=email)
            violations = rule.validate(commit)
            self.assertListEqual(violations, [
                RuleViolation("M1", "Author email for commit is invalid",
                              email)
            ])