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 substitute_variables(content, variables_mapping): """ substitute variables in content with variables_mapping Args: content (str/dict/list/numeric/bool/type): content to be substituted. variables_mapping (dict): variables mapping. Returns: substituted content. Examples: >>> content = { 'request': { 'url': '/api/users/$uid', 'headers': {'token': '$token'} } } >>> variables_mapping = {"$uid": 1000} >>> substitute_variables(content, variables_mapping) { 'request': { 'url': '/api/users/1000', 'headers': {'token': '$token'} } } """ if isinstance(content, (list, set, tuple)): return [ substitute_variables(item, variables_mapping) for item in content ] if isinstance(content, dict): substituted_data = {} for key, value in content.items(): eval_key = substitute_variables(key, variables_mapping) eval_value = substitute_variables(value, variables_mapping) substituted_data[eval_key] = eval_value return substituted_data if isinstance(content, basestring): # content is in string format here for var, value in variables_mapping.items(): if content == var: # content is a variable content = value else: if not isinstance(value, str): value = builtin_str(value) content = content.replace(var, value) return content
def parse_string_variables(content, variables_mapping): """ parse string content with variables mapping. Args: content (str): string content to be parsed. variables_mapping (dict): variables mapping. Returns: str: parsed string content. Examples: >>> content = "/api/users/$uid" >>> variables_mapping = {"$uid": 1000} >>> parse_string_variables(content, variables_mapping) "/api/users/1000" """ variables_list = extract_variables(content) for variable_name in variables_list: variable_value = get_mapping_variable(variable_name, variables_mapping) # TODO: replace variable label from $var to {{var}} if "${}".format(variable_name) == content: # content is a variable content = variable_value else: # content contains one or several variables if not isinstance(variable_value, str): variable_value = builtin_str(variable_value) content = content.replace( "${}".format(variable_name), variable_value, 1 ) return content
def string_equals(check_value, expect_value): assert builtin_str(check_value) == builtin_str(expect_value)
def endswith(check_value, expect_value): assert builtin_str(check_value).endswith(builtin_str(expect_value))
def startswith(check_value, expect_value): assert builtin_str(check_value).startswith(builtin_str(expect_value))