X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=examples%2Frelate.py;h=bdfb2d7814d84aaa3c247087410348c069fbf0cf;hb=46887b86181254efd72f59a8d6be468342afad83;hp=a8e39a050656e58719dfebe23f4e1ed2a8fada79;hpb=096fdda8130b0b0262194643745d694b6156a2e8;p=osm%2FN2VC.git diff --git a/examples/relate.py b/examples/relate.py index a8e39a0..bdfb2d7 100644 --- a/examples/relate.py +++ b/examples/relate.py @@ -1,5 +1,10 @@ """ -Deploy two charms and relate them. +This example: + +1. Connects to the current model +2. Resets it +3. Deploys two charms and relates them +4. Waits for units to be idle, then exits """ import asyncio @@ -8,6 +13,19 @@ import logging from juju.model import Model, ModelObserver +class MyRemoveObserver(ModelObserver): + async def on_change(self, delta, old, new, model): + if delta.type == 'remove': + assert(new.latest() == new) + assert(new.next() is None) + assert(new.dead) + assert(new.current) + assert(new.connected) + assert(new.previous().dead) + assert(not new.previous().current) + assert(not new.previous().connected) + + class MyModelObserver(ModelObserver): async def on_change(self, delta, old, new, model): if model.all_units_idle(): @@ -20,6 +38,7 @@ async def run(): model = Model() await model.connect_current() + model.add_observer(MyRemoveObserver()) await model.reset(force=True) model.add_observer(MyModelObserver())