# !/usr/bin/python3
|
# -*- coding: utf-8 -*-
|
import datetime
|
import os
|
import random
|
import string
|
import time
|
|
from requests_toolbelt import MultipartEncoder
|
|
from httprunner.compat import builtin_str, integer_types
|
from httprunner.exceptions import ParamsError
|
|
|
def gen_random_string(str_len):
|
"""generate random string with specified length"""
|
return "".join(
|
random.choice(string.ascii_letters + string.digits) for _ in range(str_len)
|
)
|
|
|
def get_timestamp(str_len=13):
|
"""get timestamp string, length can only between 0 and 16"""
|
if isinstance(str_len, integer_types) and 0 < str_len < 17:
|
return builtin_str(time.time()).replace(".", "")[:str_len]
|
|
raise ParamsError("timestamp length can only between 0 and 16.")
|
|
|
def get_current_date(fmt="%Y-%m-%d"):
|
"""get current date, default format is %Y-%m-%d"""
|
return datetime.datetime.now().strftime(fmt)
|
|
|
def multipart_encoder(field_name, file_path, file_type=None, file_headers=None):
|
if not os.path.isabs(file_path):
|
file_path = os.path.join(os.getcwd(), file_path)
|
|
filename = os.path.basename(file_path)
|
with open(file_path, "rb") as f:
|
fields = {field_name: (filename, f.read(), file_type)}
|
|
return MultipartEncoder(fields)
|
|
|
def multipart_content_type(multipart_encoder):
|
return multipart_encoder.content_type
|
|
|
""" built-in hooks
|
"""
|
|
|
def setup_hook_prepare_kwargs(request):
|
pass
|