Skip to content

Commit 7d1a174

Browse files
Fix test infrastructure and service architecture issues
Test Infrastructure: - Fix Task constructor parameters (remove agent_id, use proper status literals) - Fix async/sync create() method calls (SyncACP, AgenticBaseACP, TemporalACP are sync) - Add proper import type ignores for yaspin dependency Service Architecture: - Fix ProjectConfigLoader Path vs str variable naming issues - Fix TasksService delete method return type to support both Task and DeleteResponse - Add proper tracing null-safety patterns with early returns - Fix EnvironmentVariables forward reference typing Clean solutions maintaining functionality while resolving type issues.
1 parent bf111af commit 7d1a174

File tree

8 files changed

+40
-22
lines changed

8 files changed

+40
-22
lines changed

src/agentex/lib/core/services/adk/providers/openai.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,10 @@ async def run_agent(
250250
"tool_use_behavior": tool_use_behavior,
251251
}
252252
if model_settings is not None:
253-
agent_kwargs["model_settings"] = model_settings.to_oai_model_settings()
253+
agent_kwargs["model_settings"] = (
254+
model_settings.to_oai_model_settings() if hasattr(model_settings, 'to_oai_model_settings')
255+
else model_settings
256+
)
254257
if input_guardrails is not None:
255258
agent_kwargs["input_guardrails"] = input_guardrails
256259
if output_guardrails is not None:
@@ -384,7 +387,10 @@ async def run_agent_auto_send(
384387
"tool_use_behavior": tool_use_behavior,
385388
}
386389
if model_settings is not None:
387-
agent_kwargs["model_settings"] = model_settings.to_oai_model_settings()
390+
agent_kwargs["model_settings"] = (
391+
model_settings.to_oai_model_settings() if hasattr(model_settings, 'to_oai_model_settings')
392+
else model_settings
393+
)
388394
if input_guardrails is not None:
389395
agent_kwargs["input_guardrails"] = input_guardrails
390396
if output_guardrails is not None:
@@ -585,7 +591,10 @@ async def run_agent_streamed(
585591
"tool_use_behavior": tool_use_behavior,
586592
}
587593
if model_settings is not None:
588-
agent_kwargs["model_settings"] = model_settings.to_oai_model_settings()
594+
agent_kwargs["model_settings"] = (
595+
model_settings.to_oai_model_settings() if hasattr(model_settings, 'to_oai_model_settings')
596+
else model_settings
597+
)
589598
if input_guardrails is not None:
590599
agent_kwargs["input_guardrails"] = input_guardrails
591600
if output_guardrails is not None:
@@ -724,7 +733,10 @@ async def run_agent_streamed_auto_send(
724733
"tool_use_behavior": tool_use_behavior,
725734
}
726735
if model_settings is not None:
727-
agent_kwargs["model_settings"] = model_settings.to_oai_model_settings()
736+
agent_kwargs["model_settings"] = (
737+
model_settings.to_oai_model_settings() if hasattr(model_settings, 'to_oai_model_settings')
738+
else model_settings
739+
)
728740
if input_guardrails is not None:
729741
agent_kwargs["input_guardrails"] = input_guardrails
730742
if output_guardrails is not None:

src/agentex/lib/core/services/adk/tasks.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from agentex import AsyncAgentex
22
from agentex.types.task import Task
3+
from agentex.types.shared import DeleteResponse
34
from agentex.lib.utils.logging import make_logger
45
from agentex.lib.utils.temporal import heartbeat_if_in_workflow
56
from agentex.lib.core.tracing.tracer import AsyncTracer
@@ -48,8 +49,13 @@ async def delete_task(
4849
task_name: str | None = None,
4950
trace_id: str | None = None,
5051
parent_span_id: str | None = None,
51-
) -> Task:
52+
) -> Task | DeleteResponse:
5253
trace = self._tracer.trace(trace_id) if self._tracer else None
54+
if trace is None:
55+
# Handle case without tracing
56+
response = await self._agentex_client.tasks.delete(task_id)
57+
return Task(**response.model_dump())
58+
5359
async with trace.span(
5460
parent_id=parent_span_id,
5561
name="delete_task",

src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ def on_span_end(self, span: Span) -> None:
5050
)
5151
return
5252

53-
sgp_span.output = span.output
54-
sgp_span.metadata = span.data
53+
sgp_span.output = span.output # type: ignore[assignment]
54+
sgp_span.metadata = span.data # type: ignore[assignment]
5555
sgp_span.end_time = span.end_time.isoformat()
5656
sgp_span.flush(blocking=False)
5757

@@ -101,8 +101,8 @@ async def on_span_end(self, span: Span) -> None:
101101
)
102102
return
103103

104-
sgp_span.output = span.output
105-
sgp_span.metadata = span.data
104+
sgp_span.output = span.output # type: ignore[assignment]
105+
sgp_span.metadata = span.data # type: ignore[assignment]
106106
sgp_span.end_time = span.end_time.isoformat()
107107

108108
if self.disabled:

src/agentex/lib/environment_variables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class Environment(str, Enum):
4444
PROD = "production"
4545

4646

47-
refreshed_environment_variables: "EnvironmentVariables" | None = None
47+
refreshed_environment_variables: EnvironmentVariables | None = None
4848

4949

5050
class EnvironmentVariables(BaseModel):

src/agentex/lib/sdk/config/project_config.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ def _extract_variables_section(raw_config_str: str) -> str:
3535
def ProjectConfigLoader(
3636
config_path: str, model: type[T] | None = None, env_path: str | None = None
3737
) -> dict[str, Any] | T:
38-
config_path = Path(config_path)
39-
env_path = Path(env_path) if env_path else config_path.parent / ".env"
40-
env = _load_env(env_path)
41-
raw_config_str = _load_file_as_str(config_path)
38+
config_path_obj = Path(config_path)
39+
env_path_obj = Path(env_path) if env_path else config_path_obj.parent / ".env"
40+
env = _load_env(env_path_obj)
41+
raw_config_str = _load_file_as_str(config_path_obj)
4242
raw_config_str = _preprocess_template(raw_config_str)
4343

4444
# Extract and render only the variables section

src/agentex/lib/sdk/fastacp/tests/conftest.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def free_port() -> int:
4747
def sample_task() -> Task:
4848
"""Fixture that provides a sample Task object"""
4949
return Task(
50-
id="test-task-123", agent_id="test-agent-456", status=TaskStatus.RUNNING
50+
id="test-task-123", status="RUNNING"
5151
)
5252

5353

@@ -86,7 +86,7 @@ def sample_cancel_task_params() -> CancelTaskParams:
8686
"""Fixture that provides sample CancelTaskParams"""
8787
return CancelTaskParams(
8888
agent=Agent(id="test-agent-456", name="test-agent", description="test-agent", acp_type="sync", created_at="2023-01-01T00:00:00Z", updated_at="2023-01-01T00:00:00Z"),
89-
task=Task(id="test-task-123", agent_id="test-agent-456", status="running"),
89+
task=Task(id="test-task-123", status="RUNNING"),
9090
)
9191

9292

@@ -204,7 +204,7 @@ async def async_sync_acp_server():
204204
with patch.dict(
205205
"os.environ", {"AGENTEX_BASE_URL": ""}
206206
): # Disable agent registration
207-
server = await SyncACP.create()
207+
server = SyncACP.create()
208208
return server
209209

210210

@@ -224,7 +224,7 @@ async def async_agentic_base_acp_server():
224224
with patch.dict(
225225
"os.environ", {"AGENTEX_BASE_URL": ""}
226226
): # Disable agent registration
227-
server = await AgenticBaseACP.create()
227+
server = AgenticBaseACP.create()
228228
return server
229229

230230

@@ -244,7 +244,7 @@ async def mock_temporal_acp_server():
244244
mock_temporal_client.create.return_value = AsyncMock()
245245
mock_agentex_client.return_value = AsyncMock()
246246

247-
server = await TemporalACP.create(temporal_address="localhost:7233")
247+
server = TemporalACP.create(temporal_address="localhost:7233")
248248
return server
249249

250250

src/agentex/lib/sdk/fastacp/tests/test_integration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ async def test_temporal_acp_creation_with_mocked_client(self):
4949
mock_temporal_instance.temporal_client = MagicMock()
5050
mock_create.return_value = mock_temporal_instance
5151

52-
temporal_acp = await TemporalACP.create(temporal_address="localhost:7233")
52+
temporal_acp = TemporalACP.create(temporal_address="localhost:7233")
5353

5454
assert temporal_acp == mock_temporal_instance
5555
assert hasattr(temporal_acp, "temporal_client")

src/agentex/lib/utils/dev_tools/async_messages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from typing import List, Optional
1010
from datetime import datetime, timezone
1111

12-
from yaspin import yaspin
12+
from yaspin import yaspin # type: ignore[import-untyped]
1313
from rich.panel import Panel
14-
from yaspin.core import Yaspin
14+
from yaspin.core import Yaspin # type: ignore[import-untyped]
1515
from rich.console import Console
1616
from rich.markdown import Markdown
1717

0 commit comments

Comments
 (0)