
This is a major breaking change too. In the process, also: - move all processing from juju status to actions (run the actions to get data; the status line will be minimal) - switch to COS integration, no longer legacy prometheus for the iperf benchmarks It should be mostly feature parity with the original magpie charm, but some things still need improving and iterating on, such as the spec for data returned from actions, and actual functional tests. Change-Id: I289d4e7a0dd373c5c6f2471ab710e754c167ab8c
35 lines
973 B
Python
35 lines
973 B
Python
#!/usr/bin/env python3
|
|
# Copyright 2023 Ubuntu
|
|
# See LICENSE file for licensing details.
|
|
|
|
import asyncio
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
import yaml
|
|
from pytest_operator.plugin import OpsTest
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
METADATA = yaml.safe_load(Path("./metadata.yaml").read_text())
|
|
APP_NAME = METADATA["name"]
|
|
|
|
|
|
@pytest.mark.abort_on_fail
|
|
async def test_build_and_deploy(ops_test: OpsTest):
|
|
"""Build the charm-under-test and deploy it together with related charms.
|
|
|
|
Assert on the unit status before any relations/configurations take place.
|
|
"""
|
|
# Build and deploy charm from local source folder
|
|
charm = await ops_test.build_charm(".")
|
|
|
|
# Deploy the charm and wait for active/idle status
|
|
await asyncio.gather(
|
|
ops_test.model.deploy(charm, application_name=APP_NAME),
|
|
ops_test.model.wait_for_idle(
|
|
apps=[APP_NAME], status="active", raise_on_blocked=True, timeout=1000
|
|
),
|
|
)
|