~jimbaker/pyjuju/ssh-known_hosts

« back to all changes in this revision

Viewing changes to juju/control/tests/test_remove_relation.py

  • Committer: Gustavo Niemeyer
  • Date: 2011-09-16 00:37:59 UTC
  • mfrom: (348.1.13 the-big-renaming)
  • Revision ID: gustavo@niemeyer.net-20110916003759-bx3vsznroj4gv7w7
Merging the-big-renaming branch! Say hello to juju!

This is a massive change renaming and fixing several things
on the way. Unfortunately my day is finishing and I didn't
manage to get 100% of the tests passing, but there's very
few things broken right now, and I don't want to keep such
a massive change flying around.

We'll sort any details out tomorrow.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 
5
5
from twisted.internet.defer import inlineCallbacks, returnValue
6
6
 
7
 
from ensemble.control import main, remove_relation
8
 
from ensemble.control.tests.common import ControlToolTest
9
 
from ensemble.formula.tests.test_repository import RepositoryTestBase
10
 
from ensemble.state.errors import ServiceStateNotFound
11
 
from ensemble.state.tests.test_service import ServiceStateManagerTestBase
 
7
from juju.control import main, remove_relation
 
8
from juju.control.tests.common import ControlToolTest
 
9
from juju.charm.tests.test_repository import RepositoryTestBase
 
10
from juju.state.errors import ServiceStateNotFound
 
11
from juju.state.tests.test_service import ServiceStateManagerTestBase
12
12
 
13
13
 
14
14
class ControlRemoveRelationTest(
18
18
    def setUp(self):
19
19
        yield super(ControlRemoveRelationTest, self).setUp()
20
20
        config = {
21
 
            "ensemble": "environments",
22
21
            "environments": {
23
22
                "firstenv": {
24
23
                    "type": "dummy", "admin-secret": "homer"}}}
35
34
                yield self.service_state_manager.get_service_state(
36
35
                    service_name)
37
36
            except ServiceStateNotFound:
38
 
                yield self.add_service_from_formula(service_name)
 
37
                yield self.add_service_from_charm(service_name)
39
38
        endpoint_pairs = yield self.service_state_manager.join_descriptors(
40
39
            *service_names)
41
40
        endpoints = endpoint_pairs[0]
87
86
        environment = self.config.get("firstenv")
88
87
        yield remove_relation.remove_relation(
89
88
            self.config, environment, False,
90
 
            logging.getLogger("ensemble.control.cli"), "mysql", "wordpress")
 
89
            logging.getLogger("juju.control.cli"), "mysql", "wordpress")
91
90
        self.assertIn(
92
91
            "Removed mysql relation from all service units.",
93
92
            self.output.getvalue())
114
113
        """Test two descriptor arguments are required for command."""
115
114
        self.assertRaises(SystemExit, main, ["remove-relation"])
116
115
        self.assertIn(
117
 
            "ensemble remove-relation: error: too few arguments",
 
116
            "juju remove-relation: error: too few arguments",
118
117
            self.stderr.getvalue())
119
118
 
120
119
    def test_too_many_arguments_provided(self):
122
121
        self.assertRaises(
123
122
            SystemExit, main, ["remove-relation", "foo", "fum", "bar"])
124
123
        self.assertIn(
125
 
            "ensemble: error: unrecognized arguments: bar",
 
124
            "juju: error: unrecognized arguments: bar",
126
125
            self.stderr.getvalue())
127
126
 
128
127
    @inlineCallbacks
129
128
    def test_missing_service(self):
130
129
        """Test command fails if a service in the relation is missing."""
131
 
        yield self.add_service_from_formula("mysql")
 
130
        yield self.add_service_from_charm("mysql")
132
131
        # but not wordpress
133
132
        wait_on_reactor_stopped = self.setup_cli_reactor()
134
133
        self.setup_exit(0)
142
141
    @inlineCallbacks
143
142
    def test_no_common_relation_type(self):
144
143
        """Test command fails if no common relation between services."""
145
 
        yield self.add_service_from_formula("mysql")
146
 
        yield self.add_service_from_formula("riak")
 
144
        yield self.add_service_from_charm("mysql")
 
145
        yield self.add_service_from_charm("riak")
147
146
        wait_on_reactor_stopped = self.setup_cli_reactor()
148
147
        self.setup_exit(0)
149
148
        self.mocker.replay()
154
153
    @inlineCallbacks
155
154
    def test_ambiguous_pairing(self):
156
155
        """Test command fails because the relation is ambiguous."""
157
 
        yield self.add_service_from_formula("mysql2")
158
 
        yield self.add_service_from_formula("wordpress")
 
156
        yield self.add_service_from_charm("mysql2")
 
157
        yield self.add_service_from_charm("wordpress")
159
158
        wait_on_reactor_stopped = self.setup_cli_reactor()
160
159
        self.setup_exit(0)
161
160
        self.mocker.replay()
164
163
        self.assertIn("Ambiguous endpoints", self.stderr.getvalue())
165
164
 
166
165
    @inlineCallbacks
167
 
    def test_missing_formula(self):
168
 
        """Test command fails because service has no corresponding formula."""
169
 
        yield self.add_service("mysql_no_formula")
170
 
        yield self.add_service_from_formula("wordpress")
 
166
    def test_missing_charm(self):
 
167
        """Test command fails because service has no corresponding charm."""
 
168
        yield self.add_service("mysql_no_charm")
 
169
        yield self.add_service_from_charm("wordpress")
171
170
        wait_on_reactor_stopped = self.setup_cli_reactor()
172
171
        self.setup_exit(0)
173
172
        self.mocker.replay()
174
 
        main(["remove-relation", "wordpress", "mysql_no_formula"])
 
173
        main(["remove-relation", "wordpress", "mysql_no_charm"])
175
174
        yield wait_on_reactor_stopped
176
175
        self.assertIn("No matching endpoints", self.stderr.getvalue())
177
176
 
181
180
        wait_on_reactor_stopped = self.setup_cli_reactor()
182
181
        self.setup_exit(0)
183
182
        self.mocker.replay()
184
 
        yield self.add_service_from_formula("mysql")
185
 
        yield self.add_service_from_formula("wordpress")
 
183
        yield self.add_service_from_charm("mysql")
 
184
        yield self.add_service_from_charm("wordpress")
186
185
        main(["remove-relation", "mysql", "wordpress"])
187
186
        yield wait_on_reactor_stopped
188
187
        self.assertIn(