build url with base_url

This commit is contained in:
debugtalk
2018-11-22 19:53:09 +08:00
parent 4099ade49d
commit 1ce95ba3cb
3 changed files with 37 additions and 23 deletions

View File

@@ -1,20 +1,17 @@
# encoding: utf-8
import re
import time
import requests
import urllib3
from httprunner import logger
from httprunner.exceptions import ParamsError
from httprunner.utils import build_url
from requests import Request, Response
from requests.exceptions import (InvalidSchema, InvalidURL, MissingSchema,
RequestException)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
absolute_http_url_regexp = re.compile(r"^https?://", re.I)
class ApiResponse(Response):
@@ -42,15 +39,6 @@ class HttpSession(requests.Session):
self.base_url = base_url if base_url else ""
self.init_meta_data()
def _build_url(self, path):
""" prepend url with hostname unless it's already an absolute URL """
if absolute_http_url_regexp.match(path):
return path
elif self.base_url:
return "{}/{}".format(self.base_url.rstrip("/"), path.lstrip("/"))
else:
raise ParamsError("base url missed!")
def init_meta_data(self):
""" initialize meta_data, it will store detail data of request and response
"""
@@ -125,7 +113,7 @@ class HttpSession(requests.Session):
self.meta_data["request"]["start_timestamp"] = time.time()
# prepend url with hostname unless it's already an absolute URL
url = self._build_url(url)
url = build_url(self.base_url, url)
kwargs.setdefault("timeout", 120)
response = self._send_request_safe_mode(method, url, **kwargs)