change: refactor Request interface

This commit is contained in:
debugtalk
2020-06-01 11:56:16 +08:00
parent e7aca43470
commit 526b1fcbc9
3 changed files with 30 additions and 19 deletions

View File

@@ -21,8 +21,7 @@ class TestCaseRequestWithFunctions(HttpRunner):
.set_variables(foo1="bar1", foo2="session_bar2", sum_v="${sum_two(1, 2)}")
.run_request(
Request()
.set_method("GET")
.set_url("/get")
.get("/get")
.set_params(foo1="$foo1", foo2="$foo2", sum_v="$sum_v")
.set_headers(**{"User-Agent": "HttpRunner/${get_httprunner_version()}"})
)
@@ -36,8 +35,7 @@ class TestCaseRequestWithFunctions(HttpRunner):
.set_variables(foo1="hello world", foo3="$session_foo2")
.run_request(
Request()
.set_method("POST")
.set_url("/post")
.post("/post")
.set_headers(
**{
"User-Agent": "HttpRunner/${get_httprunner_version()}",
@@ -58,8 +56,7 @@ class TestCaseRequestWithFunctions(HttpRunner):
.set_variables(**{"foo1": "bar1", "foo2": "bar2"})
.run_request(
Request()
.set_method("POST")
.set_url("/post")
.post("/post")
.set_headers(
**{
"User-Agent": "HttpRunner/${get_httprunner_version()}",

View File

@@ -31,6 +31,7 @@ from httprunner.schema import (
ProjectMeta,
TestCase,
TRequest,
MethodEnum,
)
@@ -69,21 +70,36 @@ class Config(object):
class Request(object):
def __init__(self):
self.__method = "GET"
self.__url = ""
def get(self, url):
return RequestOptionalArgs(MethodEnum.GET, url)
def post(self, url):
return RequestOptionalArgs(MethodEnum.POST, url)
def put(self, url):
return RequestOptionalArgs(MethodEnum.PUT, url)
def head(self, url):
return RequestOptionalArgs(MethodEnum.HEAD, url)
def delete(self, url):
return RequestOptionalArgs(MethodEnum.DELETE, url)
def options(self, url):
return RequestOptionalArgs(MethodEnum.OPTIONS, url)
def patch(self, url):
return RequestOptionalArgs(MethodEnum.PATCH, url)
class RequestOptionalArgs(object):
def __init__(self, method: MethodEnum, url: Text):
self.__method = method
self.__url = url
self.__params = {}
self.__headers = {}
self.__data = ""
def set_method(self, method):
self.__method = method
return self
def set_url(self, url):
self.__url = url
return self
def set_params(self, **params):
self.__params.update(params)
return self

View File

@@ -29,8 +29,6 @@ class MethodEnum(Text, Enum):
HEAD = "HEAD"
OPTIONS = "OPTIONS"
PATCH = "PATCH"
CONNECT = "CONNECT"
TRACE = "TRACE"
class TConfig(BaseModel):