refactor: make step extensible to support implementing new protocols and test types for python version

This commit is contained in:
debugtalk
2022-04-01 22:47:47 +08:00
parent e5f994f936
commit d36c1cb987
13 changed files with 842 additions and 802 deletions

40
httprunner/step.py Normal file
View File

@@ -0,0 +1,40 @@
from typing import Union
from httprunner.models import StepData, TRequest, TStep, TestCase
from httprunner.runner import HttpRunner
from httprunner.step_request import RequestWithOptionalArgs, StepRequestExtraction, StepRequestValidation
from httprunner.step_testcase import StepRefCase
class Step(object):
def __init__(
self,
step: Union[
StepRequestValidation,
StepRequestExtraction,
RequestWithOptionalArgs,
StepRefCase,
],
):
self.__step = step
@property
def request(self) -> TRequest:
return self.__step.struct().request
@property
def testcase(self) -> TestCase:
return self.__step.struct().testcase
def struct(self) -> TStep:
return self.__step.struct()
def name(self) -> str:
return self.__step.name()
def type(self) -> str:
return self.__step.type()
def run(self, runner: HttpRunner) -> StepData:
return self.__step.run(runner)