Selbst wenn Sie das Gerät als normale Funktion aufrufen und den Pytest-Dekorateur ignorieren, funktioniert es einwandfrei, wenn die Signaturen übereinstimmen.
Wenn jedoch der Pytest selbst nicht existiert, ist ein Umweg erforderlich. Sie können beispielsweise Folgendes tun:
try:
import pytest
except ImportError:
# provide fake pytest function to keep the script still runnable as standalone script
def null_decorator_or_decomaker(f=None, **decomaker_kwargs):
if f:
# decorator
return lambda *args, **kwargs: f(*args, **kwargs)
else:
# decomaker
def _(f):
# decomaker_kwargs can be handled
return lambda *args, **kwargs: f(*args, **kwargs)
return _
def null_decomaker(*decomaker_args, **decomaker_kwargs):
def _(f):
return lambda *args, **kwargs: f(*args, **kwargs)
return _
def null_decorator(f):
return lambda *args, **kwargs: f(*args, **kwargs)
class pytest:
fixture = staticmethod(null_decorator_or_decomaker)
class mark:
parametrize = staticmethod(null_decomaker)
# other function declarations follow if required.
\ # Ich frage mich, ob es nicht mehr mit Pytest zu tun hat, aber möchten Sie es markieren? ..