def testGetattrWithReturnValueSpecified(self): """Getattr with return value specified""" c = Controller() x = c.mock(KlassBeingMocked) x.g c.setReturn(8) c.replay() self.failUnless(x.g == 8)
def testIterDoesNotAllowRecordingAfterAnException(self): """Ensure that __iter__ records and replays exceptions""" c = Controller() x = c.mock() x.__iter__() c.setReturn(1) c.setException(Exception) self.failUnlessRaises(Exception, c.setReturn, 2) self.failUnlessRaises(Exception, c.setException, Exception)
def testIter(self): """Ensure that __iter__ records and replays values""" c = Controller() x = c.mock() x.__iter__() c.setReturn(1) c.setReturn(2) c.replay() self.assertTrue([k for k in x] == [1, 2])
def testLen(self): """Ensure that __len__ works""" c = Controller() x = c.mock(KlassBeingMocked) k = len(x) c.setReturn(5) c.replay() self.failUnless(len(x) == 5) c.verify()
def testGetItem(self): """Ensure that __getitem__ works""" c = Controller() x = c.mock(KlassBeingMocked) x.g[5] c.setReturn(6) c.replay() self.failUnless(x.g[5] == 6) c.verify()
def testExplicitGeneratorUsage(self): """Check operation of explicit generators using discrete settings""" c = Controller() x = c.mock() x.g(8, 9) c.generator() c.setReturn(10) c.setReturn(11) c.replay() self.failUnless([k for k in x.g(8, 9)] == [10, 11])
def testEnsureThatContainsWorks(self): """Verify that __contains__ is implemented""" c = Controller() x = c.mock() 1 in x c.setReturn(True) 2 in x c.setReturn(False) c.replay() self.failUnless(1 in x) self.failIf(2 in x)
def testIterWithException(self): """Ensure that __iter__ records and replays exceptions""" c = Controller() x = c.mock() x.__iter__() c.setReturn(1) c.setException(Exception) c.replay() i = x.__iter__() self.failUnless(i.next() == 1) self.failUnlessRaises(Exception, i.next)
def test__foo__MethodsWorkWithSyntacticalFormAndMethodCallInterchangably(self): """Ensure that __foo__ methods work with their special syntax forms interchangaly""" c = Controller() x = c.mock(KlassBeingMocked) x.g.__getitem__(5) c.setReturn(6) x.h.__getitem__(7) c.setReturn(8) c.replay() self.failUnless(x.g[5] == 6) self.failUnless(x.h.__getitem__(7) == 8)
def testFunctionCalReturnValues(self): """Ensure function call return values get set""" c = Controller() x = c.mock(KlassBeingMocked) x.g.h(3, 4) c.setReturn(5) x.g.h(6, 7) c.setReturn(8) c.replay() self.failUnless(x.g.h(3, 4) == 5) self.failUnless(x.g.h(6, 7) == 8)
def testExplicitGeneratorExecptionUsage(self): """Check exception raising with explicit generators using discrete settings""" c = Controller() x = c.mock() x.g(8, 9) c.generator() c.setReturn(10) c.setException(Exception("bogus")) c.replay() g = x.g(8, 9) self.failUnless(g.next() == 10) self.failUnlessRaises(Exception, g.next)
def testGettingFunctionOnceAndCallingMultipleTimes(self): """Get a function once and call it multiple times""" c = Controller() x = c.mock(KlassBeingMocked) h = x.g.h h(3, 4) c.setReturn(5) h(6, 7, 8) c.setReturn(9) c.replay() h = x.g.h self.failUnless(h(3, 4) == 5) self.failUnless(h(6, 7, 8) == 9)
def testOverridenPropertiesCheckOrdering(self): """Verify overriding fields detects ordering issues""" c = Controller() x = KlassBeingMocked() x.f = 38 c.overrideProperty(x, 'f') m = x.f c.setReturn(5) x.f = 74 c.replay() self.failUnlessRaises(Exception, c.verify) try: x.f = 74 self.fail() except PlaybackFailure, e: pass
def testOverrideFieldWithSetAndGetAndDel(self): """Verify overriding fields and performing operations on them""" c = Controller() x = KlassBeingMocked() x.f = 38 c.overrideProperty(x, 'f') m = x.f c.setReturn(5) x.f = 74 del x.f c.replay() self.failUnlessRaises(Exception, c.verify) self.failUnless(x.f == 5) x.f = 74 del x.f c.verify() c.restore() self.failUnless(x.f == 38)