~jameinel/maas/space-from-name

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_compose_preseed.py

  • Committer: MAAS Lander
  • Author(s): Blake Rouse
  • Date: 2015-10-30 18:11:52 UTC
  • mfrom: (4433.4.4 fix-1511071)
  • Revision ID: maas_lander-20151030181152-ohz6gb5c9gsn3hsx
[r=andreserl,blake-rouse][bug=1510100,1511071][author=blake-rouse] Allow an administrator to disable the HTTP proxy completely. Drive-by fix for being able to clear the proxy field on the settings page.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
    NODE_STATUS,
24
24
    PRESEED_TYPE,
25
25
)
 
26
from maasserver.models.config import Config
26
27
from maasserver.rpc.testing.fixtures import RunningClusterRPCFixture
27
28
from maasserver.testing.factory import factory
28
29
from maasserver.testing.osystems import make_usable_osystem
45
46
 
46
47
class TestComposePreseed(MAASServerTestCase):
47
48
 
 
49
    def test_compose_preseed_for_commissioning_node_skips_apt_proxy(self):
 
50
        node = factory.make_Node(status=NODE_STATUS.COMMISSIONING)
 
51
        Config.objects.set_config("enable_http_proxy", False)
 
52
        preseed = yaml.safe_load(
 
53
            compose_preseed(PRESEED_TYPE.COMMISSIONING, node))
 
54
        self.assertNotIn('apt_proxy', preseed)
 
55
 
48
56
    def test_compose_preseed_for_commissioning_node_produces_yaml(self):
49
57
        node = factory.make_Node(status=NODE_STATUS.COMMISSIONING)
50
58
        apt_proxy = get_apt_proxy_for_node(node)
143
151
        self.assertEqual(apt_proxy, data["apt_proxy"])
144
152
        self.assertTrue(data["manual_cache_clean"])
145
153
 
 
154
    def test_compose_preseed_skips_apt_proxy(self):
 
155
        node = factory.make_Node(status=NODE_STATUS.READY)
 
156
        node.nodegroup.accept()
 
157
        self.useFixture(RunningClusterRPCFixture())
 
158
        Config.objects.set_config("enable_http_proxy", False)
 
159
        preseed = compose_preseed(PRESEED_TYPE.DEFAULT, node)
 
160
        self.assertNotIn('apt_proxy', preseed)
 
161
 
146
162
    def test_compose_preseed_with_curtin_installer(self):
147
163
        node = factory.make_Node(
148
164
            status=NODE_STATUS.READY, boot_type=NODE_BOOT.FASTPATH)
163
179
            preseed['datasource']['MAAS']['metadata_url'])
164
180
        self.assertEqual(apt_proxy, preseed['apt_proxy'])
165
181
 
 
182
    def test_compose_preseed_with_curtin_installer_skips_apt_proxy(self):
 
183
        node = factory.make_Node(
 
184
            status=NODE_STATUS.READY, boot_type=NODE_BOOT.FASTPATH)
 
185
        node.nodegroup.accept()
 
186
        self.useFixture(RunningClusterRPCFixture())
 
187
        Config.objects.set_config("enable_http_proxy", False)
 
188
        preseed = yaml.safe_load(
 
189
            compose_preseed(PRESEED_TYPE.CURTIN, node))
 
190
 
 
191
        self.assertNotIn('apt_proxy', preseed)
 
192
 
166
193
    def test_compose_preseed_with_osystem_compose_preseed(self):
167
194
        os_name = factory.make_name('os')
168
195
        osystem = make_osystem(self, os_name, [BOOT_IMAGE_PURPOSE.XINSTALL])