Files
agent-framework/python/packages/purview/tests/purview/conftest.py
T
Eduard van Valkenburg 0521f5bed8 Python: [BREAKING] Simplify API: ChatAgent -> Agent, ChatMessage -> Message (#3747)
* [BREAKING] Rename ChatAgent -> Agent, ChatMessage -> Message, ChatClientProtocol -> SupportsChatGetResponse

Simplify the public API by removing redundant 'Chat' prefix from core types:
- ChatAgent -> Agent
- RawChatAgent -> RawAgent
- ChatMessage -> Message
- ChatClientProtocol -> SupportsChatGetResponse

Also renamed internal WorkflowMessage (was Message in _runner_context) to avoid collision.

No backward compatibility aliases - this is a clean breaking change.

* [BREAKING] Rename Agent chat_client parameter to client

* Fix rebase issues: WorkflowMessage references and broken markdown links

* Fix formatting and lint issues from code quality checks

* Fix import ordering in workflow sample files

* fixed rebase

* Fix test failures: use WorkflowMessage and A2AMessage after ChatMessage→Message rename

- Replace Message(data=..., source_id=...) with WorkflowMessage(...) in workflow tests
- Fix isinstance check in A2A agent to use A2AMessage instead of Message
- Fix import in test_workflow_observability.py (Message→WorkflowMessage)

* Fix lint, fmt, and sample errors after ChatMessage→Message rename

- Auto-fix 70+ ruff lint issues across samples (ChatMessage→Message refs)
- Fix HostedVectorStoreContent→Content.from_hosted_vector_store in file search sample
- Fix _normalize_messages→normalize_messages in custom agent sample
- Fix context.terminate→raise MiddlewareTermination in middleware samples
- Fix with_update_hook→with_transform_hook in override middleware sample
- Add TOptions_co import back to custom_chat_client sample
- Add noqa for FastAPI File() default in chatkit sample
- Fix B023 loop variable capture in weather agent sample

* fix: update Agent constructor calls from chat_client to client in declaration-only tool tests

* fix: add register_cleanup to devui lazy-loading proxy and type stub

* fixed tests and updated new pieces

* fix agui typevar

* fix merge errors

* fix merge conflicts

* fiux merge

* Remove unused links

---------

Co-authored-by: Evan Mattson <evan.mattson@microsoft.com>
2026-02-10 23:04:32 +00:00

69 lines
2.2 KiB
Python

# Copyright (c) Microsoft. All rights reserved.
"""Shared pytest fixtures for Purview tests."""
import pytest
from agent_framework_purview._models import (
Activity,
ActivityMetadata,
ContentToProcess,
DeviceMetadata,
IntegratedAppMetadata,
OperatingSystemSpecifications,
PolicyLocation,
ProcessContentRequest,
ProcessConversationMetadata,
ProtectedAppMetadata,
PurviewTextContent,
)
@pytest.fixture
def content_to_process_factory():
"""Factory fixture to create ContentToProcess objects with test data."""
def _create_content(text: str = "Test") -> ContentToProcess:
text_content = PurviewTextContent(data=text)
metadata = ProcessConversationMetadata(
identifier="msg-1",
content=text_content,
name="Test",
is_truncated=False,
)
activity_meta = ActivityMetadata(activity=Activity.UPLOAD_TEXT)
device_meta = DeviceMetadata(
operating_system_specifications=OperatingSystemSpecifications(
operating_system_platform="Windows", operating_system_version="10"
)
)
integrated_app = IntegratedAppMetadata(name="App", version="1.0")
location = PolicyLocation(data_type="microsoft.graph.policyLocationApplication", value="app-id")
protected_app = ProtectedAppMetadata(name="Protected", version="1.0", application_location=location)
return ContentToProcess(
content_entries=[metadata],
activity_metadata=activity_meta,
device_metadata=device_meta,
integrated_app_metadata=integrated_app,
protected_app_metadata=protected_app,
)
return _create_content
@pytest.fixture
def process_content_request_factory(content_to_process_factory):
"""Factory fixture to create ProcessContentRequest objects with test data."""
def _create_request(
text: str = "Test", user_id: str = "user-123", tenant_id: str = "tenant-456"
) -> ProcessContentRequest:
content = content_to_process_factory(text)
return ProcessContentRequest(
content_to_process=content,
user_id=user_id,
tenant_id=tenant_id,
)
return _create_request