self.a = a
self.kw = kw
self.calls = []
+ self.return_values = kw.get('return_values', False)
+ self.always_returns = kw.get('always_returns', False)
def __call__(self, *a, **kw):
self.calls.append({'args': a, 'kwargs': kw})
+ if self.always_returns:
+ return self.always_returns
+ if self.return_values:
+ return self.return_values.pop()
class Factory(object):
@pytest.fixture
def fake_call(monkeypatch):
- fake_call = Capture()
+ fake_call = Capture(always_returns=([], [], 0))
monkeypatch.setattr('ceph_volume.process.call', fake_call)
return fake_call
"""
Monkeypatches process.call, so that a caller can add behavior to the response
"""
- def apply(return_value):
- monkeypatch.setattr(
- 'ceph_volume.process.call',
- lambda *a, **kw: return_value)
+ def apply(return_values):
+ if isinstance(return_values, tuple):
+ return_values = [return_values]
+ stubbed_call = Capture(return_values=return_values)
+ monkeypatch.setattr('ceph_volume.process.call', stubbed_call)
+ return stubbed_call
return apply