diff --git a/master/buildbot/test/unit/test_steps_slave.py b/master/buildbot/test/unit/test_steps_slave.py index 0494a658c01..88ae19dc103 100644 --- a/master/buildbot/test/unit/test_steps_slave.py +++ b/master/buildbot/test/unit/test_steps_slave.py @@ -162,3 +162,42 @@ def test_render(self): self.expectOutcome(result=SUCCESS, status_text=["RemoveDirectory"]) return self.runStep() + +class TestMakeDirectory(steps.BuildStepMixin, unittest.TestCase): + + def setUp(self): + return self.setUpBuildStep() + + def tearDown(self): + return self.tearDownBuildStep() + + def test_success(self): + self.setupStep(slave.MakeDirectory(dir="d")) + self.expectCommands( + ExpectLogged('mkdir', { 'dir' : 'd' }) + + 0 + ) + self.expectOutcome(result=SUCCESS, + status_text=["MakeDirectory"]) + return self.runStep() + + def test_failure(self): + self.setupStep(slave.MakeDirectory(dir="d")) + self.expectCommands( + ExpectLogged('mkdir', { 'dir' : 'd' }) + + 1 + ) + self.expectOutcome(result=FAILURE, + status_text=["Create failed."]) + return self.runStep() + + def test_render(self): + self.setupStep(slave.MakeDirectory(dir=properties.Property("x"))) + self.properties.setProperty('x', 'XXX', 'here') + self.expectCommands( + ExpectLogged('mkdir', { 'dir' : 'XXX' }) + + 0 + ) + self.expectOutcome(result=SUCCESS, + status_text=["MakeDirectory"]) + return self.runStep() diff --git a/master/docs/manual/cfg-buildsteps.rst b/master/docs/manual/cfg-buildsteps.rst index bb81a3085c6..97a64e5db7b 100644 --- a/master/docs/manual/cfg-buildsteps.rst +++ b/master/docs/manual/cfg-buildsteps.rst @@ -1866,6 +1866,18 @@ This command recursively deletes a directory on the slave. :: This step requires slave version 0.8.4 or later. +.. bb:step:: MakeDirectory + +MakeDirectory ++++++++++++++++ + +This command creates a directory on the slave. :: + + from buildbot.steps.slave import MakeDirectory + f.addStep(MakeDirectory(dir="build/build")) + +This step requires slave version 0.8.5 or later. + .. _Python-BuildSteps: Python BuildSteps