Ejemplo n.º 1
0
 def test_defaults_mutable(self):
     '''
     Test that the passed dictionnary is well updated
     and not copied over'''
     data = {
         '1': 'foo',
         '2': {'aa': 2}
     }
     with patch.dict(
         mc_utils.__salt__,
         {'mc_utils.dictupdate': mc_utils.dictupdate,
          'mc_utils.get': Mock(
              side_effect={
                  'prefix.2.aa': 'foo',
              }.get)}):
         mc_utils.defaults('prefix', data)
         data['1'] = 'bar'
         self.assertEquals(data, {'1': 'bar', '2': {'aa': 'foo'}})
Ejemplo n.º 2
0
 def test_defaults(self):
     with patch.dict(mc_utils.__salt__,
                     {'mc_utils.get': Mock(
                         side_effect={
                             'prefix.1': "e",
                             'prefix.2': "{1}",
                         }.get)}):
         self.assertEquals(
             mc_utils.defaults('prefix', {
                 "1": 'a',
                 "2": '{3}',
                 "3": 'b',
             }
             ), {
                 '1': 'e',  # 1 take the pillar value
                 '2': 'e',  # 2 is overriden by the pillar value and get
                            # resolved {1} > data['1'] > e
                 '3': 'b'   # there is not 'prefix3' in pillar, default to b
             }
         )
Ejemplo n.º 3
0
 def test_defaults_rec(self):
     with patch.dict(
         mc_utils.__salt__,
         {'mc_utils.dictupdate': mc_utils.dictupdate,
          'mc_utils.get': Mock(
              side_effect={
                  'prefix.2.aa': 'foo',
                  'prefix.2.dd': {1: 2},
                  'prefix.2.cc.ff.gg': 'ee',
                  'prefix.2.kk.ll.mmm.nn': 1,
                  'prefix.2.kk.ll.mmu.nn.oou.pp.qqu.rr.ssu': 1,
                  'prefix.2.cc.ff': {'o': 'p'},
                  'prefix.4': 3,
                  'prefix.5': {1: 2},
              }.get)}):
         self.assertEquals(
             mc_utils.defaults('prefix', {
                 '1': 'a',
                 '2': {
                     'aa': 'bb',
                     'kk.ll': {
                         'mmm.nn': {
                             'oo.pp': {
                                 'qq.rr': {'ss': 'tt'},
                                 'qqq.rrr': {'sss': 'ttt'},
                             }
                         },
                         'mmu.nn': {
                             'oou.pp': {
                                 'qqw.rr': {'ssu': 'tt'},
                                 'qqu.rr': {'ssu': 'tt'},
                             }
                         }
                     },
                     'dd': {'dd': 'ee',
                            'ff': {'gg': 'hh'}},
                     'cc': {'dd': 'ee',
                            'ff': {'gg': 'hh',
                                   'o': 'p'}}},
                 '4': {'aaa': 'bbb', 'ccc': {'ddd': 'eee'}},
                 '3': 'b',
                 '5': {'aaaa': 'bbbb', 'cccc': {'dddd': 'eeee'}},
             }
             ), {
                 '1': 'a',
                 '2': {'aa': 'foo',
                       'kk.ll': {
                           'mmm.nn': 1,
                           'mmu.nn': {
                               'oou.pp': {
                                   'qqw.rr': {'ssu': 'tt'},
                                   'qqu.rr': {'ssu': 1},
                               }
                           }
                       },
                       'cc': {'dd': 'ee', 'ff': {'gg': 'hh',
                                                 'o': 'p'}},
                       'dd': {1: 2, 'dd': 'ee', 'ff': {'gg': 'hh'}}},
                 '3': 'b',
                 '4': 3,
                 '5': {1: 2, 'aaaa': 'bbbb', 'cccc': {'dddd': 'eeee'}}
             }
         )
Ejemplo n.º 4
0
 def test_defaults_rec_over(self):
     with patch.dict(
         mc_utils.__salt__,
         {'mc_utils.dictupdate': mc_utils.dictupdate,
          'mc_utils.get': Mock(
              side_effect={
                  'prefix.11': ['foo'],
                  'prefix.22-overrides': ['foo'],
                  'prefix.2.aa': 'foo',
                  'prefix.2.dd': {1: 2},
                  'prefix.2.cc.ff.gg': 'ee',
                  'prefix.2.cc.ff-overrides': {'o': 'p'},
                  'prefix.2.kk.ll.mmm.nn.oo.pp': {1: 2},
                  'prefix.2.kk.ll.mmu.nn.oou.pp-overrides': {1: 2},
                  'prefix.6.a.bb-overrides': {1: 2},
                  'prefix.6.b.bb': {1: 2},
                  'prefix.4': 3,
                  'prefix.5': {1: 2},
              }.get)}):
         self.assertEquals(
             mc_utils.defaults('prefix', {
                 '11': ['a', 'b', 'c'],
                 '22': ['a', 'b', 'c'],
                 '1': 'a',
                 '6': {
                     'a': {
                         'bb': {'ccc': 'ddd',
                                'eee': 'fff'}},
                     'b': {
                         'bb': {'ccc': 'ddd',
                                'eee': 'fff'}}
                 },
                 '2': {
                     'aa': 'bb',
                     'kk.ll': {
                         'mmm.nn': {
                             'oo.pp': {
                                 'qq.rr': {'ss': 'tt'},
                                 'qqq.rrr': {'sss': 'ttt'},
                             }
                         },
                         'mmu.nn': {
                             'oou.pp': {
                                 'qqu.rr': {'ssu': 'tt'},
                                 'qqu.rr': {'ssu': 'tt'},
                             }
                         }
                     },
                     'dd': {'dd': 'ee',
                            'ff': {'gg': 'hh'}},
                     'cc': {'dd': 'ee',
                            'ff': {'o': 'p'}}},
                 '4': {'aaa': 'bbb', 'ccc': {'ddd': 'eee'}},
                 '5': {'aaaa': 'bbbb', 'cccc': {'dddd': 'eeee'}},
                 '3': 'b',
             }
             ), {
                 '11': ['a', 'b', 'c', 'foo'],
                 '22': ['foo'],
                 '1': 'a',
                 '6': {
                     'a': {'bb': {1: 2}},
                     'b': {
                         'bb': {1: 2,
                                'ccc': 'ddd',
                                'eee': 'fff'}}
                 },
                 '2': {
                     'aa': 'foo',
                     'kk.ll': {
                         'mmm.nn': {
                             'oo.pp': {
                                 1: 2,
                                 'qq.rr': {'ss': 'tt'},
                                 'qqq.rrr': {'sss': 'ttt'},
                             }
                         },
                         'mmu.nn': {
                             'oou.pp': {
                                 1: 2,
                             }
                         }
                     },
                     'cc': {'dd': 'ee', 'ff': {'o': 'p'}},
                     'dd': {1: 2, 'dd': 'ee', 'ff': {'gg': 'hh'}}},
                 '3': 'b',
                 '4': 3,
                 '5': {1: 2, 'aaaa': 'bbbb', 'cccc': {'dddd': 'eeee'}}
             }
         )