diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:49:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:49:10 +0000 |
commit | a85f3954a8fe112640c2c35da3228be29b17c97c (patch) | |
tree | 7ee43f79639ee53903e7ca389e548974e1497c3a /qa/test_user_defined.py | |
parent | Initial commit. (diff) | |
download | gitlint-a85f3954a8fe112640c2c35da3228be29b17c97c.tar.xz gitlint-a85f3954a8fe112640c2c35da3228be29b17c97c.zip |
Adding upstream version 0.18.0.upstream/0.18.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'qa/test_user_defined.py')
-rw-r--r-- | qa/test_user_defined.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/qa/test_user_defined.py b/qa/test_user_defined.py new file mode 100644 index 0000000..a003f3e --- /dev/null +++ b/qa/test_user_defined.py @@ -0,0 +1,58 @@ +# pylint: disable=too-many-function-args,unexpected-keyword-arg +from qa.shell import gitlint +from qa.base import BaseTestCase + + +class UserDefinedRuleTests(BaseTestCase): + """Integration tests for user-defined rules.""" + + def test_user_defined_rules_examples1(self): + """Test the user defined rules in the top-level `examples/` directory""" + extra_path = self.get_example_path() + commit_msg = "WIP: Thi$ is å title\nContent on the second line" + self.create_simple_commit(commit_msg) + output = gitlint("--extra-path", extra_path, _cwd=self.tmp_git_repo, _tty_in=True, _ok_code=[5]) + self.assertEqualStdout(output, self.get_expected("test_user_defined/test_user_defined_rules_examples_1")) + + def test_user_defined_rules_examples2(self): + """Test the user defined rules in the top-level `examples/` directory""" + extra_path = self.get_example_path() + commit_msg = "Release: Thi$ is å title\nContent on the second line\n$This line is ignored \nThis isn't\t\n" + self.create_simple_commit(commit_msg) + output = gitlint("--extra-path", extra_path, _cwd=self.tmp_git_repo, _tty_in=True, _ok_code=[4]) + self.assertEqualStdout(output, self.get_expected("test_user_defined/test_user_defined_rules_examples_2")) + + def test_user_defined_rules_examples_with_config(self): + """Test the user defined rules in the top-level `examples/` directory""" + extra_path = self.get_example_path() + commit_msg = "WIP: Thi$ is å title\nContent on the second line" + self.create_simple_commit(commit_msg) + output = gitlint( + "--extra-path", + extra_path, + "-c", + "body-max-line-count.max-line-count=1", + _cwd=self.tmp_git_repo, + _tty_in=True, + _ok_code=[6], + ) + expected_path = "test_user_defined/test_user_defined_rules_examples_with_config_1" + self.assertEqualStdout(output, self.get_expected(expected_path)) + + def test_user_defined_rules_extra(self): + extra_path = self.get_sample_path("user_rules/extra") + commit_msg = "WIP: Thi$ is å title\nContent on the second line" + self.create_simple_commit(commit_msg) + output = gitlint("--extra-path", extra_path, _cwd=self.tmp_git_repo, _tty_in=True, _ok_code=[9]) + self.assertEqualStdout( + output, + self.get_expected("test_user_defined/test_user_defined_rules_extra_1", {"repo-path": self.tmp_git_repo}), + ) + + def test_invalid_user_defined_rules(self): + extra_path = self.get_sample_path("user_rules/incorrect_linerule") + self.create_simple_commit("WIP: test") + output = gitlint("--extra-path", extra_path, _cwd=self.tmp_git_repo, _tty_in=True, _ok_code=[255]) + self.assertEqualStdout( + output, "Config Error: User-defined rule class 'MyUserLineRule' must have a 'validate' method\n" + ) |