X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Ftests%2Fintegration%2Ftest_application.py;fp=modules%2Flibjuju%2Ftests%2Fintegration%2Ftest_application.py;h=7b780da91b4dfbfb0ae0c1e27a6b5b80f1ccb299;hp=1a4fcaabd027ce853f027cd50be2a3575dda21bd;hb=1a15d1c84fc826fa7996c1c9d221a324edd33432;hpb=fd577a36aaf408c845f3bb8b3f28ecbbf3332107 diff --git a/modules/libjuju/tests/integration/test_application.py b/modules/libjuju/tests/integration/test_application.py index 1a4fcaa..7b780da 100644 --- a/modules/libjuju/tests/integration/test_application.py +++ b/modules/libjuju/tests/integration/test_application.py @@ -1,3 +1,4 @@ +import asyncio import pytest from .. import base @@ -92,3 +93,32 @@ async def test_upgrade_charm_switch(event_loop): assert app.data['charm-url'] == 'cs:ubuntu-0' await app.upgrade_charm(switch='ubuntu-8') assert app.data['charm-url'] == 'cs:ubuntu-8' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_upgrade_charm_resource(event_loop): + async with base.CleanModel() as model: + app = await model.deploy('cs:~cynerva/upgrade-charm-resource-test-1') + + def units_ready(): + if not app.units: + return False + unit = app.units[0] + return unit.workload_status == 'active' and \ + unit.agent_status == 'idle' + + await asyncio.wait_for(model.block_until(units_ready), timeout=480) + unit = app.units[0] + expected_message = 'I have no resource.' + assert unit.workload_status_message == expected_message + + await app.upgrade_charm(revision=2) + await asyncio.wait_for( + model.block_until( + lambda: unit.workload_status_message != 'I have no resource.' + ), + timeout=60 + ) + expected_message = 'My resource: I am the resource.' + assert app.units[0].workload_status_message == expected_message