Show More
@@ -51,18 +51,10 b' class MarkupRenderer(object):' | |||
|
51 | 51 | RST_PAT = re.compile(r'\.re?st$', re.IGNORECASE) |
|
52 | 52 | PLAIN_PAT = re.compile(r'^readme$', re.IGNORECASE) |
|
53 | 53 | |
|
54 | # list of readme files to search in file tree and display in summary | |
|
55 | # attached weights defines the search order lower is first | |
|
56 | ALL_READMES = [ | |
|
57 | ('readme', 0), ('README', 0), ('Readme', 0), | |
|
58 | ('doc/readme', 1), ('doc/README', 1), ('doc/Readme', 1), | |
|
59 | ('Docs/readme', 2), ('Docs/README', 2), ('Docs/Readme', 2), | |
|
60 | ('DOCS/readme', 2), ('DOCS/README', 2), ('DOCS/Readme', 2), | |
|
61 | ('docs/readme', 2), ('docs/README', 2), ('docs/Readme', 2), | |
|
62 | ] | |
|
63 | 54 | # extension together with weights. Lower is first means we control how |
|
64 | 55 | # extensions are attached to readme names with those. |
|
65 | 56 | PLAIN_EXTS = [ |
|
57 | # prefer no extension | |
|
66 | 58 | ('', 0), # special case that renders READMES names without extension |
|
67 | 59 | ('.text', 2), ('.TEXT', 2), |
|
68 | 60 | ('.txt', 3), ('.TXT', 3) |
@@ -80,8 +72,6 b' class MarkupRenderer(object):' | |||
|
80 | 72 | ('.markdown', 4), ('.MARKDOWN', 4) |
|
81 | 73 | ] |
|
82 | 74 | |
|
83 | ALL_EXTS = PLAIN_EXTS + MARKDOWN_EXTS + RST_EXTS | |
|
84 | ||
|
85 | 75 | def _detect_renderer(self, source, filename=None): |
|
86 | 76 | """ |
|
87 | 77 | runs detection of what renderer should be used for generating html |
@@ -124,29 +114,6 b' class MarkupRenderer(object):' | |||
|
124 | 114 | |
|
125 | 115 | return None |
|
126 | 116 | |
|
127 | @classmethod | |
|
128 | def generate_readmes(cls, all_readmes, extensions): | |
|
129 | combined = itertools.product(all_readmes, extensions) | |
|
130 | # sort by filename weight(y[0][1]) + extensions weight(y[1][1]) | |
|
131 | prioritized_readmes = sorted(combined, key=lambda y: y[0][1] + y[1][1]) | |
|
132 | # filename, extension | |
|
133 | return [''.join([x[0][0], x[1][0]]) for x in prioritized_readmes] | |
|
134 | ||
|
135 | def pick_readme_order(self, default_renderer): | |
|
136 | ||
|
137 | if default_renderer == 'markdown': | |
|
138 | markdown = self.generate_readmes(self.ALL_READMES, self.MARKDOWN_EXTS) | |
|
139 | readme_order = markdown + self.generate_readmes( | |
|
140 | self.ALL_READMES, self.RST_EXTS + self.PLAIN_EXTS) | |
|
141 | elif default_renderer == 'rst': | |
|
142 | markdown = self.generate_readmes(self.ALL_READMES, self.RST_EXTS) | |
|
143 | readme_order = markdown + self.generate_readmes( | |
|
144 | self.ALL_READMES, self.MARKDOWN_EXTS + self.PLAIN_EXTS) | |
|
145 | else: | |
|
146 | readme_order = self.generate_readmes(self.ALL_READMES, self.ALL_EXTS) | |
|
147 | ||
|
148 | return readme_order | |
|
149 | ||
|
150 | 117 | def render(self, source, filename=None): |
|
151 | 118 | """ |
|
152 | 119 | Renders a given filename using detected renderer |
@@ -1037,23 +1037,6 b' class ReadmeFinder:' | |||
|
1037 | 1037 | |
|
1038 | 1038 | return sorted(paths, key=priority_and_path) |
|
1039 | 1039 | |
|
1040 | def search_old(self, commit): | |
|
1041 | """ | |
|
1042 | Try to find a readme in the given `commit`. | |
|
1043 | """ | |
|
1044 | renderer = MarkupRenderer() | |
|
1045 | for f in renderer.pick_readme_order(self._default_renderer): | |
|
1046 | log.debug("Trying README %s", f) | |
|
1047 | try: | |
|
1048 | node = commit.get_node(f) | |
|
1049 | except NodeDoesNotExistError: | |
|
1050 | continue | |
|
1051 | ||
|
1052 | if not node.is_file(): | |
|
1053 | continue | |
|
1054 | ||
|
1055 | return f | |
|
1056 | ||
|
1057 | 1040 | |
|
1058 | 1041 | class ReadmeMatch: |
|
1059 | 1042 |
@@ -177,37 +177,3 b' Auto status change to |new_status|' | |||
|
177 | 177 | renderer = RstTemplateRenderer() |
|
178 | 178 | rendered = renderer.render('auto_status_change.mako', **params) |
|
179 | 179 | assert expected == rendered |
|
180 | ||
|
181 | ||
|
182 | @pytest.mark.parametrize( | |
|
183 | "readmes, exts, order", | |
|
184 | [ | |
|
185 | ([], [], []), | |
|
186 | ||
|
187 | ([('readme1', 0), ('text1', 1)], [('.ext', 0), ('.txt', 1)], | |
|
188 | ['readme1.ext', 'readme1.txt', 'text1.ext', 'text1.txt']), | |
|
189 | ||
|
190 | ([('readme2', 0), ('text2', 1)], [('.ext', 2), ('.txt', 1)], | |
|
191 | ['readme2.txt', 'readme2.ext', 'text2.txt', 'text2.ext']), | |
|
192 | ||
|
193 | ([('readme3', 0), ('text3', 1)], [('.XXX', 1)], | |
|
194 | ['readme3.XXX', 'text3.XXX']), | |
|
195 | ]) | |
|
196 | def test_generate_readmes(readmes, exts, order): | |
|
197 | assert order == MarkupRenderer.generate_readmes(readmes, exts) | |
|
198 | ||
|
199 | ||
|
200 | @pytest.mark.parametrize( | |
|
201 | "renderer, expected_order", | |
|
202 | [ | |
|
203 | ('plain', ['readme', 'README', 'Readme']), | |
|
204 | ('text', ['readme', 'README', 'Readme']), | |
|
205 | ('markdown', MarkupRenderer.generate_readmes( | |
|
206 | MarkupRenderer.ALL_READMES, MarkupRenderer.MARKDOWN_EXTS)), | |
|
207 | ('rst', MarkupRenderer.generate_readmes( | |
|
208 | MarkupRenderer.ALL_READMES, MarkupRenderer.RST_EXTS)), | |
|
209 | ]) | |
|
210 | def test_order_of_readme_generation(renderer, expected_order): | |
|
211 | mkd_renderer = MarkupRenderer() | |
|
212 | assert expected_order == mkd_renderer.pick_readme_order( | |
|
213 | renderer)[:len(expected_order)] |
General Comments 0
You need to be logged in to leave comments.
Login now