मुझे अभी पता चला है कि यूनिट परीक्षणों का एक गुच्छा विफल हो रहा है, क्योंकि डेवलपर ने टेस्ट के भीतर एक रेडिस क्लाइंट की निर्भरता का मज़ाक उड़ाया नहीं है। मैं इस मामले में हाथ देने की कोशिश कर रहा हूं लेकिन खुद को कठिनाइयों का सामना करना पड़ रहा हूं।पायथन में एक रेडिस क्लाइंट का नकल कैसे करें?
विधि एक redis ग्राहक के लिए लिखते हैं:
redis_client = get_redis_client()
redis_client.set('temp-facility-data', cPickle.dumps(df))
ज़ोर परिणाम प्राप्त हो रहा है बाद में
:
res = cPickle.loads(get_redis_client().get('temp-facility-data'))
expected = pd.Series([set([1, 2, 3, 4, 5])], index=[1])
assert_series_equal(res.variation_pks, expected)
मैं redis ग्राहक की get() और सेट (पैच करने के लिए प्रबंधित) सफलतापूर्वक ।
@mock.patch('redis.StrictRedis.get')
@mock.patch('redis.StrictRedis.set')
def test_identical(self, mock_redis_set, mock_redis_get):
mock_redis_get.return_value = ???
f2 = deepcopy(self.f)
f3 = deepcopy(self.f)
f2.pk = 2
f3.pk = 3
self.one_row(f2, f3)
लेकिन मैं क्या set()
, कोड में सेट इतना है कि परीक्षा उत्तीर्ण होगा करने के लिए get()
की return_value
स्थापित करने के लिए कैसे पता नहीं है।
res = cPickle.loads(get_redis_client().get('temp-facility-data'))
TypeError: must be string, not MagicMock
किसी भी सलाह दें:
अभी इस लाइन परीक्षण में विफल रहता है?
उपयोग 'एक साझा वस्तु होने के साथ side_effect' करना चाहिए सेट 'side_effect' में सेट करें और' side_effect' प्राप्त करने में लौटा? https://docs.python.org/3/library/unittest.mock.html#quick-guide – user3012759