From 37a5e96c59f172c079237bbdd6fa86f514a12ee7 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Tue, 16 Jun 2026 05:09:05 +0000 Subject: [PATCH] Add tests for is_opencode_context --- tests/scripts/__init__.py | 0 tests/scripts/ci/__init__.py | 0 .../ci/test_pr_review_merge_scheduler.py | 80 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 tests/scripts/__init__.py create mode 100644 tests/scripts/ci/__init__.py create mode 100644 tests/scripts/ci/test_pr_review_merge_scheduler.py diff --git a/tests/scripts/__init__.py b/tests/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/scripts/ci/__init__.py b/tests/scripts/ci/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/scripts/ci/test_pr_review_merge_scheduler.py b/tests/scripts/ci/test_pr_review_merge_scheduler.py new file mode 100644 index 0000000..6bbbbd6 --- /dev/null +++ b/tests/scripts/ci/test_pr_review_merge_scheduler.py @@ -0,0 +1,80 @@ +import pytest + +from scripts.ci.pr_review_merge_scheduler import is_opencode_context + +def test_is_opencode_context_checkrun_name(): + node = { + "__typename": "CheckRun", + "name": "opencode-review", + } + assert is_opencode_context(node) is True + +def test_is_opencode_context_checkrun_workflow_name(): + node = { + "__typename": "CheckRun", + "name": "other-check", + "checkSuite": { + "workflowRun": { + "workflow": { + "name": "OpenCode Review" + } + } + } + } + assert is_opencode_context(node) is True + +def test_is_opencode_context_checkrun_false(): + node = { + "__typename": "CheckRun", + "name": "other-check", + "checkSuite": { + "workflowRun": { + "workflow": { + "name": "Other Workflow" + } + } + } + } + assert is_opencode_context(node) is False + +def test_is_opencode_context_checkrun_missing_fields(): + node = { + "__typename": "CheckRun", + "name": "other-check", + "checkSuite": {} + } + assert is_opencode_context(node) is False + + node2 = { + "__typename": "CheckRun", + "name": "other-check", + # missing checkSuite entirely + } + assert is_opencode_context(node2) is False + +def test_is_opencode_context_statuscontext_match(): + node = { + "__typename": "StatusContext", + "context": "opencode-review", + } + assert is_opencode_context(node) is True + +def test_is_opencode_context_statuscontext_mismatch(): + node = { + "__typename": "StatusContext", + "context": "other-review", + } + assert is_opencode_context(node) is False + +def test_is_opencode_context_statuscontext_missing(): + node = { + "__typename": "StatusContext", + # missing context + } + assert is_opencode_context(node) is False + +def test_is_opencode_context_missing_typename(): + node = { + "context": "opencode-review", + } + assert is_opencode_context(node) is True