~hazmat/pyjuju/proposed-support

« back to all changes in this revision

Viewing changes to juju/providers/common/tests/test_bootstrap.py

  • Committer: kapil.thangavelu at canonical
  • Date: 2012-05-22 22:08:15 UTC
  • mfrom: (484.1.53 trunk)
  • Revision ID: kapil.thangavelu@canonical.com-20120522220815-acyt8m89i9ybe0w1
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import logging
2
2
import tempfile
3
3
 
4
 
from twisted.internet.defer import fail, succeed
 
4
from twisted.internet.defer import fail, succeed, inlineCallbacks
5
5
 
6
6
from juju.errors import EnvironmentNotFound, ProviderError
7
7
from juju.lib.testing import TestCase
 
8
from juju.machine.tests.test_constraints import dummy_cs
8
9
from juju.providers.common.base import MachineProviderBase
9
10
from juju.providers.dummy import DummyMachine, FileStorage
10
11
 
27
28
 
28
29
class DummyProvider(MachineProviderBase):
29
30
 
30
 
    def __init__(self, file_storage, zookeeper):
 
31
    provider_type = "dummy"
 
32
    config = {"default-series": "splendid"}
 
33
 
 
34
    def __init__(self, test, file_storage, zookeeper):
 
35
        self._test = test
31
36
        self._file_storage = file_storage
32
37
        self._zookeeper = zookeeper
33
38
 
41
46
            return succeed([self._zookeeper])
42
47
        return fail(EnvironmentNotFound())
43
48
 
44
 
    def start_machine(self, machine_id, master=False):
45
 
        assert master is True
 
49
    def start_machine(self, machine_data, master=False):
 
50
        self._test.assertTrue(master)
 
51
        self._test.assertEquals(machine_data["machine-id"], "0")
 
52
        constraints = machine_data["constraints"]
 
53
        self._test.assertEquals(constraints["provider-type"], "dummy")
 
54
        self._test.assertEquals(constraints["ubuntu-series"], "splendid")
 
55
        self._test.assertEquals(constraints["arch"], "arm")
46
56
        return [DummyMachine("i-keepzoos")]
47
57
 
48
58
 
49
59
class BootstrapTest(TestCase):
50
60
 
 
61
    @inlineCallbacks
 
62
    def setUp(self):
 
63
        yield super(BootstrapTest, self).setUp()
 
64
        self.constraints = dummy_cs.parse(["arch=arm"]).with_series("splendid")
 
65
 
51
66
    def test_unknown_error(self):
52
 
        provider = DummyProvider(None, SomeError())
53
 
        d = provider.bootstrap()
 
67
        provider = DummyProvider(self, None, SomeError())
 
68
        d = provider.bootstrap(self.constraints)
54
69
        self.assertFailure(d, SomeError)
55
70
        return d
56
71
 
57
72
    def test_zookeeper_exists(self):
58
73
        log = self.capture_logging("juju.common", level=logging.DEBUG)
59
74
        provider = DummyProvider(
60
 
            WorkingFileStorage(), DummyMachine("i-alreadykeepzoos"))
61
 
        d = provider.bootstrap()
 
75
            self, WorkingFileStorage(), DummyMachine("i-alreadykeepzoos"))
 
76
        d = provider.bootstrap(self.constraints)
62
77
 
63
78
        def verify(machines):
64
79
            (machine,) = machines
73
88
        return d
74
89
 
75
90
    def test_bad_storage(self):
76
 
        provider = DummyProvider(UnwritableFileStorage(), None)
77
 
        d = provider.bootstrap()
 
91
        provider = DummyProvider(self, UnwritableFileStorage(), None)
 
92
        d = provider.bootstrap(self.constraints)
78
93
        self.assertFailure(d, ProviderError)
79
94
 
80
95
        def verify(error):
87
102
 
88
103
    def test_create_zookeeper(self):
89
104
        log = self.capture_logging("juju.common", level=logging.DEBUG)
90
 
        provider = DummyProvider(WorkingFileStorage(), None)
91
 
        d = provider.bootstrap()
 
105
        provider = DummyProvider(self, WorkingFileStorage(), None)
 
106
        d = provider.bootstrap(self.constraints)
92
107
 
93
108
        def verify(machines):
94
109
            (machine,) = machines