From b57e90105721d2817908b60ec39c2b4cbb1ca8f3 Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Thu, 26 Apr 2018 16:25:46 -0400 Subject: [PATCH] ceph-volume tests allow setting return values on stubbed process.call Signed-off-by: Alfredo Deza --- src/ceph-volume/ceph_volume/tests/conftest.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/ceph-volume/ceph_volume/tests/conftest.py b/src/ceph-volume/ceph_volume/tests/conftest.py index ba3395bfba3..b1f858138ea 100644 --- a/src/ceph-volume/ceph_volume/tests/conftest.py +++ b/src/ceph-volume/ceph_volume/tests/conftest.py @@ -10,9 +10,15 @@ class Capture(object): 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): @@ -41,7 +47,7 @@ def fake_run(monkeypatch): @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 @@ -51,10 +57,12 @@ def stub_call(monkeypatch): """ 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 -- 2.39.5