diff --git a/httprunner/__init__.py b/httprunner/__init__.py index 6fbfbe8a..e70b5526 100644 --- a/httprunner/__init__.py +++ b/httprunner/__init__.py @@ -2,6 +2,7 @@ __version__ = "4.0.0-beta" __description__ = "One-stop solution for HTTP(S) testing." from httprunner.config import Config +import platform from httprunner.parser import parse_parameters as Parameters from httprunner.runner import HttpRunner from httprunner.step import Step @@ -12,11 +13,6 @@ from httprunner.step_sql_request import ( StepSqlRequestValidation, StepSqlRequestExtraction, ) -from httprunner.step_thrift_request import ( - RunThriftRequest, - StepThriftRequestValidation, - StepThriftRequestExtraction, -) __all__ = [ "__version__", @@ -28,9 +24,20 @@ __all__ = [ "RunSqlRequest", "StepSqlRequestValidation", "StepSqlRequestExtraction", - "RunThriftRequest", - "StepThriftRequestValidation", - "StepThriftRequestExtraction", "RunTestCase", "Parameters", ] +if platform.system() != "Windows": + from httprunner.step_thrift_request import ( + RunThriftRequest, + StepThriftRequestValidation, + StepThriftRequestExtraction, + ) + + __all__.extend( + [ + "RunThriftRequest", + "StepThriftRequestValidation", + "StepThriftRequestExtraction", + ] + ) diff --git a/httprunner/step.py b/httprunner/step.py index 75cc43dc..b0d20a9b 100644 --- a/httprunner/step.py +++ b/httprunner/step.py @@ -1,3 +1,4 @@ +import platform from typing import Union from httprunner.models import StepResult, TRequest, TStep, TestCase @@ -14,8 +15,6 @@ from httprunner.step_sql_request import ( StepSqlRequestExtraction, ) -from httprunner.step_thrift_request import RunThriftRequest,StepThriftRequestValidation,StepThriftRequestExtraction - class Step(object): def __init__( @@ -28,9 +27,6 @@ class Step(object): RunSqlRequest, StepSqlRequestValidation, StepSqlRequestExtraction, - RunThriftRequest, - StepThriftRequestValidation, - StepThriftRequestExtraction ], ): self.__step = step @@ -62,3 +58,29 @@ class Step(object): def run(self, runner: HttpRunner) -> StepResult: return self.__step.run(runner) + + +if platform.system() != "Windows": + from httprunner.step_thrift_request import ( + RunThriftRequest, + StepThriftRequestValidation, + StepThriftRequestExtraction, + ) + + class Step(Step): + def __init__( + self, + step: Union[ + StepRequestValidation, + StepRequestExtraction, + RequestWithOptionalArgs, + StepRefCase, + RunSqlRequest, + StepSqlRequestValidation, + StepSqlRequestExtraction, + RunThriftRequest, + StepThriftRequestValidation, + StepThriftRequestExtraction, + ], + ): + super().__init__(step) diff --git a/httprunner/step_thrift_request.py b/httprunner/step_thrift_request.py index 7eef3e07..919df130 100644 --- a/httprunner/step_thrift_request.py +++ b/httprunner/step_thrift_request.py @@ -189,7 +189,9 @@ class RunThriftRequest(IStep): return self - def setup_hook(self, hook: Text, assign_var_name: Text = None) -> "RunThriftRequest": + def setup_hook( + self, hook: Text, assign_var_name: Text = None + ) -> "RunThriftRequest": if assign_var_name: self.__step.setup_hooks.append({assign_var_name: hook}) else: