Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 30s
PR Checklist / pr-checklist (pull_request) Failing after 3s
Smoke Test / smoke (pull_request) Failing after 27s
Validate Config / YAML Lint (pull_request) Failing after 17s
Validate Config / JSON Validate (pull_request) Successful in 22s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 1m28s
Validate Config / Shell Script Lint (pull_request) Failing after 1m18s
Validate Config / Cron Syntax Check (pull_request) Successful in 10s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 13s
Validate Config / Playbook Schema Validation (pull_request) Successful in 22s
Architecture Lint / Lint Repository (pull_request) Has been cancelled
Validate Config / Python Test Suite (pull_request) Has been cancelled
- scripts/pr_triage.py: fetch, categorize, deduplicate, report - Categories: training-data, bug-fix, feature, maintenance, documentation, testing, infrastructure - Duplicate detection: PRs referencing same issue - Health checks: stale (>7d), closed issue refs, mergeable status - Markdown report + JSON output - 8 tests pass
46 lines
2.0 KiB
Python
46 lines
2.0 KiB
Python
"""Tests for PR triage automation (#659)."""
|
|
import pytest
|
|
|
|
class TestCategorize:
|
|
def _pr(self, title="", body=""):
|
|
return {"title": title, "body": body, "labels": []}
|
|
|
|
def test_training(self):
|
|
from scripts.pr_triage import categorize
|
|
assert categorize(self._pr("Add DPO pairs")) == "training-data"
|
|
|
|
def test_bug(self):
|
|
from scripts.pr_triage import categorize
|
|
assert categorize(self._pr("fix: crash")) == "bug-fix"
|
|
|
|
def test_feature(self):
|
|
from scripts.pr_triage import categorize
|
|
assert categorize(self._pr("feat: dark mode")) == "feature"
|
|
|
|
def test_other(self):
|
|
from scripts.pr_triage import categorize
|
|
assert categorize(self._pr("random")) == "other"
|
|
|
|
class TestRefs:
|
|
def test_simple(self):
|
|
from scripts.pr_triage import refs
|
|
assert 123 in refs({"title": "Fix #123", "body": ""})
|
|
|
|
def test_multiple(self):
|
|
from scripts.pr_triage import refs
|
|
r = refs({"title": "", "body": "Closes #100, Refs #200"})
|
|
assert 100 in r and 200 in r
|
|
|
|
class TestDuplicates:
|
|
def test_found(self):
|
|
from scripts.pr_triage import find_duplicates
|
|
prs = [{"title": "", "body": "Fix #1", "number": 1, "head": {"ref": "a"}, "created_at": "2026-01-01T00:00:00Z", "updated_at": "2026-01-01T00:00:00Z", "user": {}},
|
|
{"title": "", "body": "Refs #1", "number": 2, "head": {"ref": "b"}, "created_at": "2026-01-01T00:00:00Z", "updated_at": "2026-01-01T00:00:00Z", "user": {}}]
|
|
assert len(find_duplicates(prs)) == 1
|
|
|
|
def test_none(self):
|
|
from scripts.pr_triage import find_duplicates
|
|
prs = [{"title": "", "body": "Fix #1", "number": 1, "head": {"ref": "a"}, "created_at": "2026-01-01T00:00:00Z", "updated_at": "2026-01-01T00:00:00Z", "user": {}},
|
|
{"title": "", "body": "Fix #2", "number": 2, "head": {"ref": "b"}, "created_at": "2026-01-01T00:00:00Z", "updated_at": "2026-01-01T00:00:00Z", "user": {}}]
|
|
assert find_duplicates(prs) == []
|