def test_exec_without_logdog(self, rt_tempdir, _install_cipd_packages, _logdog_bootstrap): remote_run._call.return_value = 0 rt_tempdir.side_effect = [self.tempdir, self.build_data_dir] self.recipe_result = {} self._write_recipe_result() rv = remote_run._exec_recipe(self.opts, self.rt, self.stream, self.basedir, self.buildbot_build_dir) self.assertEqual(rv, 0) args = self.recipe_remote_args + ['--'] + self.recipe_args remote_run._call.assert_called_once_with(args)
def test_kitchen_exec_with_logdog(self, rt_tempdir, _install_cipd_packages, _logdog_bootstrap_result, get_config): self.is_kitchen = True cfg = self._default_namedtuple(logdog_bootstrap.Config)._replace( params=self._default_namedtuple(logdog_bootstrap.Params)._replace( project="project", ), prefix="prefix", host="example.com", tags=collections.OrderedDict(( ('foo', 'bar'), ('baz', None), )), ) get_config.return_value = cfg remote_run._call.return_value = 0 rt_tempdir.side_effect = [self.tempdir, self.build_data_dir] self._write_kitchen_result() opts = self.opts._replace(revision='origin/master') rv = remote_run._exec_recipe(opts, self.rt, self.stream, self.basedir, self.buildbot_build_dir) self.assertEqual(rv, 0) kitchen_args = self.kitchen_args + [ '-logdog-annotation-url', logdog_bootstrap.get_annotation_url(cfg), '-logdog-tag', 'foo=bar', '-logdog-tag', 'baz', ] kitchen_env = os.environ.copy() kitchen_env.pop('PYTHONPATH', None) remote_run._call.assert_called_once_with(kitchen_args, env=kitchen_env) self.assertEqual([ l for l in self.stream_output.getvalue().splitlines() if l ], [ '@@@SEED_STEP LogDog Bootstrap@@@', '@@@STEP_CURSOR LogDog Bootstrap@@@', '@@@STEP_STARTED@@@', '@@@SET_BUILD_PROPERTY@logdog_project@"project"@@@', '@@@SET_BUILD_PROPERTY@logdog_prefix@"prefix"@@@', ('@@@SET_BUILD_PROPERTY@logdog_annotation_url@' '"logdog://example.com/project/prefix/+/recipes/annotations"@@@'), '@@@STEP_CURSOR LogDog Bootstrap@@@', '@@@STEP_CLOSED@@@', ])
def test_exec_with_logdog_failed(self, rt_tempdir, _install_cipd_packages, _logdog_bootstrap_result, bootstrap): args = self.recipe_remote_args + ['--'] + self.recipe_args cfg = self._default_namedtuple(logdog_bootstrap.Config)._replace( params=self._default_namedtuple(logdog_bootstrap.Params)._replace( project="project", ), prefix="prefix", host="example.com", ) bootstrap.return_value = logdog_bootstrap.BootstrapState( cfg, ['logdog_bootstrap'] + args, '/path/to/result.json') bootstrap.return_value.get_result.return_value = 0 remote_run._call.return_value = 0 rt_tempdir.side_effect = [self.tempdir, self.build_data_dir] self.recipe_result = { 'failure': { 'timeout': True, } } self._write_recipe_result() rv = remote_run._exec_recipe(self.opts, self.rt, self.stream, self.basedir, self.buildbot_build_dir) self.assertEqual(rv, 255) remote_run._call.assert_called_once_with(bootstrap.return_value.cmd) self.assertEqual([ l for l in self.stream_output.getvalue().splitlines() if l ], [ '@@@SEED_STEP LogDog Bootstrap@@@', '@@@STEP_CURSOR LogDog Bootstrap@@@', '@@@STEP_STARTED@@@', '@@@SET_BUILD_PROPERTY@logdog_project@"project"@@@', '@@@SET_BUILD_PROPERTY@logdog_prefix@"prefix"@@@', ('@@@SET_BUILD_PROPERTY@logdog_annotation_url@' '"logdog://example.com/project/prefix/+/recipes/annotations"@@@'), '@@@STEP_CURSOR LogDog Bootstrap@@@', '@@@STEP_CLOSED@@@', ])
def test_kitchen_exec_without_logdog(self, rt_tempdir, _install_cipd_packages, _logdog_bootstrap): self.is_kitchen = True remote_run._call.return_value = 0 rt_tempdir.side_effect = [self.tempdir, self.build_data_dir] self._write_kitchen_result() opts = self.opts._replace(revision='refs/heads/somebranch') rv = remote_run._exec_recipe(opts, self.rt, self.stream, self.basedir, self.buildbot_build_dir) self.assertEqual(rv, 0) kitchen_args = self.kitchen_args + [ '-revision', 'refs/heads/somebranch', ] kitchen_env = os.environ.copy() kitchen_env.pop('PYTHONPATH', None) remote_run._call.assert_called_once_with(kitchen_args, env=kitchen_env)