From: Cory Johns Date: Wed, 14 Jun 2017 17:58:20 +0000 (-0400) Subject: Fix deploying non-stable channels and explicit revs (#144) X-Git-Tag: 0.5.2~1 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;ds=sidebyside;h=0491d0bde941bbbda28dec771f71ac5cc41f21e6;p=osm%2FN2VC.git Fix deploying non-stable channels and explicit revs (#144) * Fix deploying non-stable channels and explicit revs Fixes #143 * Bump timeout on status test * Minor docstring fix --- diff --git a/juju/model.py b/juju/model.py index 160707b..4db711b 100644 --- a/juju/model.py +++ b/juju/model.py @@ -1002,7 +1002,7 @@ class Model(object): :param dict bind: : pairs :param dict budget: : pairs :param str channel: Charm store channel from which to retrieve - the charm or bundle, e.g. 'development' + the charm or bundle, e.g. 'edge' :param dict config: Charm configuration dictionary :param constraints: Service constraints :type constraints: :class:`juju.Constraints` @@ -1040,7 +1040,7 @@ class Model(object): if is_local: entity_id = entity_url.replace('local:', '') else: - entity = await self.charmstore.entity(entity_url) + entity = await self.charmstore.entity(entity_url, channel=channel) entity_id = entity['Id'] client_facade = client.ClientFacade.from_connection(self.connection) @@ -1072,8 +1072,6 @@ class Model(object): application_name = entity['Meta']['charm-metadata']['Name'] if not series: series = self._get_series(entity_url, entity) - if not channel: - channel = 'stable' await client_facade.AddCharm(channel, entity_id) # XXX: we're dropping local resources here, but we don't # actually support them yet anyway diff --git a/tests/integration/test_machine.py b/tests/integration/test_machine.py index 5909c05..499a7d3 100644 --- a/tests/integration/test_machine.py +++ b/tests/integration/test_machine.py @@ -28,7 +28,7 @@ async def test_status(event_loop): await asyncio.wait_for( model.block_until(lambda: (machine.status == 'running' and machine.agent_status == 'started')), - timeout=240) + timeout=480) assert machine.status == 'running' # there is some inconsistency in the message case between providers diff --git a/tests/integration/test_model.py b/tests/integration/test_model.py index 92d2055..088dcd5 100644 --- a/tests/integration/test_model.py +++ b/tests/integration/test_model.py @@ -34,6 +34,22 @@ async def test_deploy_bundle(event_loop): assert app in model.applications +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_channels_revs(event_loop): + async with base.CleanModel() as model: + charm = 'cs:~johnsca/libjuju-test' + stable = await model.deploy(charm, 'a1') + edge = await model.deploy(charm, 'a2', channel='edge') + rev = await model.deploy(charm+'-2', 'a3') + + assert [a.charm_url for a in (stable, edge, rev)] == [ + 'cs:~johnsca/libjuju-test-1', + 'cs:~johnsca/libjuju-test-2', + 'cs:~johnsca/libjuju-test-2', + ] + + @base.bootstrapped @pytest.mark.asyncio async def test_add_machine(event_loop): diff --git a/tox.ini b/tox.ini index 5b2d82e..5668cdf 100644 --- a/tox.ini +++ b/tox.ini @@ -20,8 +20,8 @@ deps = [testenv:py35] # default tox env excludes integration tests -commands = py.test -ra -s -x -n auto -k 'not integration' {posargs} +commands = py.test -ra -v -s -x -n auto -k 'not integration' {posargs} [testenv:integration] basepython=python3 -commands = py.test -ra -s -x -n auto {posargs} +commands = py.test -ra -v -s -x -n auto {posargs}