Skip to content

Commit 2ef27d1

Browse files
committed
Add base_channel_to_series and update test
1 parent a90299a commit 2ef27d1

3 files changed

Lines changed: 20 additions & 5 deletions

File tree

juju/application.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,8 +371,7 @@ async def get_series(self):
371371
appGetResults = (await app_facade.Get(application=self.name))
372372
if self._facade_version() >= 15:
373373
base_channel = appGetResults.base.channel
374-
track = Channel.parse(base_channel).track
375-
return utils.get_version_series(track)
374+
return utils.base_channel_to_series(base_channel)
376375
return appGetResults.series
377376

378377
async def get_config(self):

juju/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,3 +382,11 @@ def get_local_charm_base(series, channel_from_arg, charm_metadata,
382382
charm_path)
383383

384384
return baseCls(channel_for_base, os_name_for_base)
385+
386+
def base_channel_to_series(channel):
387+
"""
388+
389+
:param str channel: is track/risk (e.g. 20.04/stable)
390+
:return: str series (e.g. focal)
391+
"""
392+
return get_version_series(origin.Channel.parse(channel).track)

tests/integration/test_model.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from juju.client import client
1717
from juju.errors import JujuError, JujuModelError, JujuUnitError, JujuConnectionError
1818
from juju.model import Model, ModelObserver
19-
from juju.utils import block_until, run_with_interrupt, wait_for_bundle
19+
from juju.utils import block_until, run_with_interrupt, wait_for_bundle, base_channel_to_series
2020

2121
from .. import base
2222

@@ -315,11 +315,19 @@ async def test_deploy_channels_revs(event_loop):
315315
@pytest.mark.asyncio
316316
async def test_deploy_from_ch_with_series(event_loop):
317317
charm = 'ch:ubuntu'
318-
for series in ['xenial', 'bionic', 'focal']:
318+
for series in ['focal']:
319319
async with base.CleanModel() as model:
320320
app_name = "ubuntu-{}".format(series)
321321
await model.deploy(charm, application_name=app_name, series=series)
322-
assert (await model.get_status())["applications"][app_name]["series"] == series
322+
status = (await model.get_status())
323+
app_status = status["applications"][app_name]
324+
325+
if 'series' in app_status.serialize():
326+
s = app_status['series']
327+
else:
328+
# If there's no series, we should have a base
329+
s = base_channel_to_series(app_status.base.channel)
330+
assert s == series
323331

324332

325333
@base.bootstrapped

0 commit comments

Comments
 (0)