Пример #1
0
    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)
Пример #2
0
    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@@@',
        ])
Пример #3
0
    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@@@',
        ])
Пример #4
0
    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)