Mercurial > hg
annotate tests/test-check-pyflakes.t @ 27279:40eb385f798f
tests: add test for Python 3 compatibility
Python 3 is inevitable. There have been incremental movements towards
converting the code base to be Python 3 compatible. Unfortunately, we
don't have any tests that look for Python 3 compatibility. This patch
changes that.
We introduce a check-py3-compat.py script whose role is to verify
Python 3 compatibility of the files passed in. We add a test that
calls this script with all .py files from the source checkout.
The script currently only verifies that absolute_import and
print_function are used. These are the low hanging fruits for Python
compatbility. Over time, we can include more checks, including
verifying we're able to load each Python file with Python 3. You
have to start somewhere.
Accepting this patch means that all new .py files must have
absolute_import and print_function (if "print" is used) to avoid
a new warning about Python 3 incompatibility. We've already
converted several files to use absolute_import and print_function
is in the same boat, so I don't think this is such a radical
proposition.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 06 Dec 2015 22:39:12 -0800 |
parents | 77142de48ae4 |
children | aef5b606d3ee |
rev | line source |
---|---|
22047
8fb6844a4ff1
tests: change some #ifs to #requires
Matt Mackall <mpm@selenic.com>
parents:
21293
diff
changeset
|
1 #require test-repo pyflakes |
21208
0e1cbd3d52f7
tests: add repository check for pyflakes test
Matt Mackall <mpm@selenic.com>
parents:
20644
diff
changeset
|
2 |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
15372
diff
changeset
|
3 $ cd "`dirname "$TESTDIR"`" |
19377
0cb996ee8c6d
tests: run pyflakes on files from manifest which could be python files
Simon Heimberg <simohe@besonet.ch>
parents:
16350
diff
changeset
|
4 |
0cb996ee8c6d
tests: run pyflakes on files from manifest which could be python files
Simon Heimberg <simohe@besonet.ch>
parents:
16350
diff
changeset
|
5 run pyflakes on all tracked files ending in .py or without a file ending |
0cb996ee8c6d
tests: run pyflakes on files from manifest which could be python files
Simon Heimberg <simohe@besonet.ch>
parents:
16350
diff
changeset
|
6 (skipping binary file random-seed) |
21208
0e1cbd3d52f7
tests: add repository check for pyflakes test
Matt Mackall <mpm@selenic.com>
parents:
20644
diff
changeset
|
7 |
21221
e3ca21e4d05f
tests: use locate to find files for pyflakes check
Matt Mackall <mpm@selenic.com>
parents:
21208
diff
changeset
|
8 $ hg locate 'set:**.py or grep("^!#.*python")' 2>/dev/null \ |
19377
0cb996ee8c6d
tests: run pyflakes on files from manifest which could be python files
Simon Heimberg <simohe@besonet.ch>
parents:
16350
diff
changeset
|
9 > | xargs pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py" |
21293
507ce509fd22
filterpyflakes: make memoryview filtering unconditional
Matt Mackall <mpm@selenic.com>
parents:
21271
diff
changeset
|
10 tests/filterpyflakes.py:58: undefined name 'undefinedname' |
22053
4354b1e35f53
tests: fix pyflakes test whitespace breakage
Matt Mackall <mpm@selenic.com>
parents:
22047
diff
changeset
|
11 |
4354b1e35f53
tests: fix pyflakes test whitespace breakage
Matt Mackall <mpm@selenic.com>
parents:
22047
diff
changeset
|
12 |