Exemple #1
0
 def sub_test_sls(self):
     '''
         Sub function of test_sls
     '''
     mock = MagicMock(return_value=True)
     with patch.object(os.path, 'join', mock):
         with patch.object(os, 'umask', mock):
             mock = MagicMock(return_value=False)
             with patch.object(salt.utils.platform, 'is_windows', mock):
                 mock = MagicMock(return_value=True)
                 with patch.object(os, 'umask', mock):
                     with patch.object(state, '_set_retcode', mock):
                         with patch.dict(state.__opts__, {"test": True}):
                             with patch('salt.utils.files.fopen',
                                        mock_open()):
                                 self.assertTrue(
                                     state.sls("core,edit"
                                               ".vim dev", None, None,
                                               True))
Exemple #2
0
    def test_sls(self):
        '''
            Test to execute a set list of state files from an environment
        '''
        arg = "core,edit.vim dev"
        ret = [
            'Pillar failed to render with the following messages:', 'E', '1'
        ]
        mock = MagicMock(return_value=True)
        with patch.object(state, 'running', mock):
            with patch.dict(state.__context__, {"retcode": 1}):
                self.assertEqual(state.sls("core,edit.vim dev"), True)

        mock = MagicMock(side_effect=[True, True, True, True, True, True])
        with patch.object(state, '_wait', mock):
            mock = MagicMock(side_effect=[["A"], [], [], [], [], []])
            with patch.object(state, '_disabled', mock):
                with patch.dict(state.__context__, {"retcode": 1}):
                    self.assertEqual(
                        state.sls("core,edit.vim dev", None, None, True),
                        ["A"])

                mock = MagicMock(
                    side_effect=[['E', '1'], None, None, None, None])
                with patch.object(state, '_get_pillar_errors', mock):
                    with patch.dict(state.__context__, {"retcode": 5}):
                        with patch.dict(state.__pillar__,
                                        {"_errors": ['E', '1']}):
                            self.assertListEqual(
                                state.sls("core,edit.vim dev", None, None,
                                          True), ret)

                    with patch.dict(state.__opts__, {"test": None}):
                        mock = MagicMock(return_value={
                            "test": "",
                            "saltenv": None
                        })
                        with patch.object(salt.utils.state, 'get_sls_opts',
                                          mock):
                            mock = MagicMock(return_value=True)
                            with patch.object(salt.utils, 'test_mode', mock):
                                self.assertRaises(SaltInvocationError,
                                                  state.sls,
                                                  "core,edit.vim dev",
                                                  None,
                                                  None,
                                                  True,
                                                  pillar="A")

                                mock = MagicMock(
                                    return_value="/D/cache.cache.p")
                                with patch.object(os.path, 'join', mock):
                                    mock = MagicMock(return_value=True)
                                    with patch.object(os.path, 'isfile', mock):
                                        with patch('salt.utils.files.fopen',
                                                   mock_open()):
                                            self.assertTrue(
                                                state.sls(arg,
                                                          None,
                                                          None,
                                                          True,
                                                          cache=True))

                                    MockState.HighState.flag = True
                                    self.assertTrue(
                                        state.sls("core,edit"
                                                  ".vim dev", None, None,
                                                  True))

                                    MockState.HighState.flag = False
                                    mock = MagicMock(return_value=True)
                                    with patch.dict(state.__salt__,
                                                    {'config.option': mock}):
                                        mock = MagicMock(return_value=True)
                                        with patch.object(
                                                state, '_filter_'
                                                'running', mock):
                                            self.sub_test_sls()
Exemple #3
0
    def test_lock_saltenv(self):
        '''
        Tests lock_saltenv in each function which accepts saltenv on the CLI
        '''
        lock_msg = 'lock_saltenv is enabled, saltenv cannot be changed'
        empty_list_mock = MagicMock(return_value=[])
        with patch.dict(state.__opts__, {'lock_saltenv': True}), \
                patch.dict(state.__salt__, {'grains.get': empty_list_mock}), \
                patch.object(state, 'running', empty_list_mock):

            # Test high
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.high([{"vim": {"pkg": ["installed"]}}], saltenv='base')

            # Test template
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.template('foo', saltenv='base')

            # Test template_str
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.template_str('foo', saltenv='base')

            # Test apply_ with SLS
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.apply_('foo', saltenv='base')

            # Test apply_ with Highstate
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.apply_(saltenv='base')

            # Test highstate
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.highstate(saltenv='base')

            # Test sls
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.sls('foo', saltenv='base')

            # Test top
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.top('foo.sls', saltenv='base')

            # Test show_highstate
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.show_highstate(saltenv='base')

            # Test show_lowstate
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.show_lowstate(saltenv='base')

            # Test sls_id
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.sls_id('foo', 'bar', saltenv='base')

            # Test show_low_sls
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.show_low_sls('foo', saltenv='base')

            # Test show_sls
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.show_sls('foo', saltenv='base')

            # Test show_top
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.show_top(saltenv='base')

            # Test single
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.single('foo.bar', name='baz', saltenv='base')

            # Test pkg
            with self.assertRaisesRegex(CommandExecutionError, lock_msg):
                state.pkg('/tmp/salt_state.tgz',
                          '760a9353810e36f6d81416366fc426dc',
                          'md5',
                          saltenv='base')