Merge lp:~gz/brz/flake8_source_test into lp:brz

Proposed by Martin Packman
Status: Merged
Approved by: Martin Packman
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~gz/brz/flake8_source_test
Merge into: lp:brz
Diff against target: 374 lines (+58/-71)
6 files modified
breezy/bzr/__init__.py (+1/-1)
breezy/git/tests/test_tree.py (+26/-23)
breezy/tests/__init__.py (+7/-0)
breezy/tests/blackbox/test_big_file.py (+0/-3)
breezy/tests/test_source.py (+20/-42)
setup.cfg (+4/-2)
To merge this branch: bzr merge lp:~gz/brz/flake8_source_test
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+407491@code.launchpad.net

Commit message

Make flake8 source test behave

Description of the change

Using the new 'legacy' api where possible, skipping only on compat issues.

Next text_log_file() test method to get context for writing text in.

Ignore some more error types, fix a few lint complaints.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'breezy/bzr/__init__.py'
--- breezy/bzr/__init__.py 2020-07-28 02:11:05 +0000
+++ breezy/bzr/__init__.py 2021-08-21 13:33:23 +0000
@@ -51,7 +51,7 @@
51 raise errors.NotBranchError(path=transport.base)51 raise errors.NotBranchError(path=transport.base)
52 except errors.BadHttpRequest as e:52 except errors.BadHttpRequest as e:
53 if e.reason == 'no such method: .bzr':53 if e.reason == 'no such method: .bzr':
54 # hgweb 54 # hgweb
55 raise errors.NotBranchError(path=transport.base)55 raise errors.NotBranchError(path=transport.base)
56 raise56 raise
5757
5858
=== modified file 'breezy/git/tests/test_tree.py'
--- breezy/git/tests/test_tree.py 2021-08-20 15:04:24 +0000
+++ breezy/git/tests/test_tree.py 2021-08-21 13:33:23 +0000
@@ -34,6 +34,9 @@
34from breezy.git.mapping import default_mapping34from breezy.git.mapping import default_mapping
3535
3636
37REG_MODE = stat.S_IFREG | 0o644
38
39
37class ChangesFromGitChangesTests(TestCase):40class ChangesFromGitChangesTests(TestCase):
3841
39 def setUp(self):42 def setUp(self):
@@ -62,7 +65,7 @@
62 (False, False), False)65 (False, False), False)
63 ], self.transform([66 ], self.transform([
64 ('modify',67 ('modify',
65 (b'a', stat.S_IFREG|0o644, a), (b'a', stat.S_IFREG|0o644, b))]))68 (b'a', REG_MODE, a), (b'a', REG_MODE, b))]))
6669
67 def test_kind_changed(self):70 def test_kind_changed(self):
68 a = Blob.from_string(b'a')71 a = Blob.from_string(b'a')
@@ -74,7 +77,7 @@
74 (False, False), False)77 (False, False), False)
75 ], self.transform([78 ], self.transform([
76 ('modify',79 ('modify',
77 (b'a', stat.S_IFREG|0o644, a), (b'a', stat.S_IFLNK, b))]))80 (b'a', REG_MODE, a), (b'a', stat.S_IFLNK, b))]))
7881
79 def test_rename_no_changes(self):82 def test_rename_no_changes(self):
80 a = Blob.from_string(b'a')83 a = Blob.from_string(b'a')
@@ -85,7 +88,7 @@
85 ('file', 'file'), (False, False), False)88 ('file', 'file'), (False, False), False)
86 ], self.transform([89 ], self.transform([
87 ('rename',90 ('rename',
88 (b'old', stat.S_IFREG|0o644, a), (b'a', stat.S_IFREG|0o644, a))]))91 (b'old', REG_MODE, a), (b'a', REG_MODE, a))]))
8992
90 def test_rename_and_modify(self):93 def test_rename_and_modify(self):
91 a = Blob.from_string(b'a')94 a = Blob.from_string(b'a')
@@ -97,7 +100,7 @@
97 ('file', 'file'), (False, False), False)100 ('file', 'file'), (False, False), False)
98 ], self.transform([101 ], self.transform([
99 ('rename',102 ('rename',
100 (b'a', stat.S_IFREG|0o644, a), (b'b', stat.S_IFREG|0o644, b))]))103 (b'a', REG_MODE, a), (b'b', REG_MODE, b))]))
101104
102 def test_copy_no_changes(self):105 def test_copy_no_changes(self):
103 a = Blob.from_string(b'a')106 a = Blob.from_string(b'a')
@@ -108,7 +111,7 @@
108 ('file', 'file'), (False, False), True)111 ('file', 'file'), (False, False), True)
109 ], self.transform([112 ], self.transform([
110 ('copy',113 ('copy',
111 (b'old', stat.S_IFREG|0o644, a), (b'a', stat.S_IFREG|0o644, a))]))114 (b'old', REG_MODE, a), (b'a', REG_MODE, a))]))
112115
113 def test_copy_and_modify(self):116 def test_copy_and_modify(self):
114 a = Blob.from_string(b'a')117 a = Blob.from_string(b'a')
@@ -120,7 +123,7 @@
120 ('file', 'file'), (False, False), True)123 ('file', 'file'), (False, False), True)
121 ], self.transform([124 ], self.transform([
122 ('copy',125 ('copy',
123 (b'a', stat.S_IFREG|0o644, a), (b'b', stat.S_IFREG|0o644, b))]))126 (b'a', REG_MODE, a), (b'b', REG_MODE, b))]))
124127
125 def test_add(self):128 def test_add(self):
126 b = Blob.from_string(b'b')129 b = Blob.from_string(b'b')
@@ -130,7 +133,7 @@
130 (None, 'a'), (None, 'file'), (None, False), False)133 (None, 'a'), (None, 'file'), (None, False), False)
131 ], self.transform([134 ], self.transform([
132 ('add',135 ('add',
133 (None, None, None), (b'a', stat.S_IFREG|0o644, b))]))136 (None, None, None), (b'a', REG_MODE, b))]))
134137
135 def test_delete(self):138 def test_delete(self):
136 b = Blob.from_string(b'b')139 b = Blob.from_string(b'b')
@@ -140,7 +143,7 @@
140 ('a', None), ('file', None), (False, None), False)143 ('a', None), ('file', None), (False, None), False)
141 ], self.transform([144 ], self.transform([
142 ('remove',145 ('remove',
143 (b'a', stat.S_IFREG|0o644, b), (None, None, None))]))146 (b'a', REG_MODE, b), (None, None, None))]))
144147
145 def test_unchanged(self):148 def test_unchanged(self):
146 b = Blob.from_string(b'b')149 b = Blob.from_string(b'b')
@@ -151,11 +154,11 @@
151 (False, False), False)154 (False, False), False)
152 ], self.transform([155 ], self.transform([
153 ('unchanged',156 ('unchanged',
154 (b'a', stat.S_IFREG|0o644, b), (b'a', stat.S_IFREG|0o644, b))],157 (b'a', REG_MODE, b), (b'a', REG_MODE, b))],
155 include_unchanged=True))158 include_unchanged=True))
156 self.assertEqual([], self.transform([159 self.assertEqual([], self.transform([
157 ('unchanged',160 ('unchanged',
158 (b'a', stat.S_IFREG|0o644, b), (b'a', stat.S_IFREG|0o644, b))],161 (b'a', REG_MODE, b), (b'a', REG_MODE, b))],
159 include_unchanged=False))162 include_unchanged=False))
160163
161 def test_unversioned(self):164 def test_unversioned(self):
@@ -167,7 +170,7 @@
167 (None, False), False)170 (None, False), False)
168 ], self.transform([171 ], self.transform([
169 ('add',172 ('add',
170 (None, None, None), (b'a', stat.S_IFREG|0o644, b))],173 (None, None, None), (b'a', REG_MODE, b))],
171 target_extras=set([b'a'])))174 target_extras=set([b'a'])))
172 self.assertEqual([175 self.assertEqual([
173 TreeChange(176 TreeChange(
@@ -176,7 +179,7 @@
176 (False, False), False)179 (False, False), False)
177 ], self.transform([180 ], self.transform([
178 ('add',181 ('add',
179 (b'a', stat.S_IFREG|0o644, b), (b'a', stat.S_IFREG|0o644, b))],182 (b'a', REG_MODE, b), (b'a', REG_MODE, b))],
180 source_extras=set([b'a']),183 source_extras=set([b'a']),
181 target_extras=set([b'a'])))184 target_extras=set([b'a'])))
182185
@@ -206,7 +209,7 @@
206 b = Blob.from_string(b'b')209 b = Blob.from_string(b'b')
207 delta = self.transform([210 delta = self.transform([
208 ('modify',211 ('modify',
209 (b'a', stat.S_IFREG|0o644, a), (b'a', stat.S_IFREG|0o644, b))])212 (b'a', REG_MODE, a), (b'a', REG_MODE, b))])
210 expected_delta = TreeDelta()213 expected_delta = TreeDelta()
211 expected_delta.modified.append(TreeChange(214 expected_delta.modified.append(TreeChange(
212 b'git:a', ('a', 'a'), True, (True, True),215 b'git:a', ('a', 'a'), True, (True, True),
@@ -218,7 +221,7 @@
218 a = Blob.from_string(b'a')221 a = Blob.from_string(b'a')
219 delta = self.transform([222 delta = self.transform([
220 ('rename',223 ('rename',
221 (b'old', stat.S_IFREG|0o644, a), (b'a', stat.S_IFREG|0o644, a))])224 (b'old', REG_MODE, a), (b'a', REG_MODE, a))])
222 expected_delta = TreeDelta()225 expected_delta = TreeDelta()
223 expected_delta.renamed.append(226 expected_delta.renamed.append(
224 TreeChange(227 TreeChange(
@@ -232,7 +235,7 @@
232 b = Blob.from_string(b'b')235 b = Blob.from_string(b'b')
233 delta = self.transform([236 delta = self.transform([
234 ('rename',237 ('rename',
235 (b'a', stat.S_IFREG|0o644, a), (b'b', stat.S_IFREG|0o644, b))])238 (b'a', REG_MODE, a), (b'b', REG_MODE, b))])
236 expected_delta = TreeDelta()239 expected_delta = TreeDelta()
237 expected_delta.renamed.append(240 expected_delta.renamed.append(
238 TreeChange(241 TreeChange(
@@ -245,7 +248,7 @@
245 a = Blob.from_string(b'a')248 a = Blob.from_string(b'a')
246 delta = self.transform([249 delta = self.transform([
247 ('copy',250 ('copy',
248 (b'old', stat.S_IFREG|0o644, a), (b'a', stat.S_IFREG|0o644, a))])251 (b'old', REG_MODE, a), (b'a', REG_MODE, a))])
249 expected_delta = TreeDelta()252 expected_delta = TreeDelta()
250 expected_delta.copied.append(TreeChange(253 expected_delta.copied.append(TreeChange(
251 b'git:a', ('old', 'a'), False, (True, True),254 b'git:a', ('old', 'a'), False, (True, True),
@@ -258,7 +261,7 @@
258 b = Blob.from_string(b'b')261 b = Blob.from_string(b'b')
259 delta = self.transform([262 delta = self.transform([
260 ('copy',263 ('copy',
261 (b'a', stat.S_IFREG|0o644, a), (b'b', stat.S_IFREG|0o644, b))])264 (b'a', REG_MODE, a), (b'b', REG_MODE, b))])
262 expected_delta = TreeDelta()265 expected_delta = TreeDelta()
263 expected_delta.copied.append(TreeChange(266 expected_delta.copied.append(TreeChange(
264 b'git:b', ('a', 'b'), True, (True, True),267 b'git:b', ('a', 'b'), True, (True, True),
@@ -270,7 +273,7 @@
270 b = Blob.from_string(b'b')273 b = Blob.from_string(b'b')
271 delta = self.transform([274 delta = self.transform([
272 ('add',275 ('add',
273 (None, None, None), (b'a', stat.S_IFREG|0o644, b))])276 (None, None, None), (b'a', REG_MODE, b))])
274 expected_delta = TreeDelta()277 expected_delta = TreeDelta()
275 expected_delta.added.append(TreeChange(278 expected_delta.added.append(TreeChange(
276 b'git:a', (None, 'a'), True, (False, True), (None, b'TREE_ROOT'),279 b'git:a', (None, 'a'), True, (False, True), (None, b'TREE_ROOT'),
@@ -281,7 +284,7 @@
281 b = Blob.from_string(b'b')284 b = Blob.from_string(b'b')
282 delta = self.transform([285 delta = self.transform([
283 ('remove',286 ('remove',
284 (b'a', stat.S_IFREG | 0o644, b),287 (b'a', REG_MODE, b),
285 (None, None, None))])288 (None, None, None))])
286 expected_delta = TreeDelta()289 expected_delta = TreeDelta()
287 expected_delta.removed.append(TreeChange(290 expected_delta.removed.append(TreeChange(
@@ -293,7 +296,7 @@
293 b = Blob.from_string(b'b')296 b = Blob.from_string(b'b')
294 delta = self.transform([297 delta = self.transform([
295 ('unchanged',298 ('unchanged',
296 (b'a', stat.S_IFREG|0o644, b), (b'a', stat.S_IFREG|0o644, b))])299 (b'a', REG_MODE, b), (b'a', REG_MODE, b))])
297 expected_delta = TreeDelta()300 expected_delta = TreeDelta()
298 expected_delta.unchanged.append(TreeChange(301 expected_delta.unchanged.append(TreeChange(
299 b'git:a', ('a', 'a'), False, (True, True),302 b'git:a', ('a', 'a'), False, (True, True),
@@ -304,7 +307,7 @@
304 b = Blob.from_string(b'b')307 b = Blob.from_string(b'b')
305 delta = self.transform([308 delta = self.transform([
306 ('add',309 ('add',
307 (None, None, None), (b'a', stat.S_IFREG|0o644, b))],310 (None, None, None), (b'a', REG_MODE, b))],
308 target_extras=set([b'a']))311 target_extras=set([b'a']))
309 expected_delta = TreeDelta()312 expected_delta = TreeDelta()
310 expected_delta.unversioned.append(313 expected_delta.unversioned.append(
@@ -315,7 +318,7 @@
315 self.assertEqual(delta, expected_delta)318 self.assertEqual(delta, expected_delta)
316 delta = self.transform([319 delta = self.transform([
317 ('add',320 ('add',
318 (b'a', stat.S_IFREG|0o644, b), (b'a', stat.S_IFREG|0o644, b))],321 (b'a', REG_MODE, b), (b'a', REG_MODE, b))],
319 source_extras=set([b'a']),322 source_extras=set([b'a']),
320 target_extras=set([b'a']))323 target_extras=set([b'a']))
321 expected_delta = TreeDelta()324 expected_delta = TreeDelta()
@@ -330,7 +333,7 @@
330 b = Blob.from_string(b'target')333 b = Blob.from_string(b'target')
331 delta = self.transform([334 delta = self.transform([
332 ('modify',335 ('modify',
333 (b'a', stat.S_IFREG|0o644, a), (b'a', stat.S_IFLNK, b))])336 (b'a', REG_MODE, a), (b'a', stat.S_IFLNK, b))])
334 expected_delta = TreeDelta()337 expected_delta = TreeDelta()
335 expected_delta.kind_changed.append(TreeChange(338 expected_delta.kind_changed.append(TreeChange(
336 b'git:a', ('a', 'a'), True, (True, True),339 b'git:a', ('a', 'a'), True, (True, True),
337340
=== modified file 'breezy/tests/__init__.py'
--- breezy/tests/__init__.py 2021-08-20 15:32:58 +0000
+++ breezy/tests/__init__.py 2021-08-21 13:33:23 +0000
@@ -23,6 +23,7 @@
2323
24import atexit24import atexit
25import codecs25import codecs
26import contextlib
26import copy27import copy
27import difflib28import difflib
28import doctest29import doctest
@@ -1692,6 +1693,12 @@
1692 self._log_memento = trace.push_log_file(self._log_file)1693 self._log_memento = trace.push_log_file(self._log_file)
1693 self.addCleanup(self._finishLogFile)1694 self.addCleanup(self._finishLogFile)
16941695
1696 @contextlib.contextmanager
1697 def text_log_file(self, **kwargs):
1698 stream = TextIOWrapper(self._log_file, encoding='utf-8', **kwargs)
1699 yield stream
1700 stream.detach()
1701
1695 def _finishLogFile(self):1702 def _finishLogFile(self):
1696 """Flush and dereference the in-memory log for this testcase"""1703 """Flush and dereference the in-memory log for this testcase"""
1697 if trace._trace_file:1704 if trace._trace_file:
16981705
=== modified file 'breezy/tests/blackbox/test_big_file.py'
--- breezy/tests/blackbox/test_big_file.py 2020-05-30 03:06:21 +0000
+++ breezy/tests/blackbox/test_big_file.py 2021-08-21 13:33:23 +0000
@@ -41,9 +41,6 @@
41RESOURCE = resource.RLIMIT_AS41RESOURCE = resource.RLIMIT_AS
42LIMIT = 1024 * 1024 * 10042LIMIT = 1024 * 1024 * 100
4343
44if sys.version_info[0] == 2:
45 range = xrange
46
4744
48def make_big_file(path):45def make_big_file(path):
49 blob_1mb = BIG_FILE_CHUNK_SIZE * b'\x0c'46 blob_1mb = BIG_FILE_CHUNK_SIZE * b'\x0c'
5047
=== modified file 'breezy/tests/test_source.py'
--- breezy/tests/test_source.py 2021-08-20 14:07:13 +0000
+++ breezy/tests/test_source.py 2021-08-21 13:33:23 +0000
@@ -319,49 +319,27 @@
319 self.fail('\n\n'.join(problems))319 self.fail('\n\n'.join(problems))
320320
321 def test_flake8(self):321 def test_flake8(self):
322 try:322 self.requireFeature(features.flake8)
323 self.requireFeature(features.flake8)323 try:
324 except (SyntaxError, NameError):324 from flake8.api.legacy import get_style_guide
325 # importlib_metadata uses ModuleNotFoundError, which is325 from flake8.main.options import JobsArgument
326 # python 3.6 only326 from flake8.formatting.default import Default
327 if sys.version_info[:2] <= (3, 5):327
328 self.skipTest('python version too old')328 style = get_style_guide(jobs=JobsArgument("1"))
329 raise329 except Exception as e:
330 # Older versions of flake8 don't support the 'paths'
331 # variable
332 new_path = list(sys.path)
333 new_path.insert(
334 0, os.path.join(os.path.dirname(__file__), '..', '..', 'tools'))
335 self.overrideAttr(sys, 'path', new_path)
336 import argparse
337 from flake8.main.application import Application
338 from flake8.formatting.base import BaseFormatter
339 app = Application()
340 app.config = u'setup.cfg'
341 app.jobs = 1
342
343 class Formatter(BaseFormatter):
344
345 def __init__(self):
346 self.errors = []
347
348 def start(self):
349 pass
350
351 def stop(self):
352 app.file_checker_manager.report()
353
354 def handle(self, error):
355 self.errors.append(error)
356
357 try:
358 app.initialize([])
359 except argparse.ArgumentError as e:
360 self.skipTest('broken flake8: %r' % e)330 self.skipTest('broken flake8: %r' % e)
361 app.formatter = Formatter()331
362 app.run_checks()332 with self.text_log_file() as log_file:
363 app.report()333
364 self.assertEqual(app.formatter.errors, [])334 class Formatter(Default):
335
336 def after_init(self):
337 self.output_fd = log_file
338
339 style.init_report(Formatter)
340 report = style.check_files()
341
342 self.assertEqual(report.total_errors, 0)
365343
366 def test_no_asserts(self):344 def test_no_asserts(self):
367 """bzr shouldn't use the 'assert' statement."""345 """bzr shouldn't use the 'assert' statement."""
368346
=== modified file 'setup.cfg'
--- setup.cfg 2018-11-20 23:50:57 +0000
+++ setup.cfg 2021-08-21 13:33:23 +0000
@@ -2,10 +2,11 @@
2# Ignore E402 ("module level import not at top of file"),2# Ignore E402 ("module level import not at top of file"),
3# because even with the lazy import plugin it still triggers3# because even with the lazy import plugin it still triggers
4# for lazy_import statements before other imports.4# for lazy_import statements before other imports.
5exclude = .git,__pycache__,build,dist,target
5ignore =6ignore =
6 D7 D
7 I8 I
8 E1239 E12
9 E26110 E261
10 E26511 E265
11 E26612 E266
@@ -31,10 +32,11 @@
31 F81232 F812
32 F82133 F821
33 F84134 F841
35 W391
34 W50336 W503
35 W50437 W504
36 W60538 W605
37filename = *.py,brz39filename = *.py
3840
39[flake8:local-plugins]41[flake8:local-plugins]
40extension =42extension =
4143
=== removed directory 'src'

Subscribers

People subscribed via source and target branches