def setupFitGlobalForTests(env, opts=[]):
    # Run Level Globals
    FG.specificationLevel = "1.1"
    FG.Environment = env
    FG.RunAppConfigModule = None
    FG.RunAppConfig = None
    FG.RunDiagnosticOptions = {}
    FG.RunLevelSymbols = {}
    if env == "Batch":
        FG.RunOptions = Options(["FileRunner", "+v"] + opts,
                                SO.BatchBase.parmDict)
    elif env == "FitNesseOnline":
        FG.RunOptions = Options(["FitServer", "+v"] + opts,
                                SO.FitServer.parmDict)
        FG.Environment = "FitNesse"
    elif env == "FitNesseBatch":
        FG.RunOptions = Options(["TestRunner", "+v"] + opts,
                                SO.TestRunner.parmDict)
        FG.Environment = "FitNesse"
    FG.FitNesseRoot = SO.OptionsBase.fitNesse_Root
    # Test Level Globals
    FG.Options = FG.RunOptions
    FG.appConfigModule = FG.RunAppConfigModule
    FG.appConfig = FG.RunAppConfig
    FG.diagnosticOptions = copy.copy(FG.RunDiagnosticOptions)
    FG.annotationStyleVariation = Variations.returnVariation(FG.Environment)
    FG.inFileName = ""
    FG.outFileName = ""
    FG.testLevelSymbols = copy.copy(FG.RunLevelSymbols)
Example #2
0
 def testAddNewOptions(self):
     optList = ["FolderRunner.py", "-v", "+q", "et", "-r", "+v"]
     obj = Options(optList, SiteOptions.BatchBase.parmDict)
     self.obj = obj
     assert obj.recursive is False
     obj.addNewOptions(["", "+r"])
     assert obj.verbose is True
     assert obj.recursive is True
     assert obj.quietMode == "et"
     assert obj.isValid
     assert len(obj.vMsgs) == 5
     assert len(obj.eMsgs) == 0
Example #3
0
 def testAddNewOptions(self):
     optList = ["FolderRunner.py", "-v", "+q", "et", "-r", "+v"]
     obj = Options(optList, SiteOptions.BatchBase.parmDict)
     self.obj = obj
     assert obj.recursive is False
     obj.addNewOptions(["", "+r"])
     assert obj.verbose is True
     assert obj.recursive is True
     assert obj.quietMode == "et"
     assert obj.isValid
     assert len(obj.vMsgs) == 5
     assert len(obj.eMsgs) == 0
Example #4
0
 def setUp(self):
     print '%s %s' % (self.id(), self.shortDescription())
     setupFitGlobalForTests("Batch", ["+e"])
     self.options = Options(["FileRunner", "+v", "+e", "foo", "bar"],
                            BatchBase.parmDict)
     self.fixture = Fixture()
     self.fixture.fixtureLoader = MockFixtureLoader()
    def args(self, argv):
        self.options = Options(argv, SiteOptions.FitServer.parmDict)
        FG.CommandOptions = self.options
        opts = self.options
        errMsgs = opts.eMsgs
        vMsgs = opts.vMsgs
        pos = opts.posParms
        if not opts.isValid:
            for aMsg in errMsgs:
                conMsg.emsg(aMsg)
            self.usage()
            return False

        numIOArgs = net.getNumArgs()  # may be testing mock.
        self._renameFileName = ""
        self._addToPythonPath = []
        if len(pos) == numIOArgs + 1:
            self._addToPythonPath, self._renameFileName = (
                self.extractPythonPath(pos[0], opts))
            pos = pos[1:]
        if len(pos) != numIOArgs:
            conMsg.emsg("wrong number of positional parameters")
            self.usage()
            return False
        fitnesseParmStatus, self.host, self.port, self.socketToken = net.extractParameters(
            pos)
        if fitnesseParmStatus is False:
            self.usage()
            return False
        conMsg.setVerbose(opts.verbose)
        if opts.verbose:
            for aMsg in vMsgs:
                conMsg.smsg(aMsg)
        return True
Example #6
0
 def testOptionError(self):
     optList = ["TestRunner.py", "-$"]
     obj = Options(optList, SiteOptions.TestRunner.parmDict)
     self.obj = obj
     assert not obj.isValid
     assert len(obj.eMsgs) == 1
     assert obj.eMsgs[0].startswith("Parameter $ not recognized")
Example #7
0
 def testPositionalParameters(self):
     optList = ["TestRunner.py", "-v", "great file"]
     obj = Options(optList, SiteOptions.TestRunner.parmDict)
     self.obj = obj
     assert obj.isValid
     assert len(obj.posParms) == 1
     assert obj.posParms[0] == "great file"
    def args(self, optv):
        self.options = Options(optv, SiteOptions.TestRunner.parmDict)
        opts = self.options
        conMsg.setVerbose(opts.verbose)
        errMsgs = opts.eMsgs
        pos = opts.posParms
        if not opts.isValid:
            for aMsg in errMsgs:
                conMsg.emsg(aMsg)
            self._usage()
            return False

        if len(pos) == 3 and not opts.listOfFiles:
            self._host, self._port, self._pageName = pos
        elif len(pos) == 2 and opts.listOfFiles:
            self._host, self._port = pos
            self._pageName = ""
        else:
            conMsg.emsg("wrong number of positional arguements\n")
            conMsg.emsg("%s" % pos)
            self._usage()
            return False
        self._port = int(self._port)

        self._pythonPath = ""
        self._renamesFileName = ""
        if self.options.pythonPath:
            self._pythonPath, self._renamesFileName = self.extractPythonPath(
                self.options.pythonPath, copy.copy(opts))

        if opts.outputDir != "":
            if not FG.fsa.isdir(opts.outputDir):
                conMsg.emsg("-o operand '%s' is not a directory\n" %
                            opts.outputDir)
                self._usage()
                return False

        self.listOfFiles = []
        if opts.listOfFiles:
            if not FG.fsa.exists(opts.listOfFiles):
                conMsg.emsg("-u operand '%s' must exist\n" % opts.listOfFiles)
                self._usage()
                return False
            aFile = FG.fsa.open(opts.listOfFiles, "rt")
            self.listOfFiles = aFile.readlines()
            aFile.close()

        if ((opts.rawOutput or opts.stats) and not opts.outputDir):
            conMsg.emsg("No output directory for raw or XML options.\n")
            self._usage()
            return False

        if (opts.HTMLOutput and not opts.outputDir):
            opts.HTMLOutput = False
        self._statsHandler = StatsHandler(opts.outputDir, self._pageName,
                                          self._host, self._port)
        return True
Example #9
0
 def testTwoListItems(self):
     optList = ["TestRunner.py", "+x", "-v"]
     obj = Options(optList, SiteOptions.TestRunner.parmDict)
     self.obj = obj
     assert obj.verbose is False
     assert obj.stats is True
     assert obj.isValid
     assert len(obj.vMsgs) == 2
     assert len(obj.eMsgs) == 0
Example #10
0
 def testFourListItems(self):
     optList = ["FolderRunner.py", "-v", "+q", "yt", "-r", "+v"]
     obj = Options(optList, SiteOptions.BatchBase.parmDict)
     self.obj = obj
     assert obj.verbose is True
     assert obj.recursive is False
     assert obj.quietMode == "yt"
     assert obj.isValid
     assert len(obj.vMsgs) == 4
     assert len(obj.eMsgs) == 0
Example #11
0
 def setUp(self):
     print '%s %s' % (self.id(), self.shortDescription())
     self.options = Options(["FileRunner", "+v", "foo", "bar"],
                            BatchBase.parmDict)
     self.saveFitGlobal = (FitGlobal.RunOptions, FitGlobal.Options,
                           FitGlobal.Environment)
     FitGlobal.RunOptions = self.options
     FitGlobal.Options = self.options
     FitGlobal.Environment = "Batch"
     Variations.returnVariation()
Example #12
0
 def setUp(self):
     print '%s %s' % (self.id(), self.shortDescription())
     setupFitGlobalForTests("FitNesseOnline")
     self.savePath = copy.copy(sys.path)
     self.fits = fsi.ServerBase()
     self.options = Options(["fubar"], SiteOptions.FitServer.parmDict)
     self.saveNet = fsi.net
     fsi.netIn = fsi.netOut = fsi.net = ioMock()
     self.saveMsg = fsi.conMsg
     fsi.conMsg = fsi.TestMsgWriter()
Example #13
0
 def testInvalidRunner(self):
     optList = [
         "NotARunner.py", "-a", "AppModule.py", "-b", "foo", "-v", "+b",
         "bar"
     ]
     obj = Options(optList, SiteOptions.BatchBase.parmDict)
     print dir(obj)
     self.obj = obj
     assert obj.appConfigurationModule == "AppModule.py"
     assert obj.appConfigurationParms == ["foo", "bar"]
     assert obj.verbose is False
 def setUp(self):
     print '%s %s' % (self.id(), self.shortDescription())
     self.options = Options(["FileRunner", "+v", "+e", "foo", "bar"],
                            BatchBase.parmDict)
     self.saveFitGlobal = (FitGlobal.RunOptions, FitGlobal.Options,
                           FitGlobal.Environment)
     FitGlobal.RunOptions = self.options
     FitGlobal.Options = self.options
     FitGlobal.Environment = "Batch"
     Variations.returnVariation()
     ##        it = getattr(FixtureLoader, "__it__", None)
     ##        if it is not None:
     ##            del FixtureLoader.__it__
     self.obj = FixtureLoader()
     FixtureLoader.clearFixtureRenameTable()
 def setUp(self):
     print '%s %s' % (self.id(), self.shortDescription())
     self.options = Options(["FileRunner", "+v", "+e", "foo", "bar"],
                            BatchBase.parmDict)
     self.saveFitGlobal = (FitGlobal.RunOptions, FitGlobal.Options,
                           FitGlobal.Environment)
     self.saveAppExit = (FitGlobal.appConfigModule, FitGlobal.appConfig)
     FitGlobal.RunOptions = self.options
     FitGlobal.Options = self.options
     FitGlobal.Environment = "Batch"
     FitGlobal.appConfigModule = MockAppConfigMapFixture
     FitGlobal.appConfig = MockAppConfigMapFixture()
     Variations.returnVariation()
     self.obj = FixtureLoader()
     FixtureLoader.clearFixtureRenameTable()
Example #16
0
    def parms(self, optv):
        self.options = Options(optv, BatchBase.parmDict, "BatchBase")
        # was self._parmDict
        opts = self.options
        FG.RunOptions = opts
        FG.Options = opts
        conMsg.setVerbose(opts.verbose)
        errMsgs = opts.eMsgs
        fileList = opts.posParms
        if not opts.isValid:
            for msg in errMsgs:
                conMsg.err(msg)
            self._usage()
            return False

        if opts.standardsLevel == "":
            FG.SpecificationLevel = "1.1"
        elif opts.standardsLevel != "1.1":
            conMsg.err("Standards level must be 1.1")
            FG.SpecificationLevel = "1.1"
        else:
            FG.SpecificationLevel = opts.standardsLevel

        if opts.standardMode is True:
            if opts.useCSS is True:
                conMsg.err("Standards mode requested. CSS output suppressed")
                opts.useCSS = False

        parmEditOK = ParmEditStatus()
        runType = "?"

        result = self._loadAppConfigurationModule(opts)
        if result is not True:
            conMsg.err(result)
            parmEditOK += False

        if 2 <= len(fileList) <= 3:
            self.inDir = FG.fsa.abspath(fileList[0])
            self.outDir = FG.fsa.abspath(fileList[1])
            statFile = FG.fsa.join(self.outDir, "FitStatistics.xml")
            if FG.fsa.isdir(self.inDir):
                self.inFile = None
                runType = "d"
                self._runObj = DirectoryRunner(self.inDir, self.outDir,
                                               self.options)
                if not FG.fsa.isdir(self.outDir):
                    conMsg.err(
                        "Output must be existing directory for input directory option")
                    parmEditOK += False
            elif (FG.fsa.isfile(self.inDir)):
                self.inFile = self.inDir
                self.inDir, tail = FG.fsa.split(self.inFile)
                root, ext = FG.fsa.splitext(self.inFile)
                if ext == ".txt":
                    if len(fileList) > 2:
                        conMsg.err(
                            "Rename File not allowed for list of files option")
                        parmEditOK += False
                    runType = "l"
                    self._runObj = FileListRunner(self.inFile, self.outDir,
                                                  self.options)
                    if not self.options.isValid:
                        for msg in self.options.eMsgs:
                            conMsg.err(msg)
                        self._usage()
                        return False
                        
                    parmEditOK += FG.appConfigInterface("listOfFilesOptions",
                                          self.options)
                    if not FG.fsa.isdir(self.outDir):
                        conMsg.err(
                            "Output must be existing directory for List of Files option")
                        parmEditOK += False
                else:
                    runType = "h"
                    self._runObj = HTMLRunner(self.inFile, self.outDir,
                                              self.options)
                    statFile = ""
                    head, tail = FG.fsa.split(self.outDir)
                    if not FG.fsa.isdir(head):
                        conMsg.err(
                            "Output directory for result file must exist.")
                        parmEditOK += False
                    else:
                        if FG.fsa.exists(self.outDir) and not FG.fsa.isfile(self.outDir):
                            conMsg.err(
                                "Output for single file option must be a file.")
                            parmEditOK += False
                    
            else:
                conMsg.err("'%s' does not exist!\n" % self.inDir)
                parmEditOK += False

        else:
            conMsg.err("Wrong number of positional parameters\n")
            parmEditOK += False

        # options from the "list of files" have been merged at this point
        parmEditOK += self._extractDiagnosticOptions(opts,
                                        FG.RunDiagnosticOptions)
        result = self._extractRunLevelSymbols(opts,
                                        FG.RunLevelSymbols)
        parmEditOK += result

        if len(fileList) == 3:
            loadOK = self._loadRenameFile(fileList[2])
            if not loadOK:
                conMsg.err("Rename file '%s' failed to load" % fileList[2])
            parmEditOK += loadOK
        else:
            default = FG.fsa.join(self.inDir, "FixtureRenames.txt")
            self._loadRenameFile(default)

        self.runType = runType
        Variations.returnVariation()

        if parmEditOK:
            self._setupStatisticsFile(runType, opts, statFile)
            self._setupConsoleStatisticsPrint(opts, runType)
            stack.init(opts)
            return True

        self._usage()
        return False
Example #17
0
 def testInvalidEncodingOption(self):
     optList = ["FileRunner.py", "+d", "enigma"]
     obj = Options(optList, SiteOptions.BatchBase.parmDict)
     self.obj = obj
     assert not obj.isValid
     assert obj.defaultEncoding == ""
Example #18
0
 def setUp(self):
     print '%s %s' % (self.id(), self.shortDescription())
     setupFitGlobalForTests("Batch")
     self.options = Options(["FileRunner", "+v", "foo", "bar"],
                            BatchBase.parmDict)
Example #19
0
 def testInstantiation(self):
     optList = ["FileRunner.py", "-a", "+bc"]
     optTable = {"a": ("bx", "saveOption")}
     unused = Options(optList, optTable)
Example #20
0
 def testOneSwitchOn(self):
     optList = ["TestRunner.py", "+v"]
     obj = Options(optList, SiteOptions.TestRunner.parmDict)
     self.obj = obj
     assert obj.verbose is True
     assert obj.isValid
Example #21
0
 def testInvalidConsoleMode(self):
     optList = ["FolderRunner.py", "+q", "xx"]
     obj = Options(optList, SiteOptions.BatchBase.parmDict)
     self.obj = obj
     assert not obj.quietMode == "yn"
     assert not obj.isValid
# InitEnvironment module from Python FIT
#LegalStuff jr2005
#endLegalStuff

import copy
from fit import FitGlobal as FG
from fit import Variations
from fit.Options import Options
from fit import SiteOptions as SO

if FG.RunOptions is None:
    FG.RunOptions = Options(["FileRunner", "+v"], SO.BatchBase.parmDict)
    FG.Options = FG.RunOptions
    FG.annotationStyleVariation = Variations.returnVariation("Batch")


# following is invoked by many of the test classes in the SetUp routine.
def setupFitGlobalForTests(env, opts=[]):
    # Run Level Globals
    FG.specificationLevel = "1.1"
    FG.Environment = env
    FG.RunAppConfigModule = None
    FG.RunAppConfig = None
    FG.RunDiagnosticOptions = {}
    FG.RunLevelSymbols = {}
    if env == "Batch":
        FG.RunOptions = Options(["FileRunner", "+v"] + opts,
                                SO.BatchBase.parmDict)
    elif env == "FitNesseOnline":
        FG.RunOptions = Options(["FitServer", "+v"] + opts,
                                SO.FitServer.parmDict)