Skip to content

Commit 44454d7

Browse files
committed
wip: add e2e test
Signed-off-by: Radek Ježek <[email protected]>
1 parent cf15b40 commit 44454d7

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed

apps/beeai-sdk/src/beeai_sdk/platform/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
from .file import *
77
from .model_provider import *
88
from .provider import *
9+
from .provider_build import *
910
from .vector_store import *

apps/beeai-server/tasks.toml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,14 @@ VM_NAME='{{option(name="vm-name", default="beeai-local-dev")}}'
213213

214214
["beeai-server:dev:test:start"]
215215
dir = "{{config_root}}/apps/beeai-server"
216-
run = "{{ mise_bin }} run beeai-server:dev:start --vm-name=beeai-local-test --set externalRegistries=null"
216+
run = """
217+
#!/bin/bash
218+
{{ mise_bin }} run beeai-server:dev:start \
219+
--vm-name=beeai-local-test \
220+
--set externalRegistries=null \
221+
--set providerBuilds.enabled=true \
222+
--set localDockerRegistry.enabled=true
223+
"""
217224

218225
["beeai-server:dev:test:delete"]
219226
dir = "{{config_root}}/apps/beeai-server"
@@ -253,7 +260,9 @@ curl http://localhost:8333 >/dev/null 2>&1 && echo "Another instance at localhos
253260
--set auth.enabled="true" \
254261
--set auth.basic.enabled="true" \
255262
--set auth.basic.adminPassword="test-password" \
256-
--set auth.jwtSecretKey="test-secret-key"
263+
--set auth.jwtSecretKey="test-secret-key" \
264+
--set providerBuilds.enabled=true \
265+
--set localDockerRegistry.enabled=true
257266
258267
259268
eval "$( {{ mise_bin }} run beeai-platform:shell --vm-name="$VM_NAME" )"

apps/beeai-server/tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class TestConfiguration(BaseSettings):
2828
llm_model: str = "other:llama3.1:8b"
2929
llm_api_key: Secret[str] = Secret("dummy")
3030
test_agent_image: str = "ghcr.io/i-am-bee/beeai-platform/official/beeai-framework/chat:0.3.2"
31+
test_agent_build_repo: str = "https://github.com/i-am-bee/beeai-platform-agent-starter"
3132
server_url: str = "http://beeai-platform-svc:8333"
3233
db_url: str = "postgresql+asyncpg://beeai-user:password@postgresql:5432/beeai"
3334

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Copyright 2025 © BeeAI a Series of LF Projects, LLC
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
import json
5+
import logging
6+
7+
import pytest
8+
from a2a.client.helpers import create_text_message_object
9+
from a2a.types import (
10+
TaskState,
11+
)
12+
from beeai_sdk.platform import BuildState, Provider, ProviderBuild
13+
14+
pytestmark = pytest.mark.e2e
15+
16+
logger = logging.getLogger(__name__)
17+
18+
19+
@pytest.mark.usefixtures("clean_up", "setup_platform_client")
20+
async def test_remote_agent_build_and_start(
21+
subtests,
22+
a2a_client_factory,
23+
get_final_task_from_stream,
24+
test_configuration,
25+
):
26+
with subtests.test("build example agent"):
27+
build = await ProviderBuild.create(location=test_configuration.test_agent_build_repo)
28+
async for message in build.stream_logs():
29+
logger.debug(json.dumps(message))
30+
build = await build.get()
31+
32+
assert build.status == BuildState.COMPLETED
33+
with subtests.test("run example agent"):
34+
_ = await Provider.create(location=build.destination)
35+
providers = await Provider.list()
36+
assert len(providers) == 1
37+
assert providers[0].source == build.destination
38+
assert providers[0].agent_card
39+
40+
async with a2a_client_factory(providers[0].agent_card) as a2a_client:
41+
with subtests.test("run chat agent for the first time"):
42+
num_parallel = 3
43+
message = create_text_message_object(content="test of sirens")
44+
task = await get_final_task_from_stream(a2a_client.send_message(message))
45+
46+
# Verify response
47+
assert task.status.state == TaskState.completed, f"Fail: {task.status.message.parts[0].root.text}"
48+
assert "test of sirens" in task.history[-1].parts[0].root.text

0 commit comments

Comments
 (0)