Exemple #1
0
 def __init__(self):
     # most of these are updated by dependency injection either
     # in one of the runners or in the recursive invocation in doTables.
     self.counts = Counts()
     self.summary = {}
     self.args = []
     self.argCells = []
     #        self._symbols = {}
     self.listener = NullFixtureListener()
     self.fixtureLoader = FixtureLoader()
    def _loadRenameFile(self, renameFileName):
#        self._renameFileName = renameFileName
        if not FG.fsa.isfile(renameFileName):
            return False
        valid = True
        try:
            rFile = FG.fsa.open(renameFileName, "rt")
            rList = rFile.readlines()
            rFile.close()
            FixtureLoader.loadFixtureRenameTable(rList)
        except: #pragma: no cover # should't happen - see test above
            valid = False
        return valid
Exemple #3
0
    def _loadRenameFile(self, renameFileName):
#        self._renameFileName = renameFileName
        if not FG.fsa.isfile(renameFileName):
            return False
        valid = True
        try:
            rFile = FG.fsa.open(renameFileName, "rt")
            rList = rFile.readlines()
            rFile.close()
            FixtureLoader.loadFixtureRenameTable(rList)
        except: #pragma: no cover # should't happen - see test above
            valid = False
        return valid
 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()
    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()
 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()
Exemple #8
0
    def __init__(self):
        # most of these are updated by dependency injection either
        # in one of the runners or in the recursive invocation in doTables.
        self.counts = Counts()
        self.summary = {}
        self.args = []
        self.argCells = []
#        self._symbols = {}
        self.listener = NullFixtureListener()
        self.fixtureLoader = FixtureLoader()
Exemple #9
0
class Fixture(object):
    # These labels are in the process of being moved to Variations.
    # They are still here until several fixtures that use them for
    # checking are fixed to call FitGlobal.annotationStyleVariation
    # to do the checking
    greenColor = "cfffcf"
    redColor = "ffcfcf"
    grayColor = "efefef"
    yellowColor = "ffffcf"
    labelColor = "c08080"
    grayLabelColor = "808080"
    greenLabelColor = "80c080"

    def __init__(self):
        # most of these are updated by dependency injection either
        # in one of the runners or in the recursive invocation in doTables.
        self.counts = Counts()
        self.summary = {}
        self.args = []
        self.argCells = []
#        self._symbols = {}
        self.listener = NullFixtureListener()
        self.fixtureLoader = FixtureLoader()

    ## Fixture Loader ##################################

    def loadFixture(self, pathToClass, shouldBeAFixture = True):
        "load requested fixture - return the class object"
        result = self.fixtureLoader.loadFixture(pathToClass,
                                                shouldBeAFixture)
        return result

    # !!! The following are proxy methods which are intended for
    #     use by the runners, the Import fixture and the unit test
    #     suite. They are not general use methods. Either the proxies
    #     or the base methods may be removed at any time.

    # this is called from the runners and the unit test suite    
    def clearFixtureRenameTable(self):
        self.fixtureLoader.clearFixtureRenameTable()

##    # this is called from the runners to load a table from a file.
##    def loadFixtureRenamesFromFile(self, fileName):
##        self.fixtureLoader.loadFixtureRenamesFromFile(fileName)

##    # this is called from the runners to load a table.
##    def loadFixtureRenameTable(self, aList):
##        self.fixtureLoader.loadFixtureRenameTable(aList)

    # this is called from the Import fixture
    def addRenameToRenameTable(self, alias, originalPath):
        self.fixtureLoader.addRenameToRenameTable(alias, originalPath)

    # this is called from the Import fixture
    def rememberPackage(self, packageName):
        self.fixtureLoader.rememberPackage(packageName)

    # this is called from the MiscTest unit tests for Import
    def clearRememberedPackageTable(self):
        self.fixtureLoader.clearRememberedPackageTable()

    # !!! end of internal use proxy methods.        

    ## Major Table Traversal ##########################

    # First table processing unrolled for doFixture from FitLibrary.
    # changes copyright 2004 Rick Mugridge, University of Auckland, NZ.
    # This is only invoked under the first instance of Fixture. It cannot
    # be overridden by a subclass unless the subclass is invoked at the
    # top level by runner.
    def doTables(self, tables):
        self.listener.tablesStarted(tables)
        self.summary["run date"] = time.ctime(time.time())
        self.summary["run elapsed time"] = RunTime()
        Variations.returnVariation()
        if tables.tag.lower() == "<wiki>":
            tables = tables.parts
        # Rick's unrolled process begins here...
        if tables is not None:
            heading = self.fixtureName(tables)
            if heading is not None:
                try:
                    fixture = self.getLinkedFixtureWithArgs(tables)
                    fixture.interpretTables(tables)
                except Exception, e:
                    self.exception(heading, e)
                    self.listener.tableFinished(tables)
                    self._interpretFollowingTables(tables)
 def tearDown(self):
     FixtureLoader.clearFixtureRenameTable()
     FitGlobal.RunOptions, FitGlobal.Options, FitGlobal.Environment = \
                           self.saveFitGlobal
class Test_FixtureLoader(TestCase):
    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 testAddToRenameTable(self):
        obj = self.obj
        assert not hasattr(obj._fixtureRenameTable, "spam")
        obj.addRenameToRenameTable("spam", "eggs")
        assert obj._fixtureRenameTable["spam"] == "eggs"

    def testLoadOfFixtureRenameTable(self):
        loader = self.obj
        assert len(loader._fixtureRenameTable) == 0
        loader.loadFixtureRenameTable(["spam: eggs\n", "foo: bar"])
        assert len(loader._fixtureRenameTable) == 2
        assert loader._fixtureRenameTable["spam"] == "eggs"
        assert loader._fixtureRenameTable["foo"] == "bar"

    def testLoadOfFixtureRenameTableWithComment(self):
        loader = self.obj
        assert len(loader._fixtureRenameTable) == 0
        loader.loadFixtureRenameTable(
            ["spam: eggs\n", "#This is: a comment", "foo: bar"])
        assert len(loader._fixtureRenameTable) == 2
        assert loader._fixtureRenameTable["spam"] == "eggs"
        assert loader._fixtureRenameTable["foo"] == "bar"

    def test_loadFixtureRenameTable(self):
        testList = [
            "fit.fat: exercise", "foo.bar: spam", "foo: ham",
            "spam.eggs: vikingChow"
        ]
        self.obj.loadFixtureRenameTable(testList)
        assert len(self.obj._fixtureRenameTable) == 4
        dList = [
            "%s: %s" % (key, value)
            for key, value in self.obj._fixtureRenameTable.items()
        ]
        dList.sort()
        assert dList == testList

    def test_renameFixtureName(self):
        testList = [
            "fit.fat: exercise", "foo: ham", "foo.bar: spam",
            "spam.eggs: vikingChow"
        ]
        self.obj.loadFixtureRenameTable(testList)
        assert self.obj._renameFixture("foo.bar.fefifofum") == "spam.fefifofum"
        assert self.obj._renameFixture("foo.fiddle") == "ham.fiddle"

    def testExactRenameMatch(self):
        loader = self.obj
        testList = [
            "laurel.hardy: fit.ColumnFixture",
        ]
        loader.loadFixtureRenameTable(testList)
        fixture = loader.loadFixture("laurel.hardy")
        assert fixture.__name__ == "ColumnFixture"

    def test_isGracefulName(self):
        assert self.obj.isGracefulName("foo bar")
        assert self.obj.isGracefulName("spam") is False
        assert self.obj.isGracefulName("spam.eggs") is False
        assert self.obj.isGracefulName("spam. eggs") is False
        assert self.obj.isGracefulName("spam. eggs.toast") is False

    def test_unGracefulName(self):
        assert self.obj.unGracefulName("foo'bar") == "Foobar"
        assert self.obj.unGracefulName("foo bar") == "FooBar"
        assert self.obj.unGracefulName("foo48bar") == "Foo48Bar"
        assert self.obj.unGracefulName("spam. eggs") == "Spam.Eggs"
        assert self.obj.unGracefulName("spam:eggs.toast") == "SpamEggs.Toast"

    def testOneLevelNameExists(self):
        loader = self.obj
        try:
            loader.loadFixture("FileRunner")
        except FitException, e:
            isExc, doTrace, result = e.getMeaningfulMessage()
            print result
            if result == ('"FileRunner" was found, but it\'s not a fixture.'):
                return
            raise
        assert False, "Accepted a non-Fixture object as a fixture"
 def tearDown(self):
     FixtureLoader.clearFixtureRenameTable()
     FitGlobal.RunOptions, FitGlobal.Options, FitGlobal.Environment = \
                           self.saveFitGlobal
     FitGlobal.appConfigModule, FitGlobal.appConfig = self.saveAppExit
 def tearDown(self):
     FixtureLoader.clearFixtureRenameTable()
     FitGlobal.RunOptions, FitGlobal.Options, FitGlobal.Environment = \
                           self.saveFitGlobal
     FitGlobal.appConfigModule, FitGlobal.appConfig = self.saveAppExit
 def testInitialContentOfRememberedPackagesCache(self):
     obj = FixtureLoader()
     assert obj._rememberedPackages.index("fit") == 0
class Test_FixtureLoader(TestCase):
    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 testAddToRenameTable(self):
        obj = self.obj
        assert not hasattr(obj._fixtureRenameTable, "spam")
        obj.addRenameToRenameTable("spam", "eggs")
        assert obj._fixtureRenameTable["spam"] == "eggs"

    def testLoadOfFixtureRenameTable(self):
        loader = self.obj
        assert len(loader._fixtureRenameTable) == 0
        loader.loadFixtureRenameTable(["spam: eggs\n",
                                       "foo: bar"
                                       ])
        assert len(loader._fixtureRenameTable) == 2
        assert loader._fixtureRenameTable["spam"] == "eggs"
        assert loader._fixtureRenameTable["foo"] == "bar"

    def testLoadOfFixtureRenameTableWithComment(self):
        loader = self.obj
        assert len(loader._fixtureRenameTable) == 0
        loader.loadFixtureRenameTable(["spam: eggs\n",
                                       "#This is: a comment",
                                       "foo: bar"
                                       ])
        assert len(loader._fixtureRenameTable) == 2
        assert loader._fixtureRenameTable["spam"] == "eggs"
        assert loader._fixtureRenameTable["foo"] == "bar"

    def test_loadFixtureRenameTable(self):
        testList = ["fit.fat: exercise", "foo.bar: spam", "foo: ham",
                     "spam.eggs: vikingChow"]
        self.obj.loadFixtureRenameTable(testList)
        assert len(self.obj._fixtureRenameTable) == 4
        dList = ["%s: %s" % (key, value) for key, value in 
                    self.obj._fixtureRenameTable.items()]
        dList.sort()
        assert dList == testList

    def test_renameFixtureName(self):
        testList = ["fit.fat: exercise", "foo: ham", "foo.bar: spam",
                     "spam.eggs: vikingChow"]
        self.obj.loadFixtureRenameTable(testList)
        assert self.obj._renameFixture("foo.bar.fefifofum") == "spam.fefifofum"
        assert self.obj._renameFixture("foo.fiddle") == "ham.fiddle"

    def testExactRenameMatch(self):
        loader = self.obj
        testList = ["laurel.hardy: fit.ColumnFixture",]
        loader.loadFixtureRenameTable(testList)
        fixture = loader.loadFixture("laurel.hardy")
        assert fixture.__name__ == "ColumnFixture"

    def test_isGracefulName(self):
        assert self.obj.isGracefulName("foo bar")
        assert self.obj.isGracefulName("spam") is False
        assert self.obj.isGracefulName("spam.eggs") is False
        assert self.obj.isGracefulName("spam. eggs") is False
        assert self.obj.isGracefulName("spam. eggs.toast") is False

    def test_unGracefulName(self):
        assert self.obj.unGracefulName("foo'bar") == "Foobar"
        assert self.obj.unGracefulName("foo bar") == "FooBar"
        assert self.obj.unGracefulName("foo48bar") == "Foo48Bar"
        assert self.obj.unGracefulName("spam. eggs") == "Spam.Eggs"
        assert self.obj.unGracefulName("spam:eggs.toast") == "SpamEggs.Toast"

    def testOneLevelNameExists(self):
        loader = self.obj
        try:
            loader.loadFixture("FileRunner")
        except FitException, e:
            isExc, doTrace, result = e.getMeaningfulMessage()
            print result
            if result == ('"FileRunner" was found, but it\'s not a fixture.'):
                return
            raise
        assert False, "Accepted a non-Fixture object as a fixture"
 def tearDown(self):
     FixtureLoader.clearFixtureRenameTable()
     FitGlobal.RunOptions, FitGlobal.Options, FitGlobal.Environment = \
                           self.saveFitGlobal
Exemple #17
0
 def _doFixtureRenamesSection(self, txtList):
     sectionList = self._extractSection(txtList, "[fixture renames]")
     if sectionList:
         FixtureLoader.loadFixtureRenameTable(sectionList)
 def _doFixtureRenamesSection(self, txtList):
     sectionList = self._extractSection(txtList, "[fixture renames]")
     if sectionList:
         FixtureLoader.loadFixtureRenameTable(sectionList)
Exemple #19
0
class Fixture(object):
    # These labels are in the process of being moved to Variations.
    # They are still here until several fixtures that use them for
    # checking are fixed to call FitGlobal.annotationStyleVariation
    # to do the checking
    greenColor = "cfffcf"
    redColor = "ffcfcf"
    grayColor = "efefef"
    yellowColor = "ffffcf"
    labelColor = "c08080"
    grayLabelColor = "808080"
    greenLabelColor = "80c080"

    def __init__(self):
        # most of these are updated by dependency injection either
        # in one of the runners or in the recursive invocation in doTables.
        self.counts = Counts()
        self.summary = {}
        self.args = []
        self.argCells = []
        #        self._symbols = {}
        self.listener = NullFixtureListener()
        self.fixtureLoader = FixtureLoader()

    ## Fixture Loader ##################################

    def loadFixture(self, pathToClass, shouldBeAFixture=True):
        "load requested fixture - return the class object"
        result = self.fixtureLoader.loadFixture(pathToClass, shouldBeAFixture)
        return result

    # !!! The following are proxy methods which are intended for
    #     use by the runners, the Import fixture and the unit test
    #     suite. They are not general use methods. Either the proxies
    #     or the base methods may be removed at any time.

    # this is called from the runners and the unit test suite
    def clearFixtureRenameTable(self):
        self.fixtureLoader.clearFixtureRenameTable()

##    # this is called from the runners to load a table from a file.
##    def loadFixtureRenamesFromFile(self, fileName):
##        self.fixtureLoader.loadFixtureRenamesFromFile(fileName)

##    # this is called from the runners to load a table.
##    def loadFixtureRenameTable(self, aList):
##        self.fixtureLoader.loadFixtureRenameTable(aList)

# this is called from the Import fixture

    def addRenameToRenameTable(self, alias, originalPath):
        self.fixtureLoader.addRenameToRenameTable(alias, originalPath)

    # this is called from the Import fixture
    def rememberPackage(self, packageName):
        self.fixtureLoader.rememberPackage(packageName)

    # this is called from the MiscTest unit tests for Import
    def clearRememberedPackageTable(self):
        self.fixtureLoader.clearRememberedPackageTable()

    # !!! end of internal use proxy methods.

    ## Major Table Traversal ##########################

    # First table processing unrolled for doFixture from FitLibrary.
    # changes copyright 2004 Rick Mugridge, University of Auckland, NZ.
    # This is only invoked under the first instance of Fixture. It cannot
    # be overridden by a subclass unless the subclass is invoked at the
    # top level by runner.
    def doTables(self, tables):
        self.listener.tablesStarted(tables)
        self.summary["run date"] = time.ctime(time.time())
        self.summary["run elapsed time"] = RunTime()
        Variations.returnVariation()
        if tables.tag.lower() == "<wiki>":
            tables = tables.parts
        # Rick's unrolled process begins here...
        if tables is not None:
            heading = self.fixtureName(tables)
            if heading is not None:
                try:
                    fixture = self.getLinkedFixtureWithArgs(tables)
                    fixture.interpretTables(tables)
                except Exception, e:
                    self.exception(heading, e)
                    self.listener.tableFinished(tables)
                    self._interpretFollowingTables(tables)