60e0ffc959
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Waiting to run
Run static analysis / static_analysis (push) Waiting to run
Tests / Tests: Python 3.10 on ubuntu-latest (push) Waiting to run
Tests / Tests: Python 3.13 on ubuntu-latest (push) Waiting to run
Tests / Tests: Python 3.10 on windows-latest (push) Waiting to run
Tests / Tests with lowest-direct dependencies (push) Waiting to run
Tests / Package install smoke (push) Waiting to run
Upgrade checks / Static analysis (push) Waiting to run
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Waiting to run
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Waiting to run
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Waiting to run
Upgrade checks / Integration tests (push) Waiting to run
Upgrade checks / Notify on failure (push) Blocked by required conditions
Upgrade checks / Close issue on success (push) Blocked by required conditions
Update MCPServerConfig Schema / update-config-schema (push) Waiting to run
Update SDK Documentation / update-sdk-docs (push) Waiting to run
Tests / MCP conformance tests (push) Waiting to run
Tests / Integration tests (push) Waiting to run
69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
from datetime import datetime, timedelta, timezone
|
|
|
|
import pytest
|
|
|
|
from scripts.auto_close_needs_mre import Comment, Issue, should_close_as_needs_mre
|
|
|
|
|
|
def make_issue(author_association: str = "NONE") -> Issue:
|
|
return Issue(
|
|
number=1,
|
|
title="Bug report",
|
|
state="open",
|
|
created_at="2026-01-01T00:00:00Z",
|
|
user_id=123,
|
|
user_login="octocat",
|
|
body="Something is broken",
|
|
author_association=author_association,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"author_association",
|
|
["OWNER", "MEMBER", "COLLABORATOR"],
|
|
)
|
|
def test_should_not_close_maintainer_issues(author_association: str):
|
|
label_date = datetime.now(timezone.utc) - timedelta(days=8)
|
|
|
|
should_close = should_close_as_needs_mre(
|
|
issue=make_issue(author_association),
|
|
label_date=label_date,
|
|
comments=[],
|
|
timeline=[],
|
|
)
|
|
|
|
assert should_close is False
|
|
|
|
|
|
def test_should_close_non_maintainer_issue_without_author_activity():
|
|
label_date = datetime.now(timezone.utc) - timedelta(days=8)
|
|
|
|
should_close = should_close_as_needs_mre(
|
|
issue=make_issue("CONTRIBUTOR"),
|
|
label_date=label_date,
|
|
comments=[],
|
|
timeline=[],
|
|
)
|
|
|
|
assert should_close is True
|
|
|
|
|
|
def test_should_not_close_non_maintainer_issue_with_author_activity():
|
|
label_date = datetime.now(timezone.utc) - timedelta(days=8)
|
|
comment = Comment(
|
|
id=1,
|
|
body="Here's the MRE",
|
|
created_at=(label_date + timedelta(days=1)).isoformat(),
|
|
user_id=123,
|
|
user_login="octocat",
|
|
)
|
|
|
|
should_close = should_close_as_needs_mre(
|
|
issue=make_issue("CONTRIBUTOR"),
|
|
label_date=label_date,
|
|
comments=[comment],
|
|
timeline=[],
|
|
)
|
|
|
|
assert should_close is False
|