From c10698daec30cb65243ccc2a5b7c9979c83b6f9e Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Fri, 4 Mar 2016 14:30:16 -0500 Subject: [PATCH] Make sure the script test references parser. What I was seeing was that the test failed because the script strings didn't have a %end on them. That means the version was being set to something pre-F8. It only happened if any of the pre* or post* tests were run first - if those were moved out of the way, the script test would pass. These tests were therefore the ones causing the version to be set incorrectly. What's happening is those tests set the version to something old, but nothing sets the version back. That's because Script references a global ver variable which is set when a parser is created. The Script test doesn't create a parser so ver was staying set to whatever old value pre* and post* were setting. (cherry picked from commit 5c33825407035f33bfd8ae257ec093c10937b81c) --- tests/script.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/script.py b/tests/script.py index bad9b81..7ef1002 100644 --- a/tests/script.py +++ b/tests/script.py @@ -1,12 +1,19 @@ import unittest -from tests.baseclass import CommandTest +from tests.baseclass import ParserTest from pykickstart.constants import KS_SCRIPT_POST, KS_SCRIPT_PRE, KS_SCRIPT_PREINSTALL, KS_SCRIPT_TRACEBACK, KS_SCRIPT_ONERROR from pykickstart.parser import Script +from pykickstart.version import DEVEL -class Script_Object_TestCase(CommandTest): +class Script_Object_TestCase(ParserTest): def runTest(self): + # The parser object will never be set up by this test, which means the + # Script object will get the version number of whatever ran last. That + # could be totally wrong. Thus, cause the parser to be created here + # so the version will be right. + self.get_parser() + body = "import sys\nsys.exit(1)\n" obj = Script(body, type=KS_SCRIPT_PRE, interp="/usr/bin/python", logfile="/tmp/log", errorOnFail=True) self.assertEqual(obj.type, KS_SCRIPT_PRE) -- 2.17.1