SDK

Python SDK

Install and use the AEON Python SDK to push builds, run TTCN-3 campaigns, stream logs, and assert verdicts inside pytest.

6 min read

bashbash
pip install aeon-cloud

Run a campaign

pythonpython
from aeon import Client

client = Client()                     # reads AEON_TOKEN

build = client.builds.push("./srsue-bundle.tar.gz", tag="rc3", release=18)

run = client.executions.create(build=build.tag, campaign="smoke", lanes=4)
for line in run.stream_logs():
    print(line.layer, line.text)

result = run.wait()
print(result.verdict, result.duration_s)
for case in result.failed_cases():
    print(case.id, case.reason, case.clause)

Assert inside pytest

pythonpython
import pytest
from aeon import Client

@pytest.fixture(scope="session")
def registration_run():
    return Client().executions.create(
        build="rc3", cases=["TC_6_1_1_1", "TC_6_1_1_2"],
    ).wait()

def test_initial_registration_passes(registration_run):
    case = registration_run.case("TC_6_1_1_1")
    assert case.verdict == "pass", case.reason

Async client

pythonpython
import asyncio
from aeon import AsyncClient

async def main():
    async with AsyncClient() as c:
        runs = [c.executions.create(build="rc3", case=cid) for cid in cases]
        results = await asyncio.gather(*(r.wait() for r in await asyncio.gather(*runs)))
        print(sum(r.verdict == "pass" for r in results), "passed")

asyncio.run(main())

Run this against a real SDR lane

The tester is a service, not a box. Push a build, reserve a lane, get a verdict.