1)
Without MultipleTimes
class Time:
def get_time():
pass
import mox
## Start recording (start record mode)
t=mox.MockObject(Time)
t.get_time().AndReturn("you can call me only once")
## Stop recording (start reply mode)
mox.Replay(t)
t.get_time()
t.get_time()
* Here You can call the method "get_time" only once
2)
With MultipleTimes
class Time:
def get_time():
pass
import mox
t=mox.MockObject(Time)
t.get_time().MultipleTimes().AndReturn("you can call me multiple times")
mox.Replay(t)
t.get_time()
t.get_time()
* Here You can call the method "get_time" multiple times
Without MultipleTimes
class Time:
def get_time():
pass
import mox
## Start recording (start record mode)
t=mox.MockObject(Time)
t.get_time().AndReturn("you can call me only once")
## Stop recording (start reply mode)
mox.Replay(t)
t.get_time()
t.get_time()
* Here You can call the method "get_time" only once
2)
With MultipleTimes
class Time:
def get_time():
pass
import mox
t=mox.MockObject(Time)
t.get_time().MultipleTimes().AndReturn("you can call me multiple times")
mox.Replay(t)
t.get_time()
t.get_time()
* Here You can call the method "get_time" multiple times
https://github.com/openstack/python-neutronclient/blob/master/neutronclient/tests/unit/test_cli20.py
ReplyDeletehttps://code.google.com/p/pymox/wiki/MoxDocumentation
https://code.google.com/p/pymox/wiki/MoxDocumentation#Stub_Out <== Stub_Out
https://code.google.com/p/pymox/wiki/MoxRecipes
import mox
ReplyDeleteclass MyRequestHandler(object):
def handle_request(self, request):
self.authenticate(request)
self.authorize(request)
self.process(request)
def authenticate(self, request):
print "===in authenticate==="
def authorize(self, request):
print "===in authorize==="
def process(self, request):
print "===in process==="
handler = MyRequestHandler()
##### Start recording (put mock in record mode) #####
m = mox.Mox()
m.StubOutWithMock(handler, "authenticate")
m.StubOutWithMock(handler, "authorize")
##Execute this file by commenting and uncommenting following line
m.StubOutWithMock(handler, "process")
handler.authenticate(mox.IsA(int))
handler.authorize(mox.IsA(int))
handler.process(mox.IsA(int))
#handler.process().MultipleTimes().AndReturn("vvvvvvvv")
##### Stop recording (put mock in reply mode) #####
m.ReplayAll()
##### Start playing #####
##Execute this file by passing int and string to method "handle_request"
handler.handle_request(1)
#m.UnsetStubs()
##Verify that we played all recorded things
#m.VerifyAll()