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
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;"
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`;"
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
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
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()
def setup(self): self.target = parser.SimpleStateParserDelegate(self.parser_delegate, self.parser_state)