Files
agent-radar 1a3a4ccde1
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
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:01:50 +08:00

109 lines
2.9 KiB
Python

# -*- coding: utf-8 -*-
"""Integration tests for Memory & ReMe module internals.
Covers src/qwenpaw/agents/memory/* (proactive_utils, base manager)
— 956 uncovered lines.
"""
from __future__ import annotations
import json
from datetime import datetime, timezone
import pytest
# ------------------------------------------------------------------ #
# proactive_utils
# ------------------------------------------------------------------ #
@pytest.mark.integration
@pytest.mark.p1
def test_ensure_tz_aware_naive() -> None:
"""ensure_tz_aware attaches UTC to a naive datetime."""
from qwenpaw.agents.memory.proactive.proactive_utils import (
ensure_tz_aware,
)
naive = datetime(2026, 8, 26, 12, 0, 0)
aware = ensure_tz_aware(naive)
assert aware.tzinfo is not None
@pytest.mark.integration
@pytest.mark.p1
def test_ensure_tz_aware_already() -> None:
"""ensure_tz_aware keeps an aware datetime unchanged."""
from qwenpaw.agents.memory.proactive.proactive_utils import (
ensure_tz_aware,
)
aware = datetime(2026, 8, 26, 12, 0, 0, tzinfo=timezone.utc)
assert ensure_tz_aware(aware) == aware
@pytest.mark.integration
@pytest.mark.p1
def test_load_json_safely_dict() -> None:
"""load_json_safely parses a JSON string."""
from qwenpaw.agents.memory.proactive.proactive_utils import (
load_json_safely,
)
assert load_json_safely(json.dumps({"a": 1})) == {"a": 1}
@pytest.mark.integration
@pytest.mark.p1
def test_load_json_safely_garbage() -> None:
"""load_json_safely returns None for garbage input."""
from qwenpaw.agents.memory.proactive.proactive_utils import (
load_json_safely,
)
assert load_json_safely("not json") is None
@pytest.mark.integration
@pytest.mark.p1
def test_extract_content_string() -> None:
"""extract_content returns plain string content."""
from qwenpaw.agents.memory.proactive.proactive_utils import (
extract_content,
)
assert extract_content("hello") == "hello"
# ------------------------------------------------------------------ #
# base memory manager
# ------------------------------------------------------------------ #
@pytest.mark.integration
@pytest.mark.p1
def test_get_memory_manager_backend_unknown() -> None:
"""get_memory_manager_backend raises or falls back for unknown."""
from qwenpaw.agents.memory.base_memory_manager import (
get_memory_manager_backend,
)
try:
backend = get_memory_manager_backend("integ-unknown-backend")
assert backend is not None
except (ValueError, KeyError):
pass # unknown backend may be rejected
@pytest.mark.integration
@pytest.mark.p1
def test_get_memory_manager_backend_reme() -> None:
"""get_memory_manager_backend resolves the reme backend."""
from qwenpaw.agents.memory.base_memory_manager import (
get_memory_manager_backend,
)
backend = get_memory_manager_backend("reme")
assert backend is not None