Beispiel #1
0
	def testExplicitGeneratorConvenienceFunctionUsage(self):
		"""Check normal operation with explicit generators using  """
		c = Controller()
		x = c.mock()
		c.generator(x.g(8, 9), [10, 11])
		c.replay()
		self.failUnless([k for k in x.g(8, 9)] == [10, 11])
Beispiel #2
0
	def testExceptionRaisedByFunctions(self):
		"""Ensure that function calls play back exceptions"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g.h(3, 4)
		c.setException(Exception)
		c.replay()
		self.failUnlessRaises(Exception, x.g.h, 3, 4)
Beispiel #3
0
	def testExpectAndReturn(self):
		"""Check expect and return"""
		c = Controller()
		x = c.mock()
		c.expectAndReturn(x.g(8, 9), 5)
		c.replay()
		self.failUnless(x.g(8, 9) == 5)
		c.verify()
Beispiel #4
0
	def testUnusedAttributeAssignmentCanBeVerified(self):
	    """Ensure that unused calls cause verification failure"""
	    
	    c = Controller()
	    x = c.mock(KlassBeingMocked)
	    x.w = 5
	    c.replay()
	    self.failUnlessRaises(RecordedCallsWereNotReplayedCorrectly, c.verify)
Beispiel #5
0
	def testPlayModeAndSwitches(self):
	    """Verify that the replay switch works"""
	    c = Controller()
	    self.failUnless(c.isRecording)
	    self.failIf(c.isPlayingBack)
	    c.replay()
	    self.failIf(c.isRecording)
	    self.failUnless(c.isPlayingBack)
Beispiel #6
0
	def testFunctionCallWithNoReturnValueSpecified(self):
		"""Function call with no return value specified"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g(3, 4)
		c.replay()
		x.g(3, 4)
		c.verify()
Beispiel #7
0
	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)
Beispiel #8
0
	def testSetItem(self):
		"""Ensure that __setitem__ works"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g[6] = 7
		c.replay()
		x.g[6] = 7
		c.verify()
Beispiel #9
0
	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()
Beispiel #10
0
	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()
Beispiel #11
0
	def testExplicitGeneratorConvenienceFunctionExceptionUsage(self):
		"""Check explicit generators using compact specification"""
		c = Controller()
		x = c.mock()
		c.generator(x.g(8, 9), [10], Exception("bogus"))
		c.replay()
		g = x.g(8, 9)
		self.failUnless(g.next() == 10)
		self.failUnlessRaises(Exception, g.next)
Beispiel #12
0
	def testAttributeAssignmentCanBePlayedBack(self):
	    """Attibute assignment should be intercepted"""
	    
	    c = Controller()
	    x = c.mock(KlassBeingMocked)
	    x.w = 5
	    x.w = 6
	    c.replay()
	    x.w = 5
Beispiel #13
0
	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])
Beispiel #14
0
	def testUsedAttributeAssignmentCanBeVerified(self):
	    """Ensure that used calls will not cause verification failure"""        
	    c = Controller()
	    x = c.mock(KlassBeingMocked)
	    x.w = 5
	    x.h = 3
	    c.replay()
	    x.h = 3
	    x.w = 5
	    c.verify()
Beispiel #15
0
	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])
Beispiel #16
0
	def testUndefinedPlaybackRaisesException(self):
		"""Playback failure should raise an exception"""	
		c = Controller()
		x = c.mock(KlassBeingMocked)
		c.replay()
		try:
			x.w = 5
			self.fail()
		except PlaybackFailure, e:
			pass
Beispiel #17
0
	def testFunctionCallWithMismatchedArguments(self):
		"""Function call with mismatched arguments"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g(3, 4)
		x.h()
		x.i(8, v1=4, v2=3)
		c.replay()
		self.failUnlessRaises(PlaybackFailure, x.g, 5, 3)
		self.failUnlessRaises(PlaybackFailure, x.h, 2)
		self.failUnlessRaises(PlaybackFailure, x.i, 8, v1=4, v2=5)
Beispiel #18
0
	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)
Beispiel #19
0
	def testExpectAndRaise(self):
		"""Check expect and raise"""
		c = Controller()
		x = c.mock()
		c.expectAndRaise(x.g(8, 9), Exception())
		c.replay()
		try:
			x.g(8, 9)
			self.fail()
		except Exception, e:
			pass
Beispiel #20
0
	def testAtLeastSetsLimit(self):
		"""Ensure that setattr returns function calls"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g = 6
		c.atLeast(2)
		c.replay()
		x.g = 6
		self.failUnlessRaises(Exception, c.verify)
		x.g = 6
		c.verify()
Beispiel #21
0
	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)
Beispiel #22
0
	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)
Beispiel #23
0
	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)
Beispiel #24
0
	def testPlaybackFailsWithIncorrectValues(self):
	    """Ensure playing back incorrect values results in an error"""
	
	    c = Controller()
	    x = c.mock(KlassBeingMocked)
	    x.w = 5
	    c.replay()
	    try:
	        x.w = 4
	        self.fail()
	    except PlaybackFailure, e:
	        pass
Beispiel #25
0
	def testGetattrWithNoReturnValueSpecified(self):
		"""Getattr with no return value specified"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g
		c.replay()
		self.failIf(x.g == None)
		try:
			x.g
			self.fail()
		except PlaybackFailure, e:
			pass
Beispiel #26
0
	def testAttributeAssignmentIsIntercepted(self):
	    """Attibute assignment should be intercepted"""
	    
	    c = Controller()
	    x = c.mock(KlassBeingMocked)
	    x.w = 5
	    c.replay()
	    try:
	        x.w
	        self.fail()
	    except PlaybackFailure, e:
	        pass
Beispiel #27
0
	def testExceptionRaisedByGetattr(self):
		"""Ensure that getattr plays back exceptions"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g
		c.setException(Exception)
		c.replay()
		try:
			x.g
			self.fail()
		except Exception, e:
			pass
Beispiel #28
0
	def testExceptionRaisedBySetattr(self):
		"""Ensure that setattr returns function calls"""
		c = Controller()
		x = c.mock(KlassBeingMocked)
		x.g = 6
		c.setException(Exception)
		c.replay()
		try:
			x.g = 6
			self.fail()
		except Exception, e:
			pass
Beispiel #29
0
	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)
Beispiel #30
0
	def testOverrideWithImplicitMock(self):
		"""Verify override stores and replays"""
		c = Controller()
		x = KlassBeingMocked()
		x.f = 38
		c.override(x, 'f')
		x.f(35)
		c.replay()
		self.failUnlessRaises(Exception, c.verify)
		x.f(35)
		c.verify()
		c.restore()
		self.failUnless(x.f == 38)