Beispiel #1
0
 def testService(self):
     empty = Service("Empty")
     withParam = Service("Parameterized",
                         foo=untracked(int32(1)),
                         bar=untracked(string("it")))
     self.assertEqual(withParam.foo.value(), 1)
     self.assertEqual(withParam.bar.value(), "it")
     self.assertEqual(empty.dumpPython(), "cms.Service(\"Empty\")\n")
     self.assertEqual(
         withParam.dumpPython(),
         "cms.Service(\"Parameterized\",\n    bar = cms.untracked.string(\'it\'),\n    foo = cms.untracked.int32(1)\n)\n"
     )
Beispiel #2
0
        def testSwithProducerWithAlias(self):
            # Constructor
            sp = SwitchProducerTest(test1=EDProducer("Foo"), test2=EDAlias())
            self.assertEqual(sp.test1.type_(), "Foo")
            self.assertTrue(isinstance(sp.test2, EDAlias))

            # Modifications
            from Types import int32, string, PSet, VPSet
            sp = SwitchProducerTest(
                test1=EDProducer("Foo"),
                test2=EDAlias(foo=VPSet(PSet(type=string("Foo2")))))

            # Simple clone
            cl = sp.clone()
            self.assertTrue(hasattr(cl.test2, "foo"))
            # Modify clone
            cl.test2.foo[0].type = "Foo3"
            self.assertEqual(cl.test2.foo[0].type, "Foo3")
            # Modify values with a dict
            cl = sp.clone(test2=dict(foo={0: dict(type="Foo4")}))
            self.assertEqual(cl.test2.foo[0].type, "Foo4")
            # Replace or add EDAlias
            cl = sp.clone(test1=EDAlias(foo=VPSet(PSet(type=string("Foo5")))),
                          test3=EDAlias(foo=VPSet(PSet(type=string("Foo6")))))
            self.assertEqual(cl.test1.foo[0].type, "Foo5")
            self.assertEqual(cl.test3.foo[0].type, "Foo6")
            # Modify clone
            cl.test1 = EDProducer("Xyzzy")
            self.assertEqual(cl.test1.type_(), "Xyzzy")
            cl.test1 = EDAlias(foo=VPSet(PSet(type=string("Foo7"))))
            self.assertEqual(cl.test1.foo[0].type, "Foo7")

            # Dump
            from Types import int32, string, PSet, VPSet
            sp = SwitchProducerTest(
                test1=EDProducer("Foo"),
                test2=EDAlias(foo=VPSet(PSet(type=string("Foo2")))))

            self.assertEqual(
                sp.dumpPython(), """SwitchProducerTest(
    test1 = cms.EDProducer("Foo"),
    test2 = cms.EDAlias(
        foo = cms.VPSet(cms.PSet(
            type = cms.string('Foo2')
        ))
)
)
""")

            # Pickle
            import pickle
            sp = SwitchProducerPickleable(cpu=EDAlias(
                foo=VPSet(PSet(type=string("Foo2")))))
            pkl = pickle.dumps(sp)
            unpkl = pickle.loads(pkl)
            self.assertEqual(sp.cpu.foo[0].type, "Foo2")
Beispiel #3
0
 def testEDAnalyzer(self):
     empty = EDAnalyzer("Empty")
     withParam = EDAnalyzer("Parameterized",
                            foo=untracked(int32(1)),
                            bar=untracked(string("it")))
     self.assertEqual(withParam.foo.value(), 1)
     self.assertEqual(withParam.bar.value(), "it")
     aCopy = withParam.copy()
     self.assertEqual(aCopy.foo.value(), 1)
     self.assertEqual(aCopy.bar.value(), "it")
     withType = EDAnalyzer("Test", type=int32(1))
     self.assertEqual(withType.type.value(), 1)
     block = PSet(i=int32(9))
     m = EDProducer("DumbProducer", block, j=int32(10))
     self.assertEqual(9, m.i.value())
     self.assertEqual(10, m.j.value())
Beispiel #4
0
        def testSwithProducerWithAlias(self):
            # Constructor
            sp = SwitchProducerTest(test1 = EDProducer("Foo"), test2 = EDAlias())
            self.assertEqual(sp.test1.type_(), "Foo")
            self.assertTrue(isinstance(sp.test2, EDAlias))

            # Modifications
            from Types import int32, string, PSet, VPSet
            sp = SwitchProducerTest(test1 = EDProducer("Foo"),
                                    test2 = EDAlias(foo = VPSet(PSet(type = string("Foo2")))))

            # Simple clone
            cl = sp.clone()
            self.assertTrue(hasattr(cl.test2, "foo"))
            # Modify clone
            cl.test2.foo[0].type = "Foo3"
            self.assertEqual(cl.test2.foo[0].type, "Foo3")
            # Modify values with a dict
            cl = sp.clone(test2 = dict(foo = {0: dict(type = "Foo4")}))
            self.assertEqual(cl.test2.foo[0].type, "Foo4")
            # Replace or add EDAlias
            cl = sp.clone(test1 = EDAlias(foo = VPSet(PSet(type = string("Foo5")))),
                          test3 = EDAlias(foo = VPSet(PSet(type = string("Foo6")))))
            self.assertEqual(cl.test1.foo[0].type, "Foo5")
            self.assertEqual(cl.test3.foo[0].type, "Foo6")
            # Modify clone
            cl.test1 = EDProducer("Xyzzy")
            self.assertEqual(cl.test1.type_(), "Xyzzy")
            cl.test1 = EDAlias(foo = VPSet(PSet(type = string("Foo7"))))
            self.assertEqual(cl.test1.foo[0].type, "Foo7")


            # Dump
            from Types import int32, string, PSet, VPSet
            sp = SwitchProducerTest(test1 = EDProducer("Foo"),
                                    test2 = EDAlias(foo = VPSet(PSet(type = string("Foo2")))))

            self.assertEqual(sp.dumpPython(),
"""SwitchProducerTest(
    test1 = cms.EDProducer("Foo"),
    test2 = cms.EDAlias(
        foo = cms.VPSet(cms.PSet(
            type = cms.string('Foo2')
        ))
)
)
""")

            # Pickle
            import pickle
            sp = SwitchProducerPickleable(cpu = EDAlias(foo = VPSet(PSet(type = string("Foo2")))))
            pkl = pickle.dumps(sp)
            unpkl = pickle.loads(pkl)
            self.assertEqual(sp.cpu.foo[0].type, "Foo2")
Beispiel #5
0
        def testSwitchProducer(self):
            # Constructor
            sp = SwitchProducerTest(test1 = EDProducer("Foo"), test2 = EDProducer("Bar"))
            self.assertEqual(sp.test1.type_(), "Foo")
            self.assertEqual(sp.test2.type_(), "Bar")
            self.assertRaises(ValueError, lambda: SwitchProducerTest(nonexistent = EDProducer("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = EDAnalyzer("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = EDFilter("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = Source("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = OutputModule("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = Looper("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = EDAlias()))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = Service("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = ESSource("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = ESProducer("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = ESPrefer("Foo")))
            self.assertRaises(TypeError, lambda: SwitchProducerTest(test1 = SwitchProducerTest(test1 = EDProducer("Foo"))))

            # Case decision
            sp = SwitchProducerTest(test1 = EDProducer("Foo"), test2 = EDProducer("Bar"))
            self.assertEqual(sp._getProducer().type_(), "Bar")
            sp = SwitchProducerTest1Dis(test1 = EDProducer("Foo"), test2 = EDProducer("Bar"))
            self.assertEqual(sp._getProducer().type_(), "Bar")
            sp = SwitchProducerTest2Dis(test1 = EDProducer("Foo"), test2 = EDProducer("Bar"))
            self.assertEqual(sp._getProducer().type_(), "Foo")
            sp = SwitchProducerTest(test1 = EDProducer("Bar"))
            self.assertEqual(sp._getProducer().type_(), "Bar")
            sp = SwitchProducerTest1Dis(test1 = EDProducer("Bar"))
            self.assertRaises(RuntimeError, sp._getProducer)

            # Mofications
            from Types import int32, string, PSet
            sp = SwitchProducerTest(test1 = EDProducer("Foo",
                                                       a = int32(1),
                                                       b = PSet(c = int32(2))),
                                    test2 = EDProducer("Bar",
                                                       aa = int32(11),
                                                       bb = PSet(cc = int32(12))))
            # Simple clone
            cl = sp.clone()
            self.assertEqual(cl.test1.type_(), "Foo")
            self.assertEqual(cl.test1.a.value(), 1)
            self.assertEqual(cl.test1.b.c.value(), 2)
            self.assertEqual(cl.test2.type_(), "Bar")
            self.assertEqual(cl.test2.aa.value(), 11)
            self.assertEqual(cl.test2.bb.cc.value(), 12)
            # Modify clone
            cl.test1.a = 3
            self.assertEqual(cl.test1.a.value(), 3)
            cl.test1 = EDProducer("Fred")
            self.assertEqual(cl.test1.type_(), "Fred")
            def _assignEDAnalyzer():
                cl.test1 = EDAnalyzer("Foo")
            self.assertRaises(TypeError, _assignEDAnalyzer)
            def _assignSwitchProducer():
                cl.test1 = SwitchProducerTest(test1 = SwitchProducerTest(test1 = EDProducer("Foo")))
            self.assertRaises(TypeError, _assignSwitchProducer)
            # Modify values with a dict
            cl = sp.clone(test1 = dict(a = 4, b = dict(c = None)),
                          test2 = dict(aa = 15, bb = dict(cc = 45, dd = string("foo"))))
            self.assertEqual(cl.test1.a.value(), 4)
            self.assertEqual(cl.test1.b.hasParameter("c"), False)
            self.assertEqual(cl.test2.aa.value(), 15)
            self.assertEqual(cl.test2.bb.cc.value(), 45)
            self.assertEqual(cl.test2.bb.dd.value(), "foo")
            # Replace/add/remove EDProducers
            cl = sp.clone(test1 = EDProducer("Fred", x = int32(42)),
                          test3 = EDProducer("Wilma", y = int32(24)),
                          test2 = None)
            self.assertEqual(cl.test1.type_(), "Fred")
            self.assertEqual(cl.test1.x.value(), 42)
            self.assertEqual(cl.test3.type_(), "Wilma")
            self.assertEqual(cl.test3.y.value(), 24)
            self.assertEqual(hasattr(cl, "test2"), False)
            self.assertRaises(TypeError, lambda: sp.clone(test1 = EDAnalyzer("Foo")))
            self.assertRaises(TypeError, lambda: sp.clone(test1 = SwitchProducerTest(test1 = SwitchProducerTest(test1 = EDProducer("Foo")))))

            # Dump
            sp = SwitchProducerTest(test2 = EDProducer("Foo",
                                                       a = int32(1),
                                                       b = PSet(c = int32(2))),
                                    test1 = EDProducer("Bar",
                                                       aa = int32(11),
                                                       bb = PSet(cc = int32(12))))
            self.assertEqual(sp.dumpPython(),
"""SwitchProducerTest(
    test1 = cms.EDProducer("Bar",
        aa = cms.int32(11),
        bb = cms.PSet(
            cc = cms.int32(12)
        )
    ),
    test2 = cms.EDProducer("Foo",
        a = cms.int32(1),
        b = cms.PSet(
            c = cms.int32(2)
        )
    )
)
""")
            # Pickle
            import pickle
            sp = SwitchProducerPickleable(cpu = EDProducer("Foo"))
            pkl = pickle.dumps(sp)
            unpkl = pickle.loads(pkl)
            self.assertEqual(unpkl.cpu.type_(), "Foo")
Beispiel #6
0
 def testService(self):
     empty = Service("Empty")
     withParam = Service("Parameterized",foo=untracked(int32(1)), bar = untracked(string("it")))
     self.assertEqual(withParam.foo.value(), 1)
     self.assertEqual(withParam.bar.value(), "it")
     self.assertEqual(empty.dumpPython(), "cms.Service(\"Empty\")\n")
     self.assertEqual(withParam.dumpPython(), "cms.Service(\"Parameterized\",\n    bar = cms.untracked.string(\'it\'),\n    foo = cms.untracked.int32(1)\n)\n")
Beispiel #7
0
 def testEDAnalyzer(self):
     empty = EDAnalyzer("Empty")
     withParam = EDAnalyzer("Parameterized",foo=untracked(int32(1)), bar = untracked(string("it")))
     self.assertEqual(withParam.foo.value(), 1)
     self.assertEqual(withParam.bar.value(), "it")
     aCopy = withParam.copy()
     self.assertEqual(aCopy.foo.value(), 1)
     self.assertEqual(aCopy.bar.value(), "it")
     withType = EDAnalyzer("Test",type = int32(1))
     self.assertEqual(withType.type.value(),1)
     block = PSet(i = int32(9))
     m = EDProducer("DumbProducer", block, j = int32(10))
     self.assertEqual(9, m.i.value())
     self.assertEqual(10, m.j.value())