From 03a90024ade3223e6995fe4d48e4aec5b059dbe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Doktor?= Date: Thu, 14 Apr 2016 13:55:17 +0200 Subject: [PATCH] avocado.core.test: Check for basename length, not full path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit only the basename of the `self.filename` has to be shorter than maxsize-5, not the full path. Also the IOError in selftest is rather misleading as it relates to missing source file. Let's just check the path is correctly set and additionally verify `_record_reference_*` is not crashing when filename not associated. Signed-off-by: Lukáš Doktor --- avocado/core/test.py | 3 ++- selftests/unit/test_test.py | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/avocado/core/test.py b/avocado/core/test.py index b3cfe316..64c824e5 100644 --- a/avocado/core/test.py +++ b/avocado/core/test.py @@ -174,7 +174,8 @@ class Test(unittest.TestCase): Returns the path to the directory that contains test data files """ # Maximal allowed file name length is 255 - if self.filename is not None and len(self.filename) < 251: + if (self.filename is not None and + len(os.path.basename(self.filename)) < 251): return self.filename + '.data' else: return None diff --git a/selftests/unit/test_test.py b/selftests/unit/test_test.py index b11f847e..2bbefa18 100644 --- a/selftests/unit/test_test.py +++ b/selftests/unit/test_test.py @@ -67,12 +67,14 @@ class TestClassTestUnit(unittest.TestCase): self.assertEqual(os.path.basename(test.workdir), os.path.basename(test.logdir)) flexmock(test) - test.should_receive('filename').and_return("a"*250) - self.assertEqual("a"*250 + ".data", test.datadir) - self.assertRaises(IOError, test._record_reference_stdout) - self.assertRaises(IOError, test._record_reference_stderr) + test.should_receive('filename').and_return(os.path.join(self.tmpdir, + "a"*250)) + self.assertEqual(os.path.join(self.tmpdir, "a"*250 + ".data"), + test.datadir) test.should_receive('filename').and_return("a"*251) self.assertFalse(test.datadir) + test._record_reference_stdout # Should does nothing + test._record_reference_stderr # Should does nothing test._record_reference_stdout() test._record_reference_stderr() -- GitLab