~ubuntu-branches/ubuntu/wily/heat/wily

« back to all changes in this revision

Viewing changes to heat/tests/test_environment.py

  • Committer: Package Import Robot
  • Author(s): Corey Bryant, Corey Bryant, James Page
  • Date: 2015-07-07 17:06:19 UTC
  • mfrom: (1.1.26) (45.1.1 vivid-proposed)
  • Revision ID: package-import@ubuntu.com-20150707170619-hra2dbjpfofpou4s
Tags: 1:5.0.0~b1-0ubuntu1
[ Corey Bryant ]
* New upstream milestone for OpenStack Liberty:
  - d/control: Align (build-)depends with upstream.
  - d/p/fix-requirements.patch: Rebased.
  - d/p/sudoers_patch.patch: Rebased.

[ James Page ]
* d/s/options: Ignore any removal of egg-info data during package clean.
* d/control: Drop MySQL and PostgreSQL related BD's, not required for unit
  testing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
import six
21
21
 
22
22
from heat.common import environment_format
 
23
from heat.common import exception
23
24
from heat.engine import environment
24
25
from heat.engine import resources
25
26
from heat.engine.resources.aws.ec2 import instance
38
39
    def test_load_old_parameters(self):
39
40
        old = {u'a': u'ff', u'b': u'ss'}
40
41
        expected = {u'parameters': old,
 
42
                    u'encrypted_param_names': [],
41
43
                    u'parameter_defaults': {},
42
44
                    u'resource_registry': {u'resources': {}}}
43
45
        env = environment.Environment(old)
45
47
 
46
48
    def test_load_new_env(self):
47
49
        new_env = {u'parameters': {u'a': u'ff', u'b': u'ss'},
 
50
                   u'encrypted_param_names': [],
48
51
                   u'parameter_defaults': {u'ff': 'new_def'},
49
52
                   u'resource_registry': {u'OS::Food': u'fruity.yaml',
50
53
                                          u'resources': {}}}
56
59
        prev_params = {'foo': 'bar', 'tester': 'Yes'}
57
60
        params = {}
58
61
        expected = {'parameters': prev_params,
 
62
                    'encrypted_param_names': [],
59
63
                    'parameter_defaults': {},
60
64
                    'resource_registry': {'resources': {}}}
61
65
        prev_env = environment.Environment(
70
74
        prev_params = {'foo': 'bar', 'tester': 'Yes'}
71
75
        params = {'tester': 'patched'}
72
76
        expected = {'parameters': {'foo': 'bar', 'tester': 'patched'},
 
77
                    'encrypted_param_names': [],
73
78
                    'parameter_defaults': {},
74
79
                    'resource_registry': {'resources': {}}}
75
80
        prev_env = environment.Environment(
85
90
                       'another_tester': 'Yes'}
86
91
        params = {'tester': 'patched'}
87
92
        expected = {'parameters': {'foo': 'bar', 'tester': 'patched'},
 
93
                    'encrypted_param_names': [],
88
94
                    'parameter_defaults': {},
89
95
                    'resource_registry': {'resources': {}}}
90
96
        prev_env = environment.Environment(
99
105
        prev_params = {'foo': 'bar', 'tester': 'Yes'}
100
106
        params = {}
101
107
        expected = {'parameters': {'foo': 'bar'},
 
108
                    'encrypted_param_names': [],
102
109
                    'parameter_defaults': {},
103
110
                    'resource_registry': {'resources': {}}}
104
111
        prev_env = environment.Environment(
263
270
                                env.get_resource_info('OS::Test::Dummy',
264
271
                                                      'my_fip'))
265
272
 
 
273
    def test_env_register_while_get_resource_info(self):
 
274
        env_test = {u'resource_registry': {
 
275
            u'OS::Test::Dummy': self.resource_type}}
 
276
        env = environment.Environment()
 
277
        env.load(env_test)
 
278
        env.get_resource_info('OS::Test::Dummy')
 
279
        self.assertEqual({'OS::Test::Dummy': self.resource_type,
 
280
                          'resources': {}},
 
281
                         env.user_env_as_dict().get(
 
282
                             environment_format.RESOURCE_REGISTRY))
 
283
 
 
284
        env_test = {u'resource_registry': {
 
285
            u'resources': {u'test': {u'OS::Test::Dummy': self.resource_type}}}}
 
286
        env.load(env_test)
 
287
        env.get_resource_info('OS::Test::Dummy')
 
288
        self.assertEqual({u'OS::Test::Dummy': self.resource_type,
 
289
                          'resources': {u'test': {u'OS::Test::Dummy':
 
290
                                                  self.resource_type}}},
 
291
                         env.user_env_as_dict().get(
 
292
                             environment_format.RESOURCE_REGISTRY))
 
293
 
266
294
 
267
295
class GlobalEnvLoadingTest(common.HeatTestCase):
268
296
 
466
494
        new_params = {'foo': 'bar', 'tester': 'Yes'}
467
495
        penv = environment.Environment()
468
496
        expected = {'parameters': new_params,
 
497
                    'encrypted_param_names': [],
469
498
                    'parameter_defaults': {},
470
499
                    'resource_registry': {'resources': {}}}
471
500
        cenv = environment.get_child_environment(penv, new_params)
475
504
        new_params = {'parameters': {'foo': 'bar', 'tester': 'Yes'}}
476
505
        penv = environment.Environment()
477
506
        expected = {'parameter_defaults': {},
 
507
                    'encrypted_param_names': [],
478
508
                    'resource_registry': {'resources': {}}}
479
509
        expected.update(new_params)
480
510
        cenv = environment.get_child_environment(penv, new_params)
485
515
        parent_params = {'parameters': {'gone': 'hopefully'}}
486
516
        penv = environment.Environment(env=parent_params)
487
517
        expected = {'parameter_defaults': {},
 
518
                    'encrypted_param_names': [],
488
519
                    'resource_registry': {'resources': {}}}
489
520
        expected.update(new_params)
490
521
        cenv = environment.get_child_environment(penv, new_params)
717
748
        self.assertEqual('pre-create',
718
749
                         resources['nested']['res']['hooks'])
719
750
 
 
751
    def test_load_registry_invalid_hook_type(self):
 
752
        resources = {
 
753
            u'resources': {
 
754
                u'a': {
 
755
                    u'hooks': 'invalid-type',
 
756
                }
 
757
            }
 
758
        }
 
759
 
 
760
        registry = environment.ResourceRegistry(None, {})
 
761
        msg = ('Invalid hook type "invalid-type" for resource breakpoint, '
 
762
               'acceptable hook types are: (\'pre-create\', \'pre-update\')')
 
763
        ex = self.assertRaises(exception.InvalidBreakPointHook,
 
764
                               registry.load, {'resources': resources})
 
765
        self.assertEqual(msg, six.text_type(ex))
 
766
 
720
767
 
721
768
class HookMatchTest(common.HeatTestCase):
722
769