CMS 3D CMS Logo

parseConfig::TestModuleCommand Class Reference

List of all members.

Public Member Functions

def checkRepr
def setUp
def strip
def testInclude
def testLetterstart
def testParameters
def testParseCffFile
def testPath
def testPlaceholder
def testPlugin
def testProcess
def testReplace
def testUsing
def testValidation


Detailed Description

Definition at line 1682 of file parseConfig.py.


Member Function Documentation

def parseConfig::TestModuleCommand::checkRepr (   self,
  obj,
  expected 
)

Definition at line 2816 of file parseConfig.py.

02816                                           :
02817             # strip out whitespace & newlines
02818             observe = self.strip(repr(obj))
02819             expect = self.strip(expected)    
02820             self.assertEqual(observe, expect)
        def testReplace(self):

def parseConfig::TestModuleCommand::setUp (   self  ) 

Nothing to do 

Definition at line 1683 of file parseConfig.py.

01683                        :
01684             """Nothing to do """
01685             #print 'testing'
        def testPlaceholder(self):

def parseConfig::TestModuleCommand::strip (   value  ) 

strip out whitespace & newlines

Definition at line 2813 of file parseConfig.py.

02813                         :
02814             """strip out whitespace & newlines"""
02815             return  value.replace(' ','').replace('\n','')
        def checkRepr(self, obj, expected):

def parseConfig::TestModuleCommand::testInclude (   self  ) 

Definition at line 1897 of file parseConfig.py.

01897                              :
01898             #for testing use a different factory
01899             import StringIO
01900             global _fileFactory
01901             oldFactory = _fileFactory
01902             try:
01903                 _fileFactory = TestFactory('Sub/Pack/data/foo.cff', 'int32 blah = 1')
01904                 t=onlyParameters.parseString("PSet blah = {include 'Sub/Pack/data/foo.cff'}")
01905                 d=dict(iter(t))
01906                 self.assertEqual(type(d['blah']),cms.PSet)
01907                 self.assertEqual(getattr(d['blah'],"blah").value(), 1)
01908                 
01909                 _fileFactory = TestFactory('Sub/Pack/data/foo.cfi', 'module foo = TestProd {}')
01910                 t=onlyProcessBody.parseString("include 'Sub/Pack/data/foo.cfi'")
01911                 d=dict(iter(t))
01912                 self.assertEqual(d['Sub/Pack/data/foo.cfi'].filename, 'Sub/Pack/data/foo.cfi')
01913                 t = _findAndHandleProcessBlockIncludes(t)
01914                 d=dict(iter(t))
01915                 self.assertEqual(type(d['foo']),cms.EDProducer)
01916                 
01917                 #test ending with a comment
01918                 _fileFactory = TestFactory('Sub/Pack/data/foo.cfi', """module c = CProd {}
01919 #""")
01920                 t=onlyProcessBody.parseString("""module b = BProd {}
01921                                               include 'Sub/Pack/data/foo.cfi'""")
01922                 d=dict(iter(t))
01923                 self.assertEqual(d['Sub/Pack/data/foo.cfi'].filename, 'Sub/Pack/data/foo.cfi')
01924                 t = _findAndHandleProcessBlockIncludes(t)
01925 
01926                 _fileFactory = TestFactory('Sub/Pack/data/foo.cfi', "include 'Sub/Pack/data/foo.cfi'")
01927                 t=onlyProcessBody.parseString("include 'Sub/Pack/data/foo.cfi'")
01928                 d=dict(iter(t))
01929                 self.assertEqual(d['Sub/Pack/data/foo.cfi'].filename, 'Sub/Pack/data/foo.cfi')
01930                 self.assertRaises(RuntimeError,_findAndHandleProcessBlockIncludes,t)
01931                 #t = _findAndHandleProcessBlockIncludes(t)
01932 
01933                 _fileFactory = TestFactory('Sub/Pack/data/foo.cff', '#an empty file')
01934                 t=onlyParameters.parseString("PSet blah = {include 'Sub/Pack/data/foo.cff'}")
01935                 d=dict(iter(t))
01936                 self.assertEqual(type(d['blah']),cms.PSet)
01937 
01938                 #test block
01939                 _fileFactory = TestFactory('Sub/Pack/data/foo.cff', """block c = { ##
01940                                            ##
01941                                            double EBs25notContainment = 0.965}
01942 """)
01943                 t=onlyProcessBody.parseString("""module b = BProd {using c}
01944                                               include 'Sub/Pack/data/foo.cff'""")
01945                 d=dict(iter(t))
01946                 self.assertEqual(d['Sub/Pack/data/foo.cff'].filename, 'Sub/Pack/data/foo.cff')
01947                 t = _findAndHandleProcessBlockIncludes(t)
01948                 
01949                 _fileFactory = TestFactory('Sub/Pack/data/foo.cff',
01950                                            """path p = {doesNotExist}""")
01951                 try:
01952                     process.parseString("""process T = { include 'Sub/Pack/data/foo.cff' }""")
01953                 except Exception,e:
01954                     self.assertEqual(str(e),
01955 """the process contains the error 
01956 path 'p' contains the error: 'Process' object has no attribute 'doesNotExist'
01957  from file Sub/Pack/data/foo.cff (at char 4), (line:1, col:5)""")
01958                 else:
01959                     self.fail("failed to throw exception")
01960             finally:
01961                 _fileFactory = oldFactory
        def testParseCffFile(self):

def parseConfig::TestModuleCommand::testLetterstart (   self  ) 

Definition at line 1691 of file parseConfig.py.

01691                                  :
01692             t = letterstart.parseString("abcd")
01693             self.assertEqual(len(t),1)
01694             self.assertEqual(t[0],"abcd")
01695             t = letterstart.parseString("a1cd")
01696             self.assertEqual(len(t),1)
01697             self.assertEqual(t[0],"a1cd")
01698             t = letterstart.parseString("a_cd")
01699             self.assertEqual(t[0],"a_cd")
01700             t = letterstart.parseString("a-cd")
01701             self.assertEqual(t[0],"a-cd")
01702             self.assertRaises(pp.ParseBaseException,letterstart.parseString,("1abc"))
        def testParameters(self):

def parseConfig::TestModuleCommand::testParameters (   self  ) 

Definition at line 1703 of file parseConfig.py.

01703                                 :
01704             t=onlyParameters.parseString("bool blah = True")
01705             d =dict(iter(t))
01706             self.assertEqual(type(d['blah']),cms.bool)
01707             self.assertEqual(d['blah'].value(),True)
01708             t=onlyParameters.parseString("bool blah = 1")
01709             d =dict(iter(t))
01710             self.assertEqual(type(d['blah']),cms.bool)
01711             self.assertEqual(d['blah'].value(),True)
01712             t=onlyParameters.parseString("bool blah = False")
01713             d =dict(iter(t))
01714             self.assertEqual(type(d['blah']),cms.bool)
01715             self.assertEqual(d['blah'].value(),False)
01716             t=onlyParameters.parseString("bool blah = 2")
01717             d =dict(iter(t))
01718             self.assertEqual(type(d['blah']),cms.bool)
01719             self.assertEqual(d['blah'].value(),True)
01720             t=onlyParameters.parseString("vint32 blah = {}")
01721             d=dict(iter(t))
01722             self.assertEqual(type(d['blah']),cms.vint32)
01723             self.assertEqual(len(d['blah']),0)
01724             t=onlyParameters.parseString("vint32 blah = {1}")
01725             d=dict(iter(t))
01726             self.assertEqual(type(d['blah']),cms.vint32)
01727             self.assertEqual(d['blah'],[1])
01728             t=onlyParameters.parseString("vint32 blah = {1,2}")
01729             d=dict(iter(t))
01730             self.assertEqual(type(d['blah']),cms.vint32)
01731             self.assertEqual(d['blah'],[1,2])
01732             t=onlyParameters.parseString("string blah = 'a string'")
01733             d=dict(iter(t))
01734             self.assertEqual(type(d['blah']),cms.string)
01735             self.assertEqual(d['blah'].value(),'a string')
01736             t=onlyParameters.parseString('string blah = "a string"')
01737             d=dict(iter(t))
01738             self.assertEqual(type(d['blah']),cms.string)
01739             self.assertEqual(d['blah'].value(),'a string')
01740             t=onlyParameters.parseString('string blah = "\\0"')
01741             d=dict(iter(t))
01742             self.assertEqual(type(d['blah']),cms.string)
01743             self.assertEqual(d['blah'].value(),'\0')
01744 
01745             t=onlyParameters.parseString("vstring blah = {}")
01746             d=dict(iter(t))
01747             self.assertEqual(type(d['blah']),cms.vstring)
01748             self.assertEqual(len(d['blah']),0)
01749             t=onlyParameters.parseString("vstring blah = {'abc'}")
01750             d=dict(iter(t))
01751             self.assertEqual(type(d['blah']),cms.vstring)
01752             self.assertEqual(d['blah'],['abc'])
01753             t=onlyParameters.parseString("vstring blah = {'abc','def'}")
01754             d=dict(iter(t))
01755             self.assertEqual(type(d['blah']),cms.vstring)
01756             self.assertEqual(d['blah'],['abc','def'])
01757             
01758             t = onlyParameters.parseString("InputTag blah = tag")
01759             d=dict(iter(t))
01760             self.assertEqual(type(d['blah']),cms.InputTag)
01761             self.assertEqual(d['blah'].moduleLabel,'tag')
01762             self.assertEqual(d['blah'].productInstanceLabel,'')
01763             t = onlyParameters.parseString("InputTag blah = tag:")
01764             d=dict(iter(t))
01765             self.assertEqual(type(d['blah']),cms.InputTag)
01766             self.assertEqual(d['blah'].moduleLabel,'tag')
01767             self.assertEqual(d['blah'].productInstanceLabel,'')
01768 
01769             t = onlyParameters.parseString("InputTag blah =tag:youIt")
01770             # FAILS!
01771             #  = onlyParameters.parseString("InputTag blah = \"tag:youIt\"")
01772             d=dict(iter(t))
01773             self.assertEqual(type(d['blah']),cms.InputTag)
01774             self.assertEqual(d['blah'].moduleLabel,'tag')
01775             self.assertEqual(d['blah'].productInstanceLabel,'youIt')
01776 
01777             t = onlyParameters.parseString("InputTag blah = tag::proc")
01778             d=dict(iter(t))
01779             self.assertEqual(type(d['blah']),cms.InputTag)
01780             self.assertEqual(d['blah'].moduleLabel,'tag')
01781             self.assertEqual(d['blah'].processName,'proc')
01782                                                  
01783             t = onlyParameters.parseString("InputTag blah = tag:youIt:Now")
01784             d=dict(iter(t))
01785             self.assertEqual(type(d['blah']),cms.InputTag)
01786             self.assertEqual(d['blah'].moduleLabel,'tag')
01787             self.assertEqual(d['blah'].productInstanceLabel,'youIt')
01788             self.assertEqual(d['blah'].processName,'Now')
01789 
01790             t=onlyParameters.parseString("VInputTag blah = {}")
01791             d=dict(iter(t))
01792             self.assertEqual(type(d['blah']),cms.VInputTag)
01793             self.assertEqual(len(d['blah']),0)
01794             t=onlyParameters.parseString("VInputTag blah = {abc}")
01795             d=dict(iter(t))
01796             self.assertEqual(type(d['blah']),cms.VInputTag)
01797             self.assertEqual(d['blah'],[cms.InputTag('abc')])
01798             t=onlyParameters.parseString("VInputTag blah = {abc, def}")
01799             d=dict(iter(t))
01800             self.assertEqual(type(d['blah']),cms.VInputTag)
01801             self.assertEqual(d['blah'],[cms.InputTag('abc'),cms.InputTag('def')])
01802             t=onlyParameters.parseString("VInputTag blah = {'abc', def}")
01803             d=dict(iter(t))
01804             self.assertEqual(type(d['blah']),cms.VInputTag)
01805             self.assertEqual(d['blah'],[cms.InputTag('abc'),cms.InputTag('def')])
01806 
01807 
01808             t=onlyParameters.parseString("EventID eid= 1:2")
01809             d=dict(iter(t))
01810             self.assertEqual(type(d['eid']),cms.EventID)
01811             self.assertEqual(d['eid'].run(), 1)
01812             self.assertEqual(d['eid'].event(), 2)
01813             t=onlyParameters.parseString("LuminosityBlockID lbid= 1:2")
01814             d=dict(iter(t))
01815             self.assertEqual(type(d['lbid']),cms.LuminosityBlockID)
01816             self.assertEqual(d['lbid'].run(), 1)
01817             self.assertEqual(d['lbid'].luminosityBlock(), 2)
01818 
01819 
01820             
01821             t=onlyParameters.parseString("PSet blah = {}")
01822             d=dict(iter(t))
01823             self.assertEqual(type(d['blah']),cms.PSet)
01824 
01825             t=onlyParameters.parseString("PSet blah = {int32 ick = 1 }")
01826             d=dict(iter(t))
01827             self.assertEqual(type(d['blah']),cms.PSet)
01828             self.assertEqual(d['blah'].ick.value(), 1)            
01829 
01830             t=onlyParameters.parseString("""PSet blah = {
01831                                          int32 ick = 1
01832                                          }""")
01833             d=dict(iter(t))
01834             self.assertEqual(type(d['blah']),cms.PSet)
01835             self.assertEqual(d['blah'].ick.value(), 1)            
01836 
01837             t=onlyParameters.parseString("""PSet blah = {
01838                                          InputTag t1 = abc: 
01839                                          InputTag t2 = def:GHI
01840                                          }""")
01841             d=dict(iter(t))
01842             self.assertEqual(type(d['blah']),cms.PSet)
01843 
01844             t=onlyParameters.parseString("VPSet blah = {}")
01845             d=dict(iter(t))
01846             self.assertEqual(type(d['blah']),cms.VPSet)
01847             
01848             t=onlyParameters.parseString("VPSet blah = { {} }")
01849             d=dict(iter(t))
01850             self.assertEqual(type(d['blah']),cms.VPSet)
01851             self.assertEqual(len(d['blah']),1)
01852 
01853             t=onlyParameters.parseString("VPSet blah = { {int32 ick = 1 } }")
01854             d=dict(iter(t))
01855             self.assertEqual(type(d['blah']),cms.VPSet)
01856             self.assertEqual(len(d['blah']),1)
01857             t=onlyParameters.parseString("VPSet blah = { {int32 ick = 1 }, {int32 ick =2} }")
01858             d=dict(iter(t))
01859             self.assertEqual(type(d['blah']),cms.VPSet)
01860             self.assertEqual(len(d['blah']),2)
01861             
01862             t=onlyParameters.parseString("secsource blah = Foo {int32 ick=1}")
01863             d=dict(iter(t))
01864             self.assertEqual(type(d['blah']),cms.SecSource)
01865 
        def testValidation(self):

def parseConfig::TestModuleCommand::testParseCffFile (   self  ) 

Definition at line 1962 of file parseConfig.py.

01962                                   :
01963             import StringIO
01964             global _fileFactory
01965             oldFactory = _fileFactory
01966             try:
01967                 _fileFactory = TestFactory('Sub/Pack/data/foo.cff',
01968                                            """module a = AProducer {}
01969                                            sequence s1 = {s}
01970                                            sequence s = {a}""")
01971                 p=parseCffFile('Sub/Pack/data/foo.cff')
01972                 self.assertEqual(p.a.type_(),'AProducer')
01973                 self.assertEqual(type(p.s1),cms.Sequence)
01974                 self.assertTrue(p.s1._seq is p.s)
01975                 pr=cms.Process('Test')
01976                 pr.extend(p)
01977                 self.assertEqual(str(pr.s),'a')
01978                 pr.dumpConfig()
01979             finally:
01980                 _fileFactory = oldFactory
01981             
        def testPlugin(self):

def parseConfig::TestModuleCommand::testPath (   self  ) 

Definition at line 2722 of file parseConfig.py.

02722                           :
02723             p = cms.Process('Test')
02724             p.out = cms.OutputModule('PoolOutputModule')
02725             p.a = cms.EDProducer('AProd')
02726             p.b = cms.EDProducer('BProd')
02727             p.c = cms.EDProducer('CProd')
02728             t=path.parseString('path p = {out}')
02729             self.assertEqual(str(t[0][1]),'out')
02730             pth = t[0][1].make(p)
02731             self.assertEqual(str(pth),'out')
02732             #setattr(p,t[0][0],pth)
02733             #print getattr(p,t[0][0])
02734             #print pth
02735 #            print t[0][1]
02736             t=path.parseString('path p = {a,b}')
02737             self.assertEqual(str(t[0][1]),'(a,b)')            
02738             self.checkRepr(t[0][1], 'cms.Path(a*b)')
02739             options = PrintOptions()
02740             options.isCfg = True
02741             self.assertEqual(t[0][1].dumpPython(options), 'cms.Path(process.a*process.b)')
02742             pth = t[0][1].make(p)
02743             self.assertEqual(str(pth),'a*b')
02744             #print pth
02745 #            print t[0][1]
02746             t=path.parseString('path p = {a&b}')
02747             self.assertEqual(str(t[0][1]),'(a&b)')
02748             pth = t[0][1].make(p)
02749             self.assertEqual(str(pth),'a+b')
02750 #            print t[0][1]
02751             t=path.parseString('path p = {a,b,c}')
02752             self.assertEqual(str(t[0][1]),'((a,b),c)')
02753             pth = t[0][1].make(p)
02754             self.assertEqual(str(pth),'a*b*c')
02755 #            print t[0][1]
02756             t=path.parseString('path p = {a&b&c}')
02757             self.assertEqual(str(t[0][1]),'((a&b)&c)')
02758             pth = t[0][1].make(p)
02759             self.assertEqual(str(pth),'a+b+c')
02760 #            print t[0][1]
02761             t=path.parseString('path p = {a&b,c}')
02762             self.assertEqual(str(t[0][1]),'(a&(b,c))')
02763             pth = t[0][1].make(p)
02764             self.assertEqual(str(pth),'a+b*c')
02765 #            print t[0][1]
02766             t=path.parseString('path p = {a,b&c}')
02767             self.assertEqual(str(t[0][1]),'((a,b)&c)')
02768             pth = t[0][1].make(p)
02769             self.assertEqual(str(pth),'a*b+c')
02770 #            print t[0][1]
02771             t=path.parseString('path p = {(a,b)&c}')
02772             self.assertEqual(str(t[0][1]),'((a,b)&c)')
02773             pth = t[0][1].make(p)
02774             self.assertEqual(str(pth),'a*b+c')
02775 #            print t[0][1]
02776             t=path.parseString('path p = {(a&b),c}')
02777             self.assertEqual(str(t[0][1]),'((a&b),c)')
02778             pth = t[0][1].make(p)
02779             self.assertEqual(str(pth),'(a+b)*c')
02780 #            print t[0][1]
02781             t=path.parseString('path p = {a,(b&c)}')
02782             self.assertEqual(str(t[0][1]),'(a,(b&c))')
02783             pth = t[0][1].make(p)
02784             self.assertEqual(str(pth),'a*(b+c)')
02785 #            print t[0][1]
02786             t=path.parseString('path p = {a&(b,c)}')
02787             self.assertEqual(str(t[0][1]),'(a&(b,c))')
02788             pth = t[0][1].make(p)
02789             self.assertEqual(str(pth),'a+b*c')
02790 #            print t[0][1]
02791             p.d = cms.Sequence(p.a*p.b)
02792             t=path.parseString('path p = {d,c}')
02793             self.assertEqual(str(t[0][1]),'(d,c)')
02794             pth = t[0][1].make(p)
02795             self.assertEqual(str(pth),'a*b*c')
02796 #            print t[0][1]
02797             t=path.parseString('path p = {a&!b}')
02798             self.assertEqual(str(t[0][1]),'(a&!b)')
02799             pth = t[0][1].make(p)
02800             self.assertEqual(str(pth),'a+~b')
02801 #            print t[0][1]
02802             t=path.parseString('path p = {!a&!b&!c}')
02803             self.assertEqual(str(t[0][1]),'((!a&!b)&!c)')
02804             pth = t[0][1].make(p)
02805             self.assertEqual(str(pth),'~a+~b+~c')
02806 
02807             t=path.parseString('path p = {a&-b}')
02808             self.assertEqual(str(t[0][1]),'(a&-b)')
02809             pth = t[0][1].make(p)
02810             self.assertEqual(str(pth),'a+cms.ignore(b)')
02811 
02812         @staticmethod
        def strip(value):

def parseConfig::TestModuleCommand::testPlaceholder (   self  ) 

Definition at line 1686 of file parseConfig.py.

01686                                  :
01687             t=path.parseString('path p = {out}')
01688             _validateSequences(t)
01689             self.assertEqual(repr(t[0][1]), "cms.Path(cms.SequencePlaceholder(\"out\"))")
01690 
        def testLetterstart(self):

def parseConfig::TestModuleCommand::testPlugin (   self  ) 

Definition at line 1982 of file parseConfig.py.

01982                             :
01983             t=plugin.parseString("source = PoolSource { }")
01984             d=dict(iter(t))
01985             self.assertEqual(type(d['source']),cms.Source)
01986             self.assertEqual(d['source'].type_(),"PoolSource")
01987             
01988             t=plugin.parseString("source = PoolSource { }")
01989             d=dict(iter(t))
01990             self.assertEqual(type(d['source']),cms.Source)
01991             self.assertEqual(d['source'].type_(),"PoolSource")
01992 
01993             t=plugin.parseString("service = MessageLogger { }")
01994             d=dict(iter(t))
01995             self.assertEqual(type(d['MessageLogger']),cms.Service)
01996             self.assertEqual(d['MessageLogger'].type_(),"MessageLogger")
01997             
01998             t=plugin.parseString("module foo = FooMod { }")
01999             d=dict(iter(t))
02000             self.assertEqual(type(d['foo']),cms.EDFilter)
02001             self.assertEqual(d['foo'].type_(),"FooMod")
02002             
02003             t=plugin.parseString("module out = AsciiOutputModule { }")
02004             d=dict(iter(t))
02005             self.assertEqual(type(d['out']),cms.OutputModule)
02006             self.assertEqual(d['out'].type_(),"AsciiOutputModule")
02007 
02008             t=plugin.parseString("module foo = FooProd { }")
02009             d=dict(iter(t))
02010             self.assertEqual(type(d['foo']),cms.EDProducer)
02011             self.assertEqual(d['foo'].type_(),"FooProd")
02012             
02013             t=plugin.parseString("module foo = FooProducer { }")
02014             d=dict(iter(t))
02015             self.assertEqual(type(d['foo']),cms.EDProducer)
02016             self.assertEqual(d['foo'].type_(),"FooProducer")
02017 
02018             t=plugin.parseString("es_module = NoLabel {}")
02019             d=dict(iter(t))
02020             self.assertEqual(type(d['NoLabel']),cms.ESProducer)
02021             self.assertEqual(d['NoLabel'].type_(),"NoLabel")
02022  
02023             t=plugin.parseString("es_module foo = WithLabel {}")
02024             d=dict(iter(t))
02025             self.assertEqual(type(d['foo']),cms.ESProducer)
02026             self.assertEqual(d['foo'].type_(),"WithLabel")
02027             
02028             t=plugin.parseString("""module mix = MixingModule {
02029             secsource input = PoolRASource {
02030                vstring fileNames = {}
02031                }
02032             }
02033             """)
02034             global _fileFactory
02035             oldFactory = _fileFactory
02036             try:
02037                 _fileFactory = TestFactory('Sub/Pack/data/foo.cfi', 'module foo = TestProd {}')
02038                 t=plugin.parseString("module bar = foo from 'Sub/Pack/data/foo.cfi'")
02039                 t = _findAndHandleProcessBlockIncludes(t)
02040                 d = dict(iter(t))
02041                 self.assertEqual(type(d['bar']),cms.EDProducer)
02042                 self.assertEqual(d['bar'].type_(),"TestProd")
02043                 
02044                 
02045                 _fileFactory = TestFactory('Sub/Pack/data/foo.cfi', 'es_module foo = TestProd {}')
02046                 t=plugin.parseString("es_module bar = foo from 'Sub/Pack/data/foo.cfi'")
02047                 t = _findAndHandleProcessBlockIncludes(t)
02048                 d=dict(iter(t))
02049                 self.assertEqual(type(d['bar']),cms.ESProducer)
02050                 self.assertEqual(d['bar'].type_(),"TestProd")
02051             finally:
02052                 _fileFactory = oldFactory
02053 
02054             self.assertRaises(pp.ParseFatalException,
02055                               plugin.parseString,
02056                               ("""es_module foo = WithLabel {
02057                                  uint32 a = 1
02058                                  int32 a = 1
02059                                  }"""))
        def testProcess(self):

def parseConfig::TestModuleCommand::testProcess (   self  ) 

Definition at line 2060 of file parseConfig.py.

02060                              :
02061             global _allUsingLabels
02062             _allUsingLabels = set()
02063             t=process.parseString(
02064 """
02065 process RECO = {
02066    source = PoolSource {
02067      untracked vstring fileNames = {"file:foo.root"}
02068    }
02069    module out = PoolOutputModule {
02070      untracked string fileName = "blah.root"
02071    }
02072    path p = {out}
02073 }""")
02074             self.assertEqual(t[0].source.type_(),"PoolSource")
02075             self.assertEqual(t[0].out.type_(),"PoolOutputModule")
02076             self.assertEqual(type(t[0].p),cms.Path)
02077             self.assertEqual(str(t[0].p),'out')
02078             #print t[0].dumpConfig()
02079             import StringIO
02080             global _fileFactory
02081             oldFactory = _fileFactory
02082             try:
02083                 _fileFactory = TestFactory('Sub/Pack/data/foo.cfi',
02084                                            'module foo = FooProd {}')
02085                 _allUsingLabels = set()
02086                 t=process.parseString(
02087 """
02088 process RECO = {
02089    source = PoolSource {
02090      untracked vstring fileNames = {"file:foo.root"}
02091    }
02092    include "Sub/Pack/data/foo.cfi"
02093    path p = {foo}
02094 }""")
02095                 self.assertEqual(t[0].foo.type_(),"FooProd")
02096             finally:
02097                 _fileFactory = oldFactory
02098 
02099             _allUsingLabels = set()
02100             t=process.parseString(
02101 """
02102 process RECO = {
02103    source = PoolSource {
02104      untracked vstring fileNames = {"file:foo.root"}
02105    }
02106    module out = PoolOutputModule {
02107      untracked string fileName = "blah.root"
02108    }
02109    endpath e = {out}
02110    module foo = FooProd {}
02111    module bar = BarProd {}
02112    module fii = FiiProd {}
02113    path p = {s&fii}
02114    sequence s = {foo,bar}
02115 }""")
02116             self.assertEqual(str(t[0].p),'foo*bar+fii')
02117             self.assertEqual(str(t[0].s),'foo*bar')
02118             t[0].dumpConfig()
02119 
02120             _allUsingLabels = set()
02121             t=process.parseString(
02122 """
02123 process RECO = {
02124    source = PoolSource {
02125      untracked vstring fileNames = {"file:foo.root"}
02126    }
02127    module out = PoolOutputModule {
02128      untracked string fileName = "blah.root"
02129    }
02130    endpath e = {out}
02131    module foo = FooProd {}
02132    module bar = BarProd {}
02133    module fii = FiiProd {}
02134    path p = {s&!fii}
02135    sequence s = {foo,bar}
02136 }""")
02137             self.assertEqual(str(t[0].p),'foo*bar+~fii')
02138             self.assertEqual(str(t[0].s),'foo*bar')
02139             t[0].dumpConfig()
02140             
02141             s="""
02142 process RECO = {
02143     module foo = FooProd {}
02144     path p = {fo}
02145 }
02146 """
02147             self.assertRaises(RuntimeError,process.parseString,(s),**dict())
02148             try:
02149                 _allUsingLabels = set()
02150                 t=process.parseString(s)
02151             except Exception, e:
02152                 print e
02153 
02154             _allUsingLabels = set()
02155             t=process.parseString("""
02156 process RECO = {
02157    block outputStuff = {
02158       vstring outputCommands = {"drop *"}
02159    }
02160    block toKeep = {
02161       vstring outputCommands = {"keep blah_*_*_*"}
02162    }
02163    replace outputStuff.outputCommands += toKeep.outputCommands
02164 }
02165 """)
02166             self.assertEqual(t[0].outputStuff.outputCommands,["drop *","keep blah_*_*_*"])
02167 
02168             _allUsingLabels = set()
02169             t=process.parseString("""
02170 process RECO = {
02171   module i = iterativeCone5CaloJets from "FWCore/ParameterSet/test/chainIncludeModule.cfi"
02172 }
02173 """)
02174             self.assertEqual(t[0].i.jetType.value(), "CaloJet")
02175 
02176 
02177             _allUsingLabels = set()
02178             t=process.parseString("""
02179 process RECO = {
02180   include "FWCore/ParameterSet/test/chainIncludeBlock.cfi"
02181   replace CaloJetParameters.inputEMin = 0.1
02182   module i = iterativeConeNoBlock from "FWCore/ParameterSet/test/chainIncludeModule2.cfi"
02183 }
02184 """)
02185             self.assertEqual(t[0].i.jetType.value(), "CaloJet")
02186             self.assertEqual(t[0].i.inputEMin.value(), 0.1)
02187 
02188 
02189 
02190             _allUsingLabels = set()
02191             t=process.parseString("""
02192 process RECO = {
02193    block outputStuff = {
02194       vstring outputCommands = {"drop *"}
02195    }
02196    block toKeep1 = {
02197       vstring outputCommands = {"keep blah1_*_*_*"}
02198    }
02199    block toKeep2 = {
02200       vstring outputCommands = {"keep blah2_*_*_*"}
02201    }
02202    block toKeep3 = {
02203       vstring outputCommands = {"keep blah3_*_*_*"}
02204    }
02205    replace outputStuff.outputCommands += toKeep1.outputCommands
02206    replace outputStuff.outputCommands += toKeep2.outputCommands
02207    replace outputStuff.outputCommands += toKeep3.outputCommands
02208 }
02209 """)
02210             self.assertEqual(t[0].outputStuff.outputCommands,["drop *",
02211                                                               "keep blah1_*_*_*",
02212                                                               "keep blah2_*_*_*",
02213                                                               "keep blah3_*_*_*"])
02214 
02215             _allUsingLabels = set()
02216             t=process.parseString("""
02217 process RECO = {
02218    block outputStuff = {
02219       vstring outputCommands = {"drop *"}
02220    }
02221    block toKeep1 = {
02222       vstring outputCommands = {"keep blah1_*_*_*"}
02223    }
02224    block toKeep2 = {
02225       vstring outputCommands = {"keep blah2_*_*_*"}
02226    }
02227    block toKeep3 = {
02228       vstring outputCommands = {"keep blah3_*_*_*"}
02229    }
02230    replace outputStuff.outputCommands += toKeep1.outputCommands
02231    replace outputStuff.outputCommands += toKeep2.outputCommands
02232    replace outputStuff.outputCommands += toKeep3.outputCommands
02233 
02234     module out = PoolOutputModule {
02235         using outputStuff
02236     }
02237 }
02238 """)
02239             self.assertEqual(t[0].out.outputCommands,["drop *",
02240                                                               "keep blah1_*_*_*",
02241                                                               "keep blah2_*_*_*",
02242                                                               "keep blah3_*_*_*"])
02243             t=process.parseString("""
02244 process RECO = {
02245    block FEVTEventContent = {
02246       vstring outputCommands = {"drop *"}
02247    }
02248    block FEVTSIMEventContent = {
02249       vstring outputCommands = {"drop *"}
02250    }
02251    block toKeep1 = {
02252       vstring outputCommands = {"keep blah1_*_*_*"}
02253    }
02254    block toKeep2 = {
02255       vstring outputCommands = {"keep blah2_*_*_*"}
02256    }
02257    block toKeep3 = {
02258       vstring outputCommands = {"keep blah3_*_*_*"}
02259    }
02260    
02261    block toKeepSim1 = {
02262       vstring outputCommands = {"keep blahs1_*_*_*"}
02263    }
02264    block toKeepSim2 = {
02265       vstring outputCommands = {"keep blahs2_*_*_*"}
02266    }
02267    block toKeepSim3 = {
02268       vstring outputCommands = {"keep blahs3_*_*_*"}
02269    }
02270    
02271    replace FEVTEventContent.outputCommands += toKeep1.outputCommands
02272    replace FEVTEventContent.outputCommands += toKeep2.outputCommands
02273    replace FEVTEventContent.outputCommands += toKeep3.outputCommands
02274 
02275    replace FEVTSIMEventContent.outputCommands += FEVTEventContent.outputCommands
02276 
02277    replace FEVTSIMEventContent.outputCommands += toKeepSim1.outputCommands
02278    replace FEVTSIMEventContent.outputCommands += toKeepSim2.outputCommands
02279    replace FEVTSIMEventContent.outputCommands += toKeepSim3.outputCommands
02280 
02281 }
02282 """)
02283             self.assertEqual(t[0].FEVTEventContent.outputCommands,["drop *",
02284                                                               "keep blah1_*_*_*",
02285                                                               "keep blah2_*_*_*",
02286                                                               "keep blah3_*_*_*"])
02287 
02288             self.assertEqual(t[0].FEVTSIMEventContent.outputCommands,["drop *",
02289                                                                       "drop *",
02290                                                             "keep blah1_*_*_*",
02291                                                               "keep blah2_*_*_*",
02292                                                               "keep blah3_*_*_*",
02293                                                             "keep blahs1_*_*_*",
02294                                                               "keep blahs2_*_*_*",
02295                                                               "keep blahs3_*_*_*"])
02296 
02297             t=process.parseString("""
02298 process RECO = {
02299    block FEVTEventContent = {
02300       vstring outputCommands = {"drop *"}
02301    }
02302    block FEVTSIMEventContent = {
02303       vstring outputCommands = {"drop *"}
02304    }
02305    block toKeep1 = {
02306       vstring outputCommands = {"keep blah1_*_*_*"}
02307    }
02308    block toKeep2 = {
02309       vstring outputCommands = {"keep blah2_*_*_*"}
02310    }
02311    block toKeep3 = {
02312       vstring outputCommands = {"keep blah3_*_*_*"}
02313    }
02314    
02315    block toKeepSim1 = {
02316       vstring outputCommands = {"keep blahs1_*_*_*"}
02317    }
02318    block toKeepSim2 = {
02319       vstring outputCommands = {"keep blahs2_*_*_*"}
02320    }
02321    block toKeepSim3 = {
02322       vstring outputCommands = {"keep blahs3_*_*_*"}
02323    }
02324    
02325    replace FEVTEventContent.outputCommands += toKeep1.outputCommands
02326    replace FEVTEventContent.outputCommands += toKeep2.outputCommands
02327    replace FEVTEventContent.outputCommands += toKeep3.outputCommands
02328 
02329    replace FEVTSIMEventContent.outputCommands += FEVTEventContent.outputCommands
02330 
02331    replace FEVTSIMEventContent.outputCommands += toKeepSim1.outputCommands
02332    replace FEVTSIMEventContent.outputCommands += toKeepSim2.outputCommands
02333    replace FEVTSIMEventContent.outputCommands += toKeepSim3.outputCommands
02334 
02335    module out = PoolOutputModule {
02336       using FEVTSIMEventContent
02337    }
02338 }
02339 """)
02340             self.assertEqual(t[0].FEVTEventContent.outputCommands,["drop *",
02341                                                               "keep blah1_*_*_*",
02342                                                               "keep blah2_*_*_*",
02343                                                               "keep blah3_*_*_*"])
02344 
02345             self.assertEqual(t[0].FEVTSIMEventContent.outputCommands,["drop *",
02346                                                                       "drop *",
02347                                                             "keep blah1_*_*_*",
02348                                                               "keep blah2_*_*_*",
02349                                                               "keep blah3_*_*_*",
02350                                                             "keep blahs1_*_*_*",
02351                                                               "keep blahs2_*_*_*",
02352                                                               "keep blahs3_*_*_*"])
02353             self.assertEqual(t[0].out.outputCommands,
02354                              t[0].FEVTSIMEventContent.outputCommands)
02355 
02356 
02357 #NOTE: standard cfg parser can't do the following
02358             _allUsingLabels = set()
02359             s="""
02360 process RECO = {
02361    block outputStuff = {
02362       vstring outputCommands = {"drop *"}
02363    }
02364    block aTest = {
02365       vstring outputCommands = {"keep blah_*_*_*"}
02366    }    
02367    block toKeep = {
02368       using aTest
02369    }
02370    replace outputStuff.outputCommands += toKeep.outputCommands
02371 }
02372 """
02373             self.assertRaises(RuntimeError,process.parseString,(s),**dict())
02374             #self.assertEqual(t[0].outputStuff.outputCommands,["drop *","keep blah_*_*_*"])
02375             
02376             _allUsingLabels = set()
02377             t=process.parseString("""
02378 process RECO = {
02379    block outputStuff = {
02380       vstring outputCommands = {"drop *"}
02381    }
02382    block toKeep = {
02383       vstring outputCommands = {"keep blah_*_*_*"}
02384    }
02385    
02386    block final = {
02387         using outputStuff
02388     }
02389    replace outputStuff.outputCommands += toKeep.outputCommands
02390 }
02391 """)
02392             self.assertEqual(t[0].outputStuff.outputCommands,["drop *","keep blah_*_*_*"])
02393             self.assertEqual(t[0].final.outputCommands,["drop *","keep blah_*_*_*"])
02394 
02395             _allUsingLabels = set()
02396             t=process.parseString("""
02397 process TEST = {
02398     service = MessageLogger {
02399         untracked vstring destinations = {"dummy"}
02400         untracked PSet default = {
02401                untracked int32 limit = -1
02402         }
02403         untracked PSet dummy = {}
02404     }
02405     replace MessageLogger.default.limit = 10
02406     replace MessageLogger.destinations += {"goofy"}
02407     replace MessageLogger.dummy = { untracked string threshold = "WARNING" }
02408 }""")
02409             self.assertEqual(t[0].MessageLogger.default.limit.value(),10)
02410             self.assertEqual(t[0].MessageLogger.destinations,["dummy","goofy"])
02411             self.assertEqual(t[0].MessageLogger.dummy.threshold.value(),"WARNING")
02412 
02413             _allUsingLabels = set()
02414             t=process.parseString("""
02415 process TEST = {
02416   PSet first = {
02417     int32 foo = 1
02418     int32 fii = 2
02419   }
02420   
02421   module second = AModule {
02422     using first
02423   }
02424   
02425   replace first.foo = 2
02426   
02427   replace second.fii = 3
02428 }
02429 """)
02430             self.assertEqual(t[0].first.foo.value(), 2)
02431             self.assertEqual(t[0].first.fii.value(),2)
02432             self.assertEqual(t[0].second.foo.value(),2)
02433             self.assertEqual(t[0].second.fii.value(),3)
02434             
02435             _allUsingLabels = set()
02436             t=process.parseString("""
02437 process TEST = {
02438     es_module = UnnamedProd {
02439         int32 foo = 10
02440     }
02441     
02442     es_module me = NamedProd {
02443         int32 fii = 5
02444     }
02445     
02446     replace UnnamedProd.foo = 1
02447     
02448     replace me.fii = 10
02449 }
02450 """)
02451             self.assertEqual(t[0].UnnamedProd.foo.value(),1)
02452             self.assertEqual(t[0].me.fii.value(),10)
02453             
02454             _allUsingLabels = set()
02455             t=process.parseString("""
02456 process RECO = {
02457    block outputStuff = {
02458       vstring outputCommands = {"drop *"}
02459    }
02460    block toKeep = {
02461       vstring outputCommands = {"keep blah_*_*_*"}
02462    }
02463    replace outputStuff.outputCommands += toKeep.outputCommands
02464    
02465    source = PoolSource {
02466      untracked vstring fileNames = {"file:foo.root"}
02467      untracked vint32 foos = {1}
02468    }
02469    module out = PoolOutputModule {
02470      using outputStuff
02471      untracked string fileName = "blah.root"
02472    }
02473    replace PoolSource.fileNames = {"file:bar.root"}
02474    replace out.fileName = 'blih.root'
02475    replace PoolSource.foos += 2
02476    replace PoolSource.foos += 3
02477 }""")
02478             self.assertEqual(t[0].source.fileNames,["file:bar.root"])
02479             self.assertEqual(t[0].out.fileName.value(),"blih.root")
02480             self.assertEqual(t[0].source.foos,[1,2,3])
02481             self.assertEqual(t[0].outputStuff.outputCommands,["drop *","keep blah_*_*_*"])
02482             self.assertEqual(t[0].out.outputCommands,["drop *","keep blah_*_*_*"])
02483 
02484             _allUsingLabels = set()
02485             t=process.parseString("""
02486 process RECO = {
02487     module foo = FooProd {using b}
02488     PSet b = {uint32 i = 1}
02489     PSet c = {using b}
02490     block p1 = { int32 x = 2
02491                  int32 y = 9
02492     }
02493     PSet p2 = { using p1 }
02494     module m1 = MProd { using p2 }
02495     module m2 = MProd { using p2 }
02496     block b1 = {double y = 1.1 }
02497     block b2 = {double x = 2.2 }
02498 }
02499 """)
02500             self.assertEqual(t[0].foo.i.value(),1)
02501             self.assertEqual(t[0].c.i.value(),1)
02502             self.assert_(not hasattr(t[0].foo,'using_b') )
02503             self.assertEqual(t[0].p2.x.value(),2)
02504             self.assertEqual(t[0].m1.x.value(),2)
02505             self.assertEqual(t[0].m2.x.value(),2)
02506             #print t[0].dumpConfig()
02507 
02508             _allUsingLabels = set()
02509             s="""
02510 process RECO = {
02511     module foo = FooProd {using b}
02512     PSet b = {using c}
02513     PSet c = {using b}
02514 }
02515 """
02516             self.assertRaises(RuntimeError,process.parseString,(s),**dict())
02517 
02518             _allUsingLabels = set()
02519             s="""
02520 process RECO = {
02521     module foo = FooProd {using b
02522         uint32 alreadyHere = 1
02523     }
02524     PSet b = {uint32 alreadyHere = 2}
02525 }
02526 """
02527             self.assertRaises(RuntimeError,process.parseString,(s),**dict())
02528             #this was failing because of order in which the using was applied
02529 
02530             _allUsingLabels = set()
02531             t=process.parseString("""
02532 process USER = 
02533 {
02534         source = PoolInput
02535         {
02536                 string filename = "here"
02537         }
02538 
02539         block p1 = {
02540                     int32 x = 2
02541                     int32 y = 9
02542                    }
02543         PSet  p2 = {
02544                     using p1
02545                    }
02546 
02547         module m1 = MidpointJetProducer
02548         {
02549                 using p2
02550         }
02551 
02552         module m2 = MidpointJetProducer
02553         {
02554                 using p2
02555         }
02556 
02557         block b1 = { double y = 1.1 }
02558         block b2 = { double x = 2.2 }
02559 
02560         block G = {
02561           int32 g = 0
02562         }
02563 
02564         block H = {
02565           using G
02566         }
02567 
02568         block I = {
02569           using J
02570         }
02571 
02572         block J = {
02573           int32 j = 0
02574         }
02575 
02576         replace J.j = 1
02577 
02578         module A = UnconfigurableModule { }
02579         module B = UnconfigurableModule { }
02580         module C = UnconfigurableModule { }
02581         module D = UnconfigurableModule { }
02582         module E = UnconfigurableModule { }
02583         module F = UnconfigurableModule { }
02584         module filter = UnconfigurableFilter { }
02585 
02586         sequence s0a = { A}
02587         sequence s0b = { A,B}
02588         sequence s0c = { A&B}
02589         sequence s1 = { A,B&C,(D,E)&F }
02590         sequence s2 = { C&(A,B), m1,m2,s1 }
02591         sequence s3 = {s0a}
02592 
02593         path t1 = { (A,B&C,D),s0a,filter }
02594         path t2 = { A,B,C,D }
02595         path t3 = {s3&F}
02596         endpath te = { A&B }
02597         
02598         schedule = {t1,t2}
02599 
02600 }
02601 """)
02602             self.assertEqual(t[0].p2.x.value(), 2)
02603             self.assertEqual(t[0].m1.x.value(),2)
02604             self.assertEqual(t[0].m2.x.value(),2)
02605             self.assertEqual(t[0].J.j.value(),1)
02606             self.assertEqual(t[0].I.j.value(),1)
02607             #make sure dump succeeds
02608             t[0].dumpConfig()
02609 
02610             _allUsingLabels = set()
02611             t=process.parseString("""
02612 process USER = 
02613 {
02614     block a = {int32 i = 1}
02615     PSet b = {PSet c = {using a
02616        VPSet e={{using a} } } }
02617     VPSet d = {{using a}, {}}
02618 }""")
02619             self.assertEqual(t[0].b.c.i.value(),1)
02620             self.assertEqual(t[0].d[0].i.value(),1)
02621             self.assertEqual(t[0].b.c.e[0].i.value(), 1)
02622             #make sure dump succeeds
02623             t[0].dumpConfig()
02624 
02625             _allUsingLabels = set()
02626             t=process.parseString("""
02627 process USER = 
02628 {
02629     block a = {int32 i = 1}
02630     PSet b = { PSet c = {}
02631                VPSet g = {} }
02632     replace b.c = {using a
02633        VPSet e={{using a} } }
02634     VPSet d = {{using a}, {}}
02635 }""")
02636             self.assertEqual(t[0].b.c.i.value(),1)
02637             self.assertEqual(t[0].d[0].i.value(),1)
02638             self.assertEqual(t[0].b.c.e[0].i.value(), 1)
02639             #make sure dump succeeds
02640             t[0].dumpConfig()
02641 
02642             _allUsingLabels = set()
02643             t=process.parseString("""
02644 process USER = 
02645 {
02646     block a = {int32 i = 1}
02647     PSet b = { PSet c = {} }
02648     replace b.c = { PSet d = { using a }
02649        VPSet e={{using a} } }
02650 }""")
02651             self.assertEqual(t[0].b.c.d.i.value(),1)
02652             self.assertEqual(t[0].b.c.e[0].i.value(), 1)
02653             #make sure dump succeeds
02654             t[0].dumpConfig()
02655 
02656             t=process.parseString("""
02657 process USER = 
02658 {
02659     block a = {int32 i = 1}
02660     module b = BWorker { PSet c = {} }
02661     replace b.c = { PSet d = { using a }
02662        VPSet e={{using a} } }
02663 }""")
02664             self.assertEqual(t[0].b.c.d.i.value(),1)
02665             self.assertEqual(t[0].b.c.e[0].i.value(), 1)
02666             #make sure dump succeeds
02667             t[0].dumpConfig()
02668 
02669             t=process.parseString("""
02670 process p = {
02671 
02672   block roster = {
02673     string thirdBase = 'Some dude'
02674     PSet outfielders = {
02675       string rightField = 'Some dude'
02676     }
02677   }
02678 
02679   module bums = Ballclub {
02680     using roster
02681   }
02682 
02683 
02684   module allstars = Ballclub {
02685     using roster
02686   }
02687 
02688   replace allstars.thirdBase = 'Chuck Norris'
02689   replace allstars.outfielders.rightField = 'Babe Ruth'
02690 }""")
02691             self.assertEqual(t[0].bums.thirdBase.value(), 'Some dude')
02692             self.assertEqual(t[0].bums.outfielders.rightField.value(), 'Some dude')
02693             self.assertEqual(t[0].allstars.thirdBase.value(), 'Chuck Norris')
02694             self.assertEqual(t[0].allstars.outfielders.rightField.value(), 'Babe Ruth')
02695 
02696             _allUsingLabels = set()
02697 
02698             input= """process RECO = {
02699    es_prefer label = FooESProd {
02700    }
02701    es_module label = FooESProd {
02702    }
02703 }"""
02704 
02705             t=process.parseString(input)
02706             self.assertEqual(t[0].label.type_(),"FooESProd")
02707             print t[0].dumpConfig()
02708             #self.checkRepr(t[0].dumpConfig(), input)
02709             _allUsingLabels = set()
02710             t=process.parseString(
02711 """
02712 process RECO = {
02713    es_prefer = FooESProd {
02714    }
02715    es_module = FooESProd {
02716    }
02717 }""")
02718             self.assertEqual(t[0].FooESProd.type_(),"FooESProd")
02719             print t[0].dumpConfig()
02720 
02721             
        def testPath(self):

def parseConfig::TestModuleCommand::testReplace (   self  ) 

Definition at line 2821 of file parseConfig.py.

02821                              :
02822             process = cms.Process("Test")
02823             process.a = cms.EDProducer('FooProd', b=cms.uint32(2))
02824             t=replace.parseString('replace a.b = 1')
02825             self.assertEqual(t[0][0],'a.b')
02826             self.assertEqual(t[0][1].path, ['a','b'])
02827             self.assertEqual(t[0][1].value,'1')
02828             self.checkRepr(t[0][1], "a.b = 1")
02829             t[0][1].do(process)
02830             self.assertEqual(process.a.b.value(),1)
02831             #print t
02832             process = cms.Process("Test")
02833             process.a = cms.EDProducer('FooProd', b=cms.PSet(c=cms.double(2)))
02834             t=replace.parseString('replace a.b.c = 1')
02835             self.assertEqual(t[0][0],'a.b.c')
02836             self.assertEqual(t[0][1].path, ['a','b','c'])
02837             self.assertEqual(t[0][1].value,'1')
02838             self.checkRepr(t[0][1], "a.b.c = 1")
02839             self.assertEqual(type(process.a.b),cms.PSet)
02840             t[0][1].do(process)
02841             self.assertEqual(type(process.a.b),cms.PSet)
02842             self.assertEqual(process.a.b.c.value(),1.0)
02843             #print t
02844             t=replace.parseString('replace a.b.c = 1.359')
02845             self.assertEqual(t[0][0],'a.b.c')
02846             self.assertEqual(t[0][1].path, ['a','b','c'])
02847             self.assertEqual(t[0][1].value,'1.359')
02848             self.checkRepr(t[0][1], "a.b.c = 1.359")
02849             t[0][1].do(process)
02850             self.assertEqual(type(process.a.b),cms.PSet)
02851             self.assertEqual(process.a.b.c.value(),1.359)
02852             #print t
02853             process = cms.Process("Test")
02854             process.a = cms.EDProducer('FooProd', b=cms.untracked.PSet())
02855             self.assertEqual(process.a.b.isTracked(),False)
02856             t=replace.parseString('replace a.b = {untracked string threshold ="DEBUG"}')
02857             t[0][1].do(process)
02858             self.assertEqual(type(process.a.b),cms.PSet)
02859             self.assertEqual(process.a.b.isTracked(),False)
02860             self.assertEqual(process.a.b.threshold.value(),"DEBUG")
02861             self.assertEqual(process.a.b.threshold.isTracked(),False)
02862             #print t
02863             process = cms.Process("Test")
02864             process.a = cms.EDProducer('FooProd', b=cms.PSet(c=cms.untracked.double(2)))
02865             self.assertEqual(process.a.b.c.value(),2.0)
02866             self.assertEqual(process.a.b.c.isTracked(),False)
02867             t=replace.parseString('replace a.b.c = 1')
02868             self.checkRepr(t[0][1], "a.b.c = 1")
02869             t[0][1].do(process)
02870             self.assertEqual(type(process.a.b),cms.PSet)
02871             self.assertEqual(process.a.b.c.value(),1.0)
02872             self.assertEqual(process.a.b.c.isTracked(),False)
02873 
02874             t=replace.parseString('replace a.b = "all that"')
02875             self.assertEqual(t[0][0],'a.b')
02876             self.assertEqual(t[0][1].path, ['a','b'])
02877             self.assertEqual(t[0][1].value,'all that')
02878             process = cms.Process("Test")
02879             process.a = cms.EDProducer('FooProd', b=cms.string('thing'))
02880             self.checkRepr(t[0][1], "a.b = \'all that\'")
02881             t[0][1].do(process)
02882             self.assertEqual(process.a.b.value(),'all that')            #print t
02883 
02884             t=replace.parseString('replace a.b = {}')
02885             self.assertEqual(t[0][0],'a.b')
02886             self.assertEqual(t[0][1].path, ['a','b'])
02887             self.assertEqual(t[0][1].value,[])
02888             self.checkRepr(t[0][1], "a.b = []")
02889 
02890             #print t
02891             t=replace.parseString('replace a.b = {1, 3, 6}')
02892             self.assertEqual(t[0][0],'a.b')
02893             self.assertEqual(t[0][1].path, ['a','b'])
02894             self.assertEqual(t[0][1].value,['1','3','6'])
02895             process = cms.Process("Test")
02896             process.a = cms.EDProducer('FooProd', b=cms.vint32())
02897             self.checkRepr(t[0][1], "a.b = [1, 3, 6]")
02898 
02899             t[0][1].do(process)
02900             self.assertEqual(len(process.a.b),3)
02901             #print t
02902             t=replace.parseString('replace a.b = {"all", "that"}')
02903             self.assertEqual(t[0][0],'a.b')
02904             self.assertEqual(t[0][1].path, ['a','b'])
02905             self.assertEqual(t[0][1].value,['all','that'])
02906             self.checkRepr(t[0][1], "a.b = [\'all\', \'that\']")
02907             t=replace.parseString('replace a.b = {"all that"}')
02908             self.assertEqual(t[0][0],'a.b')
02909             self.assertEqual(t[0][1].path, ['a','b'])
02910             self.assertEqual(t[0][1].value,['all that'])
02911 
02912             t=replace.parseString('replace a.b = { int32 i = 1 }')
02913             self.assertEqual(t[0][0],'a.b')
02914             self.assertEqual(t[0][1].path, ['a','b'])
02915             self.assertEqual(type(t[0][1].value),cms.PSet)
02916             self.assertEqual(t[0][1].value.i.value(), 1) 
02917             self.checkRepr(t[0][1], "a.b = cms.PSet(i=cms.int32(1))")
02918             process = cms.Process("Test")
02919             process.a = cms.EDProducer('FooProd', b=cms.PSet(j=cms.uint32(5)))
02920             t[0][1].do(process)
02921             self.assertEqual(process.a.b.i.value(),1)
02922             self.assertEqual(getattr(process.a.b,'j',None),None)
02923             #print t
02924 #            print t[0][1].value
02925             t=replace.parseString('replace a.b = { { int32 i = 1 } }')
02926             self.assertEqual(t[0][0],'a.b')
02927             self.assertEqual(t[0][1].path, ['a','b'])
02928             self.assertEqual(type(t[0][1].value),cms.VPSet)
02929             self.assertEqual(t[0][1].value[0].i.value(), 1) 
02930             self.checkRepr(t[0][1], "a.b = cms.VPSet(cms.PSet(i=cms.int32(1)))")
02931             process = cms.Process("Test")
02932             process.a = cms.EDProducer('FooProd', b=cms.VPSet((cms.PSet(j=cms.uint32(5)))))
02933             t[0][1].do(process)
02934             self.assertEqual(process.a.b[0].i.value(),1)
02935             
02936             process = cms.Process("Test")
02937             process.a = cms.EDProducer('FooProd', b=cms.vuint32(2))
02938             t=replace.parseString('replace a.b += 1')
02939             self.assertEqual(t[0][0],'a.b')
02940             self.assertEqual(t[0][1].path, ['a','b'])
02941             self.assertEqual(t[0][1].value,'1')
02942             self.checkRepr(t[0][1], "a.b.append(1)")
02943             t[0][1].do(process)
02944             self.assertEqual(list(process.a.b),[2,1])
02945 
02946             process = cms.Process("Test")
02947             process.a = cms.EDProducer('FooProd', b=cms.vuint32(2))
02948             t=replace.parseString('replace a.b += {1,3}')
02949             self.assertEqual(t[0][0],'a.b')
02950             self.assertEqual(t[0][1].path, ['a','b'])
02951             self.assertEqual(t[0][1].value,['1','3'])
02952             self.checkRepr(t[0][1], "a.b.extend([1,3])")
02953             t[0][1].do(process)
02954             self.assertEqual(list(process.a.b),[2,1,3])
02955             
02956             t=replace.parseString('replace a.b += "all that"')
02957             self.assertEqual(t[0][0],'a.b')
02958             self.assertEqual(t[0][1].path, ['a','b'])
02959             self.assertEqual(t[0][1].value,'all that')
02960             self.checkRepr(t[0][1], "a.b.append(\'all that\')")
02961             process = cms.Process("Test")
02962             process.a = cms.EDProducer('FooProd', b=cms.vstring('thing'))
02963             t[0][1].do(process)
02964             self.assertEqual(list(process.a.b),['thing','all that'])
02965 
02966             t=replace.parseString('replace a.b += {"all that","and more"}')
02967             self.assertEqual(t[0][0],'a.b')
02968             self.assertEqual(t[0][1].path, ['a','b'])
02969             self.assertEqual(t[0][1].value,['all that','and more'])
02970             self.checkRepr(t[0][1], "a.b.extend([\'all that\', \'and more\'])")
02971             process = cms.Process("Test")
02972             process.a = cms.EDProducer('FooProd', b=cms.vstring('thing'))
02973             t[0][1].do(process)
02974             self.assertEqual(list(process.a.b),['thing','all that','and more'])
02975 
02976             t=replace.parseString('replace a.b += { int32 i = 1 }')
02977             self.assertEqual(t[0][0],'a.b')
02978             self.assertEqual(t[0][1].path, ['a','b'])
02979             self.assertEqual(type(t[0][1].value),cms.PSet)
02980             self.assertEqual(t[0][1].value.i.value(), 1) 
02981             self.checkRepr(t[0][1], "a.b.append(cms.PSet(i=cms.int32(1)))")
02982             process = cms.Process("Test")
02983             process.a = cms.EDProducer('FooProd',
02984                                        b=cms.VPSet((cms.PSet(j=cms.uint32(5)))))
02985             t[0][1].do(process)
02986             self.assertEqual(len(process.a.b),2)
02987             self.assertEqual(process.a.b[1].i.value(),1)
02988             
02989             t=replace.parseString('replace a.b += { { int32 i = 1 } }')
02990             self.assertEqual(t[0][0],'a.b')
02991             self.assertEqual(t[0][1].path, ['a','b'])
02992             self.assertEqual(type(t[0][1].value),cms.VPSet)
02993             self.assertEqual(t[0][1].value[0].i.value(), 1) 
02994             self.checkRepr(t[0][1], "a.b.extend(cms.VPSet(cms.PSet(i=cms.int32(1))))")
02995             process = cms.Process("Test")
02996             process.a = cms.EDProducer('FooProd', b=cms.VPSet((cms.PSet(j=cms.uint32(5)))))
02997             t[0][1].do(process)
02998             self.assertEqual(len(process.a.b),2)
02999             self.assertEqual(process.a.b[1].i.value(),1)
03000 
03001             process = cms.Process("Test")
03002             process.a = cms.EDProducer('FooProd', b=cms.vuint32(2), c=cms.vuint32(1))
03003             t=replace.parseString('replace a.b += a.c')
03004             self.assertEqual(t[0][0],'a.b')
03005             self.assertEqual(t[0][1].path, ['a','b'])
03006             self.assertEqual(t[0][1].value,'a.c')
03007             self.checkRepr(t[0][1], "a.b.append(process.a.c)")
03008             t[0][1].do(process)
03009             self.assertEqual(list(process.a.b),[2,1])
03010             
03011             process = cms.Process("Test")
03012             process.a = cms.EDProducer('FooProd', b=cms.vuint32(2), c=cms.uint32(1))
03013             t=replace.parseString('replace a.b += a.c')
03014             self.assertEqual(t[0][0],'a.b')
03015             self.assertEqual(t[0][1].path, ['a','b'])
03016             self.assertEqual(t[0][1].value,'a.c')
03017             self.checkRepr(t[0][1], "a.b.append(process.a.c)")
03018             t[0][1].do(process)
03019             self.assertEqual(list(process.a.b),[2,1])
03020 
03021             process = cms.Process("Test")
03022             foobar = 'cms.InputTag("foobar","","")'
03023             fooRepr = 'foobar:'
03024             process.a = cms.EDProducer('FooProd', b=cms.InputTag("bar",""))
03025             t = replace.parseString('replace a.b = foobar:')
03026             self.checkRepr(t[0][1], "a.b ='foobar:'")
03027             t[0][1].do(process)
03028             self.assertEqual(process.a.b.configValue(),'foobar')                        
03029 
03030             process = cms.Process("Test")
03031             process.a = cms.EDProducer('FooProd', b=cms.VInputTag((cms.InputTag("bar"))))
03032             t = replace.parseString('replace a.b = {foobar:}')
03033             self.checkRepr(t[0][1], "a.b = ['foobar:']")
03034             t[0][1].do(process)
03035             #self.assertEqual(process.a.b.configValue('',''),'{\nfoobar::\n}\n')                        
03036             self.assertEqual(list(process.a.b),[cms.InputTag('foobar')])                        
03037 
03038             process = cms.Process("Test")
03039             process.a = cms.EDProducer('FooProd', b=cms.VInputTag((cms.InputTag("bar"))))
03040             t = replace.parseString('replace a.b += {foobar:}')
03041             self.checkRepr(t[0][1], "a.b.extend(['foobar:'])")
03042             t[0][1].do(process)
03043             #self.assertEqual(process.a.b.configValue('',''),'{\nfoobar::\n}\n')                        
03044             self.assertEqual(list(process.a.b),[cms.InputTag("bar"),cms.InputTag('foobar')])                        
03045 
03046             process = cms.Process("Test")
03047             process.a = cms.EDProducer("FooProd", b = cms.uint32(1))
03048             t = replace.parseString('replace a.c = 2')
03049             self.assertRaises(pp.ParseBaseException,t[0][1].do,(process))
03050 
03051     unittest.main()
#try:

def parseConfig::TestModuleCommand::testUsing (   self  ) 

Definition at line 1891 of file parseConfig.py.

01891                            :
01892             #self.assertRaises(pp.ParseFatalException,onlyParameters.parseString,("PSet blah = {using ick}"),**dict())
01893             t=onlyParameters.parseString("PSet blah = {using ick}")
01894             d=dict(iter(t))
01895             self.assertEqual(type(d['blah']),cms.PSet)
01896             self.assertEqual(d['blah'].using_ick.value(), 'ick')
        def testInclude(self):

def parseConfig::TestModuleCommand::testValidation (   self  ) 

Definition at line 1866 of file parseConfig.py.

01866                                 :
01867             self.assertRaises(pp.ParseFatalException,onlyParameters.parseString,("""
01868 PSet blah = {
01869   int32 ick = 1
01870   int32 ick = 2
01871 }"""),**dict())
01872             global _fileFactory
01873             oldFactory = _fileFactory
01874             try:
01875                 _fileFactory = TestFactory('blah.cfi', 'int32 blah = 1')
01876                 t=onlyParameters.parseString("""
01877 PSet blah = {
01878   include "blah.cfi"
01879   include "blah.cfi"
01880 }""")
01881                 d = dict(iter(t))
01882                 self.assertEqual(getattr(d['blah'],"blah").value(), 1)
01883                 _fileFactory = TestFactory('blah.cfi', 'int32 blah = 1')
01884                 self.assertRaises(pp.ParseFatalException,onlyParameters.parseString,("""
01885 PSet blah = {
01886   include "blah.cfi"
01887    int32 blah = 2
01888 }"""),**dict())
01889             finally:
01890                 _fileFactory=oldFactory
        def testUsing(self):


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:49:28 2009 for CMSSW by  doxygen 1.5.4