# Copyright 2015 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # =*= License: GPL-3+ =*= import unittest import icklib class BuildPipelineTests(unittest.TestCase): def test_sets_name(self): pipeline = icklib.BuildPipeline('dummy') self.assertEqual(pipeline.name, 'dummy') def test_runs_builds_steps(self): pipeline = icklib.BuildPipeline('dummy') pipeline.set_build_steps([DummyStep]) run_state = icklib.RunState() run_state.steps = [] pipeline.build(None, None, [], run_state) self.assertEqual(run_state.steps, ['dummy_step']) def test_stops_running_steps_if_step_returns_True(self): pipeline = icklib.BuildPipeline('dummy') pipeline.set_build_steps([DummyStep, DummyStep2]) run_state = icklib.RunState() run_state.steps = [] pipeline.build(None, None, [], run_state) self.assertEqual(run_state.steps, ['dummy_step']) class DummyStep(icklib.BuildStep): def build(self): self.run_state.steps.append('dummy_step') return True class DummyStep2(icklib.BuildStep): def build(self): self.run_state.steps.append('dummy_step_2')