summary: Avoid to re-fetch Node object
This commit is contained in:
parent
55b3018fc2
commit
c5898bf7ee
3 changed files with 26 additions and 24 deletions
|
|
@ -63,14 +63,16 @@ class SummaryController(BaseRepoController):
|
|||
@cache_region('long_term')
|
||||
def _generate_readme(cache_key):
|
||||
readme_data = None
|
||||
readme_file = None
|
||||
readme_node = None
|
||||
readme_filename = None
|
||||
commit = self._get_landing_commit_or_none(db_repo)
|
||||
if commit:
|
||||
log.debug("Searching for a README file.")
|
||||
readme_file = ReadmeFinder(default_renderer).search(commit)
|
||||
if readme_file:
|
||||
readme_data = self._render_readme_or_none(commit, readme_file)
|
||||
return readme_data, readme_file
|
||||
readme_node = ReadmeFinder(default_renderer).search(commit)
|
||||
if readme_node:
|
||||
readme_data = self._render_readme_or_none(commit, readme_node)
|
||||
readme_filename = readme_node.path
|
||||
return readme_data, readme_filename
|
||||
|
||||
invalidator_context = CacheKey.repo_context_cache(
|
||||
_generate_readme, repo_name, CacheKey.CACHE_TYPE_README)
|
||||
|
|
@ -93,13 +95,13 @@ class SummaryController(BaseRepoController):
|
|||
log.exception(
|
||||
"Problem getting commit when trying to render the README.")
|
||||
|
||||
def _render_readme_or_none(self, commit, readme_file):
|
||||
def _render_readme_or_none(self, commit, readme_node):
|
||||
log.debug(
|
||||
'Found README file `%s` rendering...', readme_file)
|
||||
'Found README file `%s` rendering...', readme_node.path)
|
||||
renderer = MarkupRenderer()
|
||||
node = commit.get_node(readme_file)
|
||||
try:
|
||||
return renderer.render(node.content, filename=readme_file)
|
||||
return renderer.render(
|
||||
readme_node.content, filename=readme_node.file)
|
||||
except Exception:
|
||||
log.exception(
|
||||
"Exception while trying to render the README")
|
||||
|
|
|
|||
|
|
@ -987,7 +987,7 @@ class ReadmeFinder:
|
|||
matches = self._match_readmes(nodes)
|
||||
matches = self._sort_according_to_priority(matches)
|
||||
if matches:
|
||||
return matches[0].path
|
||||
return matches[0]
|
||||
|
||||
paths = self._match_paths(nodes)
|
||||
paths = self._sort_paths_according_to_priority(paths)
|
||||
|
|
|
|||
|
|
@ -54,29 +54,29 @@ class CommitUtility:
|
|||
def test_no_matching_file_returns_none(commit_util):
|
||||
commit = commit_util.commit_with_files(['LIESMICH'])
|
||||
finder = ReadmeFinder(default_renderer='rst')
|
||||
filename = finder.search(commit)
|
||||
assert filename is None
|
||||
filenode = finder.search(commit)
|
||||
assert filenode is None
|
||||
|
||||
|
||||
def test_matching_file_returns_the_file_name(commit_util):
|
||||
commit = commit_util.commit_with_files(['README'])
|
||||
finder = ReadmeFinder(default_renderer='rst')
|
||||
filename = finder.search(commit)
|
||||
assert filename == 'README'
|
||||
filenode = finder.search(commit)
|
||||
assert filenode.path == 'README'
|
||||
|
||||
|
||||
def test_matching_file_with_extension(commit_util):
|
||||
commit = commit_util.commit_with_files(['README.rst'])
|
||||
finder = ReadmeFinder(default_renderer='rst')
|
||||
filename = finder.search(commit)
|
||||
assert filename == 'README.rst'
|
||||
filenode = finder.search(commit)
|
||||
assert filenode.path == 'README.rst'
|
||||
|
||||
|
||||
def test_prefers_readme_without_extension(commit_util):
|
||||
commit = commit_util.commit_with_files(['README.rst', 'Readme'])
|
||||
finder = ReadmeFinder()
|
||||
filename = finder.search(commit)
|
||||
assert filename == 'Readme'
|
||||
filenode = finder.search(commit)
|
||||
assert filenode.path == 'Readme'
|
||||
|
||||
|
||||
@pytest.mark.parametrize('renderer, expected', [
|
||||
|
|
@ -87,20 +87,20 @@ def test_prefers_renderer_extensions(commit_util, renderer, expected):
|
|||
commit = commit_util.commit_with_files(
|
||||
['readme.rst', 'readme.md', 'readme.txt'])
|
||||
finder = ReadmeFinder(default_renderer=renderer)
|
||||
filename = finder.search(commit)
|
||||
assert filename == expected
|
||||
filenode = finder.search(commit)
|
||||
assert filenode.path == expected
|
||||
|
||||
|
||||
def test_finds_readme_in_subdirectory(commit_util):
|
||||
commit = commit_util.commit_with_files(['doc/README.rst', 'LIESMICH'])
|
||||
finder = ReadmeFinder()
|
||||
filename = finder.search(commit)
|
||||
assert filename == 'doc/README.rst'
|
||||
filenode = finder.search(commit)
|
||||
assert filenode.path == 'doc/README.rst'
|
||||
|
||||
|
||||
def test_prefers_subdirectory_with_priority(commit_util):
|
||||
commit = commit_util.commit_with_files(
|
||||
['Doc/Readme.rst', 'Docs/Readme.rst'])
|
||||
finder = ReadmeFinder()
|
||||
filename = finder.search(commit)
|
||||
assert filename == 'Doc/Readme.rst'
|
||||
filenode = finder.search(commit)
|
||||
assert filenode.path == 'Doc/Readme.rst'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue