मजाक इस पढ़ने के बाद: How do I mock an open used in a with statement (using the Mock framework in Python)?अजगर मॉक - कई खुला
मैं का उपयोग कर अजगर में खुला समारोह नकली कर सकती हूं:
with patch(open_name, create=True) as mock_open:
mock_open.return_value = MagicMock(spec=file)
m_file = mock_open.return_value.__enter__.return_value
m_file.read.return_value = 'text1'
diffman = Diffman()
diffman.diff(path1, path2)
यह अच्छी तरह से काम करता है जब मेरी जांच की विधि एक खुला बयान का इस्तेमाल किया।
def diff(self, a, b):
with open(a, 'r') as old:
with open(b, 'r') as new:
oldtext = old.read()
newtext = new.read()
oldtext और newtext के मूल्यों में एक ही ('टेक्स्ट 1' यहाँ) हैं: यहाँ मेरी जांच की विधि है।
मैं पुराने टेक्स्ट के लिए 'text1' और newtext के लिए 'text2' रखना चाहता हूं।
मैं यह कैसे कर सकता हूं?