Creator App Tests / PR Spam Gate (push) Skipped
Frontend Tests / PR Spam Gate (push) Skipped
NPM Format (website & console) / PR Spam Gate (push) Skipped
Pre-commit Checks / PR Spam Gate (push) Skipped
QwenPaw Creator Plugin Release / check-version (push) Canceled after 0s
QwenPaw Creator Plugin Release / upload-oss (push) Canceled after 0s
Tests / PR Spam Gate (push) Skipped
CodeQL / CodeQL (python) (push) Canceled after 0s
CodeQL / CodeQL (typescript) (push) Canceled after 0s
Creator App Tests / Creator Backend Tests (push) Canceled after 0s
Creator App Tests / Creator UI Build & Tests (push) Canceled after 0s
E2E Smoke Tests / Playwright UI Smoke (push) Canceled after 0s
Frontend Tests / Detect console changes (push) Canceled after 0s
NPM Format (website & console) / website format check (push) Canceled after 0s
NPM Format (website & console) / console format check (push) Canceled after 0s
Pre-commit Checks / Pre-commit (push) Canceled after 0s
QwenPaw Data Plugin Release / check-version (push) Canceled after 0s
Tests / Detect code changes (push) Canceled after 0s
Frontend Tests / Vitest Unit Tests (push) Canceled after 0s
Frontend Tests / Frontend Summary (push) Canceled after 0s
QwenPaw Data Plugin Release / upload-oss (push) Canceled after 0s
Tests / Maintainer Approval (push) Canceled after 0s
Tests / Unit Tests - py3.11 - macos-latest (push) Canceled after 0s
Tests / Unit Tests - py3.11 - ubuntu-latest (push) Canceled after 0s
Tests / Unit Tests - py3.13 - ubuntu-latest (push) Canceled after 0s
Tests / Unit Tests - py3.11 - windows-latest (push) Canceled after 0s
Tests / Contract Tests - py3.11 - macos-latest (push) Canceled after 0s
Tests / Contract Tests - py3.11 - ubuntu-latest (push) Canceled after 0s
Tests / Contract Tests - py3.13 - ubuntu-latest (push) Canceled after 0s
Tests / Contract Tests - py3.11 - windows-latest (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - macos-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - macos-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - macos-latest - p2 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - fallback (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - p2 (push) Canceled after 0s
Tests / Integrated Tests - py3.13 - ubuntu-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.13 - ubuntu-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.13 - ubuntu-latest - p2 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - windows-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - windows-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - windows-latest - p2 (push) Canceled after 0s
Tests / Coverage Report (push) Canceled after 0s
Tests / Test Summary (push) Canceled after 0s
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Tests for the plugin manifest's declared QwenPaw compatibility range."""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from qwenpaw._version_compat import check_plugin_version_compat
|
|
from qwenpaw.plugins.architecture import PluginManifest
|
|
|
|
_MANIFEST = (
|
|
Path(__file__).resolve().parents[4]
|
|
/ "plugins"
|
|
/ "bundle"
|
|
/ "computer-use"
|
|
/ "plugin.json"
|
|
)
|
|
_FRONTEND_BUNDLE = _MANIFEST.parent / "dist" / "index.js"
|
|
|
|
|
|
def _manifest() -> PluginManifest:
|
|
# The real manifest is the subject: a test fixture would pass while the
|
|
# shipped file stays wrong.
|
|
return PluginManifest(**json.loads(_MANIFEST.read_text(encoding="utf-8")))
|
|
|
|
|
|
def test_built_frontend_embeds_the_manifest_version():
|
|
version = json.loads(_MANIFEST.read_text(encoding="utf-8"))["version"]
|
|
bundle = _FRONTEND_BUNDLE.read_text(encoding="utf-8")
|
|
|
|
assert f'"{version}"' in bundle, (
|
|
f"frontend bundle does not embed manifest version {version}; "
|
|
"rebuild it with `npm run build`"
|
|
)
|
|
|
|
|
|
def test_the_running_qwenpaw_is_inside_the_declared_range():
|
|
# The loader disables a plugin whose range excludes the running version, so
|
|
# this failing means the plugin ships dead on the current tree.
|
|
compatible, message = check_plugin_version_compat(_manifest())
|
|
assert compatible, message
|