~juju/ubuntu/quantal/juju/0.6

« back to all changes in this revision

Viewing changes to juju/unit/tests/test_charm.py

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-10-09 09:50:34 UTC
  • mto: (10.1.1 precise)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20111009095034-wqzww7z4tx2n0x43
Tags: upstream-0.5+bzr398
ImportĀ upstreamĀ versionĀ 0.5+bzr398

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 
9
9
from juju.charm import get_charm_from_path
10
10
from juju.charm.bundle import CharmBundle
11
 
from juju.errors import FileNotFound
12
11
from juju.charm.publisher import CharmPublisher
 
12
from juju.charm.tests import local_charm_id
13
13
from juju.charm.tests.test_directory import sample_directory
14
 
 
15
14
from juju.environment.config import EnvironmentsConfig
 
15
from juju.errors import FileNotFound
 
16
from juju.lib import under
16
17
from juju.state.environment import EnvironmentStateManager
17
18
from juju.state.errors import CharmStateNotFound
18
19
from juju.state.tests.common import StateTestBase
57
58
    def publish_charm(self, charm_path=sample_directory):
58
59
        charm = get_charm_from_path(charm_path)
59
60
        publisher = CharmPublisher(self.client, self.storage)
60
 
        yield publisher.add_charm("local", charm)
 
61
        yield publisher.add_charm(local_charm_id(charm), charm)
61
62
        charm_states = yield publisher.publish()
62
63
        returnValue((charm, charm_states[0]))
63
64
 
77
78
 
78
79
        # Verify the downloaded copy
79
80
        checksum = charm.get_sha256()
80
 
        charm_key = "%s:%s" % (
81
 
            charm.metadata.get_charm_id("local"), checksum)
 
81
        charm_id = local_charm_id(charm)
 
82
        charm_key = under.quote("%s:%s" % (charm_id, checksum))
82
83
        charm_path = os.path.join(charm_directory, charm_key)
83
84
 
84
85
        self.assertTrue(os.path.exists(charm_path))
85
86
        bundle = CharmBundle(charm_path)
86
 
        self.assertTrue(
87
 
            bundle.metadata.get_charm_id("local"),
88
 
            charm.metadata.get_charm_id("local"))
 
87
        self.assertEquals(bundle.get_revision(), charm.get_revision())
89
88
 
90
89
        self.assertEqual(checksum, bundle.get_sha256())
91
90
 
117
116
            return True
118
117
 
119
118
        mock_storage.get_url(MATCH(
120
 
            partial(match_string, "charms-local:dummy-1")))
 
119
            partial(match_string, "local_3a_series_2f_dummy-1")))
121
120
 
122
121
        self.mocker.result("http://example.com/foobar.zip")
123
122
 
124
123
        download_page = self.mocker.replace(downloadPage)
125
124
        download_page(
126
125
            MATCH(partial(match_string, "http://example.com/foobar.zip")),
127
 
            MATCH(partial(match_string, "local:dummy-1")))
 
126
            MATCH(partial(match_string, "local_3a_series_2f_dummy-1")))
128
127
 
129
128
        def bundle_in_place(url, local_path):
130
129
            # must keep ref to charm else temp file goes out of scope.
156
155
 
157
156
        mock_storage = self.mocker.patch(self.storage)
158
157
        mock_storage.get_url(
159
 
            MATCH(partial(match_string, "charms-local:dummy-1")))
 
158
            MATCH(partial(match_string, "local_3a_series_2f_dummy-1")))
160
159
        remote_url = "http://example.com/foobar.zip"
161
160
        self.mocker.result(remote_url)
162
161
 
163
162
        download_page = self.mocker.replace(downloadPage)
164
163
        download_page(
165
164
            MATCH(partial(match_string, "http://example.com/foobar.zip")),
166
 
            MATCH(partial(match_string, "local:dummy-1")))
 
165
            MATCH(partial(match_string, "local_3a_series_2f_dummy-1")))
167
166
 
168
167
        self.mocker.result(fail(Error("400", "Bad Stuff", "")))
169
168
        self.mocker.replay()
189
188
                self.client, "local:mickey-21", charm_directory),
190
189
            CharmStateNotFound)
191
190
 
192
 
        self.assertEquals(str(error),
193
 
                          "Charm 'local:mickey-21' was not found")
 
191
        self.assertEquals(str(error), "Charm 'local:mickey-21' was not found")