मैं एक यूनिट परीक्षण में उपयोगिता वर्ग (इस मामले में पायथन लॉगर उपयोगिता) का नकल करने का प्रयास कर रहा हूं।पाइस्टेस्ट का उपयोग करके यूनिट परीक्षणों के लिए "सेटअप" विधि में बंदरपैच का उपयोग कैसे करें?
जबकि मुझे पता है कि प्रति परीक्षण स्तर पर बंदरपैच का उपयोग करके इसे कैसे किया जाए, मुझे उम्मीद थी कि मैं इसे किसी भी तरह से सेटअप/वैश्विक स्तर के हिस्से के रूप में कर सकता हूं।
यहाँ मैं उम्मीद कर रहा हूँ कि क्या मैं ऐसा कर सकते हैं (लेकिन मैं त्रुटियों हो रही है) है:
import logging
...
def setup(self, monkeypatch):
class fake_logger(level):
def __init__(self, val):
pass
def setLevel(self, level):
# Do something
def mock_logger(level):
return fake_logger(level)
monkeypatch.setattr(logging, 'getLogger', mock_logger)
यह करने के लिए सही तरीका क्या है?
संपादित करें: उदाहरण त्रुटि एक सामान्य pytest स्थिरता के रूप में
name = 'setup'
def call_optional(obj, name):
method = getattr(obj, name, None)
isfixture = hasattr(method, "_pytestfixturefunction")
if method is not None and not isfixture and py.builtin.callable(method):
# If there's any problems allow the exception to raise rather than
# silently ignoring them
> method()
E TypeError: setup() missing 1 required positional argument: 'monkeypatch'
कृपया जो त्रुटियां मिल रही हैं, उसे शामिल करें, यह वास्तव में हमें समझने में मदद करता है कि क्या गलत हो रहा है। –