2036 m1.toModify(p.a,_mod_fred)
2037 self.assertEqual(p.a.fred.value(),2)
2039 m1.toModify(p.b, wilma = 2)
2040 self.assertEqual(p.b.wilma.value(),2)
2041 self.assert_(p.isUsingModifier(m1))
2046 m1.toModify(p.a,_mod_fred)
2048 m1.toModify(p.b, wilma = 2)
2049 self.assertEqual(p.a.fred.value(),1)
2050 self.assertEqual(p.b.wilma.value(),1)
2051 self.assertEqual(p.isUsingModifier(m1),
False)
2056 m1.toModify(p.a, fred =
int32(2))
2057 p.b = p.a.clone(wilma =
int32(3))
2058 self.assertEqual(p.a.fred.value(),2)
2059 self.assertEqual(p.a.wilma.value(),1)
2060 self.assertEqual(p.b.fred.value(),2)
2061 self.assertEqual(p.b.wilma.value(),3)
2066 m1.toModify(p.a, fred =
None)
2067 self.assertEqual(hasattr(p.a,
"fred"),
False)
2068 self.assertEqual(p.a.wilma.value(),1)
2073 m1.toModify(p.a, wilma =
int32(2))
2074 self.assertEqual(p.a.fred.value(), 1)
2075 self.assertEqual(p.a.wilma.value(),2)
2080 m1.toModify(p.a, flintstones =
dict(fred =
int32(2)))
2081 self.assertEqual(p.a.flintstones.fred.value(),2)
2082 self.assertEqual(p.a.flintstones.wilma.value(),1)
2087 self.assertRaises(KeyError,
lambda: m1.toModify(p.a, flintstones =
dict(imnothere =
dict(wilma=2))))
2088 self.assertRaises(KeyError,
lambda: m1.toModify(p.a, foo = 1))
2093 m1.toModify(p.a, flintstones = {1:
dict(wilma =
int32(2))})
2094 self.assertEqual(p.a.flintstones[0].fred.value(),1)
2095 self.assertEqual(p.a.flintstones[1].wilma.value(),2)
2100 m1.toModify(p.a, fred = {1:7})
2101 self.assertEqual(p.a.fred[0],1)
2102 self.assertEqual(p.a.fred[1],7)
2103 self.assertEqual(p.a.fred[2],3)
2109 try: m1.toModify(p.a, fred = {5:7})
2110 except IndexError, e: raised =
True
2111 self.assertEqual(raised,
True)
2117 try: m1.toModify(p.a, flintstones =
dict(bogus =
int32(37)))
2118 except TypeError, e: raised =
True
2119 self.assertEqual(raised,
True)
2123 class ProcModifierMod(object):
2124 def __init__(self,modifier,func):
2125 self.
proc_mod_ = modifier.makeProcessModifier(func)
2126 class DummyMod(object):
2129 testMod = DummyMod()
2131 self.assert_(hasattr(p,
"a"))
2134 testProcMod = ProcModifierMod(m1,_rem_a)
2136 p.extend(testProcMod)
2137 self.assert_(
not hasattr(p,
"a"))
2142 self.assert_(p.isUsingModifier(m1))
2143 self.assert_(p.isUsingModifier(mc))
2144 testMod = DummyMod()
2146 m1.toModify(p.b, fred =
int32(3))
2148 testProcMod = ProcModifierMod(m1,_rem_a)
2149 p.extend(testProcMod)
2150 self.assert_(
not hasattr(p,
"a"))
2151 self.assertEqual(p.b.fred.value(),3)
2157 (m1 & m2).toModify(p.a, fred =
int32(2))
2158 self.assertEqual(p.a.fred, 1)
2163 (m1 & m2).toModify(p.a, fred =
int32(2))
2164 self.assertEqual(p.a.fred, 2)
2170 (m1 & m2 & m3).toModify(p.a, fred =
int32(2))
2171 self.assertEqual(p.a.fred, 2)
2179 m1.toReplaceWith(p.s,
Sequence(p.a+p.b))
2180 self.assertEqual(p.a.wilma.value(),3)
2181 self.assertEqual(p.a.type_(),
"YourAnalyzer")
2182 self.assertEqual(hasattr(p,
"fred"),
False)
2183 self.assertEqual(p.s.dumpPython(
""),
"cms.Sequence(process.a+process.b)\n")
2189 self.assertEqual(p.a.type_(),
"MyAnalyzer")
unittest.main()