From 2cb46ba2f38b4b982cb91167fe41c39616130bdd Mon Sep 17 00:00:00 2001 From: Matvey Kruglov Date: Sat, 4 Apr 2015 16:19:47 +0300 Subject: [PATCH] Use args.workdir in StatFile if it exists --- slave/buildslave/commands/fs.py | 2 +- .../buildslave/test/unit/test_commands_fs.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/slave/buildslave/commands/fs.py b/slave/buildslave/commands/fs.py index 07eb4e3bd..9ad754019 100644 --- a/slave/buildslave/commands/fs.py +++ b/slave/buildslave/commands/fs.py @@ -202,7 +202,7 @@ class StatFile(base.Command): requireArgs = ['file'] def start(self): - filename = os.path.join(self.builder.basedir, self.args['file']) + filename = os.path.join(self.builder.basedir, self.args.get('workdir', ''), self.args['file']) try: stat = os.stat(filename) diff --git a/slave/buildslave/test/unit/test_commands_fs.py b/slave/buildslave/test/unit/test_commands_fs.py index 892e35320..ed019b417 100644 --- a/slave/buildslave/test/unit/test_commands_fs.py +++ b/slave/buildslave/test/unit/test_commands_fs.py @@ -233,6 +233,25 @@ class TestStatFile(CommandTestMixin, unittest.TestCase): d.addCallback(check) return d + def test_file_workdir(self): + self.make_command(fs.StatFile, dict( + file='test-file', + workdir='wd' + ), True) + os.mkdir(os.path.join(self.basedir, 'wd')) + open(os.path.join(self.basedir, 'wd', 'test-file'), "w") + + d = self.run_command() + + def check(_): + import stat + self.assertTrue(stat.S_ISREG(self.get_updates()[0]['stat'][stat.ST_MODE])) + self.assertIn({'rc': 0}, + self.get_updates(), + self.builder.show()) + d.addCallback(check) + return d + class TestGlobPath(CommandTestMixin, unittest.TestCase):