Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
20 lines
682 B
Python
20 lines
682 B
Python
"""Focused validation for Experiment 4-3 desktop/mobile execution tools."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import asyncio
|
|
|
|
from extended_tools import ExtendedTools
|
|
|
|
|
|
def test_virtual_desktop_rejects_non_https() -> None:
|
|
result = asyncio.run(ExtendedTools().virtual_desktop_execute(
|
|
"http://example.com", "unused.png"))
|
|
assert result == {"success": False, "error": "Only HTTPS URLs are allowed"}
|
|
|
|
|
|
def test_virtual_mobile_rejects_unsafe_container_name() -> None:
|
|
result = asyncio.run(ExtendedTools().virtual_mobile_execute(
|
|
"container; touch escaped", "unused.png"))
|
|
assert result == {"success": False, "error": "Invalid Docker container name"}
|