# HG changeset patch # User Marcin Kuzminski # Date 2019-02-17 17:24:38 # Node ID 4bcd6578c03ee0ca81fb94345bc3444dee8b7462 # Parent 1c05298026fcf9afe8947f410b6c7be0303bab1a api: fixed unicode problems on get_node, and ensure no cached items are used if cache=false diff --git a/rhodecode/model/scm.py b/rhodecode/model/scm.py --- a/rhodecode/model/scm.py +++ b/rhodecode/model/scm.py @@ -623,18 +623,26 @@ class ScmModel(BaseModel): "size": size, }) - if content: - over_size_limit = (max_file_bytes is not None - and file_node.size > max_file_bytes) + if content and cache: + # get content + cache + size = file_node.size + over_size_limit = (max_file_bytes is not None and size > max_file_bytes) full_content = None if not file_node.is_binary and not over_size_limit: - if cache: - full_content = safe_str(file_node.content) - else: - if _content is None: - is_binary, md5, size, _content = \ - file_node.metadata_uncached() - full_content = safe_str(_content) + full_content = safe_unicode(file_node.content) + + file_data.update({ + "content": full_content, + }) + elif content: + # get content *without* cache + if _content is None: + is_binary, md5, size, _content = file_node.metadata_uncached() + + over_size_limit = (max_file_bytes is not None and size > max_file_bytes) + full_content = None + if not is_binary and not over_size_limit: + full_content = safe_unicode(_content) file_data.update({ "content": full_content,