Bir birim sınamasında bir yardımcı program sınıfı (Bu durumda python günlüğü yardımcı programı) dağıtmaya çalışıyorum.Pytest kullanarak birim testleri için monkeypatch bir "kurulum" yönteminde nasıl kullanılır?
Her test düzeyinde monkeypatch kullanarak nasıl yapılacağını bildiğim halde, bunu bir şekilde kurulumun bir parçası olarak yapabilmeyi umuyordum. İşte
ben yapabilirim umuyorum (ama hatalar alıyorum) ne:
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)
Bunu yapmanın doğru yolu nedir?
DÜZENLEME: Örnek hata normal pytest fikstür gibi
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'
Lütfen aldığınız hataları dahil edin, gerçekten neyin yanlış gittiğini anlamamıza yardımcı olur. –