Files
AnyPS5/tools/tests/test_check_conventions_git.py
T

42 lines
1.1 KiB
Python

import subprocess
import sys
import unittest
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[2]
CHECKER = REPO_ROOT / "tools" / "check_conventions.py"
INVALID_REVISION = "this-branch-does-not-exist"
class GitErrorHandlingTests(unittest.TestCase):
def check_invalid_revision(self, option):
valid = "--head" if option == "--base" else "--base"
arguments = [valid, "HEAD", option, INVALID_REVISION]
result = subprocess.run(
[
sys.executable,
str(CHECKER),
*arguments,
],
cwd=REPO_ROOT,
capture_output=True,
text=True,
)
self.assertEqual(result.returncode, 2)
self.assertIn("Git command failed:", result.stderr)
self.assertIn(INVALID_REVISION, result.stderr)
self.assertNotIn("Traceback", result.stderr)
def test_invalid_base_branch(self):
self.check_invalid_revision("--base")
def test_invalid_head_branch(self):
self.check_invalid_revision("--head")
if __name__ == "__main__":
unittest.main()