fix: align example config with reviewer merger separation
This commit is contained in:
@@ -435,6 +435,40 @@ class ValidateConfigTests(unittest.TestCase):
|
||||
with open(example, encoding="utf-8") as fh:
|
||||
self.assertEqual(gitea_config.validate_config(json.load(fh)), [])
|
||||
|
||||
def test_repo_example_file_reviewer_vs_merger_boundaries(self):
|
||||
example_path = __import__("pathlib").Path(__file__).resolve().parent.parent \
|
||||
/ "gitea-mcp.v2-contexts.example.json"
|
||||
with open(example_path, encoding="utf-8") as fh:
|
||||
cfg = json.load(fh)
|
||||
|
||||
# 1. Config includes separate reviewer and merger examples
|
||||
self.assertIn("example-reviewer", cfg["profiles"])
|
||||
self.assertIn("example-merger", cfg["profiles"])
|
||||
|
||||
reviewer = cfg["profiles"]["example-reviewer"]
|
||||
merger = cfg["profiles"]["example-merger"]
|
||||
|
||||
# 2. Example reviewer config does not include merge capability
|
||||
reviewer_allowed = reviewer.get("allowed_operations") or []
|
||||
reviewer_forbidden = reviewer.get("forbidden_operations") or []
|
||||
|
||||
self.assertNotIn("merge", reviewer_allowed)
|
||||
self.assertNotIn("gitea.pr.merge", reviewer_allowed)
|
||||
self.assertIn("merge", reviewer_forbidden)
|
||||
|
||||
# 3. Example reviewer can resolve review task, cannot resolve merge task
|
||||
# 4. Example merger can resolve merge task
|
||||
rev_review_ok, _ = gitea_config.check_operation("gitea.pr.review", reviewer_allowed, reviewer_forbidden)
|
||||
rev_merge_ok, _ = gitea_config.check_operation("gitea.pr.merge", reviewer_allowed, reviewer_forbidden)
|
||||
|
||||
merg_allowed = merger.get("allowed_operations") or []
|
||||
merg_forbidden = merger.get("forbidden_operations") or []
|
||||
merg_merge_ok, _ = gitea_config.check_operation("gitea.pr.merge", merg_allowed, merg_forbidden)
|
||||
|
||||
self.assertTrue(rev_review_ok, "example-reviewer must allow review")
|
||||
self.assertFalse(rev_merge_ok, "example-reviewer must not allow merge")
|
||||
self.assertTrue(merg_merge_ok, "example-merger must allow merge")
|
||||
|
||||
def test_broken_contexts_config_reports_problems(self):
|
||||
data = contexts_config()
|
||||
data["profiles"]["prgs-author"]["context"] = "nope"
|
||||
|
||||
Reference in New Issue
Block a user