Skip to content

Instantly share code, notes, and snippets.

@daltonmatos
Created August 7, 2012 02:36
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save daltonmatos/3280885 to your computer and use it in GitHub Desktop.
Save daltonmatos/3280885 to your computer and use it in GitHub Desktop.
Hack to mock the python True object
import mock
class AlmostAlwaysTrue(object):
def __init__(self, total_iterations=1):
self.total_iterations = total_iterations
self.current_iteration = 0
def __nonzero__(self):
if self.current_iteration < self.total_iterations:
self.current_iteration += 1
return bool(1)
return bool(0)
with mock.patch('__builtin__.True', AlmostAlwaysTrue(4)):
while True:
print "Loop!"
daltonmatos@jetta wsgid % python mocktrue.py
Loop!
Loop!
Loop!
Loop!
daltonmatos@jetta wsgid %
@jdawsongit
Copy link

Thanks! Though I don't need to change the value of True, this snippet did show me how to work around Python 2.7 mock's lack of ability to mock __bool__: you instead mock __nonzero__.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment