Exemple #1
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)
Exemple #2
0
	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)
Exemple #3
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])
Exemple #4
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()
Exemple #5
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()
Exemple #6
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])
Exemple #7
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)
Exemple #8
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)
Exemple #9
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)
Exemple #10
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)
Exemple #11
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)
Exemple #12
0
	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)
Exemple #13
0
	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
Exemple #14
0
	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)