Beispiel #1
0
    def test_does_not_invoke_delegate_when_skip_is_true(
            self, mock_parser_delegate):
        target = parser.SimpleStateParserDelegate(mock_parser_delegate,
                                                  self.parser_state)

        self.parser_state.skip = True
        target.run_env('key', 'val')
        assert not mock_parser_delegate.run_env.called
        assert self.parser_state.skip is False

        self.parser_state.skip = True
        target.run_run('echo hello world')
        assert not mock_parser_delegate.run_run.called
        assert self.parser_state.skip is False

        self.parser_state.skip = True
        target.run_copy('src', 'dst')
        assert not mock_parser_delegate.run_copy.called
        assert self.parser_state.skip is False

        self.parser_state.skip = True
        target.run_add('src', 'dst')
        assert not mock_parser_delegate.run_add.called
        assert self.parser_state.skip is False

        assert self.parser_state.step == 0
Beispiel #2
0
    def test_run_workdir(self, mock_parser_delegate):
        target = parser.SimpleStateParserDelegate(mock_parser_delegate,
                                                  self.parser_state)

        target.run_workdir('/foo/bar')
        assert self.parser_state.env == "cd /foo/bar;"
        target.run_workdir('bar')
        assert self.parser_state.env == "cd /foo/bar;cd bar;"
Beispiel #3
0
    def test_run_env(self, mock_parser_delegate):
        target = parser.SimpleStateParserDelegate(mock_parser_delegate,
                                                  self.parser_state)

        target.run_env('FOO', 'BAR')
        assert self.parser_state.env == "FOO=BAR;"
        target.run_env('BAR', '`echo hello`')
        assert self.parser_state.env == "FOO=BAR;BAR=`echo hello`;"
Beispiel #4
0
 def test_invokes_delegate_when_skip_is_true(self, mock_parser_delegate):
     target = parser.SimpleStateParserDelegate(mock_parser_delegate,
                                               self.parser_state)
     self.parser_state.skip = True
     target.run_nop()
     assert mock_parser_delegate.run_nop.called_with()
     target.run_unknown('FROM foo:jamie')
     assert mock_parser_delegate.run_unknown.called_with('FROM foo:jamie')
     assert self.parser_state.skip
     target.run_skip()
     assert mock_parser_delegate.run_skip.called_with()
     assert self.parser_state.skip
Beispiel #5
0
    def test_updates_step_after_invocation(self, mock_parser_delegate):
        target = parser.SimpleStateParserDelegate(mock_parser_delegate,
                                                  self.parser_state)

        def make_step_checker(val):
            def check_step(*args):
                assert self.parser_state.step == val

            return check_step

        mock_parser_delegate.run_run.side_effect = make_step_checker(1)
        target.run_run('echo hello world')
        assert mock_parser_delegate.run_run.called
        mock_parser_delegate.run_add.side_effect = make_step_checker(2)
        target.run_add('src', 'env')
        assert mock_parser_delegate.run_add.called
        mock_parser_delegate.run_copy.side_effect = make_step_checker(3)
        target.run_copy('src', 'env')
        assert mock_parser_delegate.run_copy.called
Beispiel #6
0
 def test_invokes_delegate_when_skip_is_false(self, mock_parser_delegate):
     target = parser.SimpleStateParserDelegate(mock_parser_delegate,
                                               self.parser_state)
     target.run_nop()
     assert mock_parser_delegate.run_nop.called_with()
     target.run_env('key', 'val')
     assert mock_parser_delegate.run_env.called_with('key', 'val')
     target.run_run('echo hello world')
     assert mock_parser_delegate.run_run.called_with('echo hello world')
     target.run_copy('src', 'dst')
     assert mock_parser_delegate.run_copy.called_with('src', 'dst')
     target.run_add('src', 'dst')
     assert mock_parser_delegate.run_add.called_with('src', 'dst')
     target.run_workdir('/foo/bar')
     assert mock_parser_delegate.run_workdir.called_with('/foo/bar')
     target.run_unknown('FROM foo:jamie')
     assert mock_parser_delegate.run_unknown.called_with('FROM foo:jamie')
     assert self.parser_state.skip is False
     target.run_skip()
     mock_parser_delegate.run_skip_called_with()
Beispiel #7
0
 def setup(self):
     self.target = parser.SimpleStateParserDelegate(self.parser_delegate,
                                                    self.parser_state)