tests/test-check-module-imports.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 29 May 2023 04:24:29 +0200
changeset 50632 786443bd3bc1
parent 49235 72ff7cd05176
child 51150 8b3cc36009ec
permissions -rw-r--r--
store: cache the file_size when we get it from disk The point of caching `files` is to ensure consistency and avoiding redoing expensive work. So we cache the file_size once retrieved.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49235
72ff7cd05176 tests: add hg10 requirement to test-check-module-imports.t
Anton Shestakov <av6@dwimlabs.net>
parents: 48362
diff changeset
     1
#require test-repo hg10
23894
f388ceae2250 test-module-imports: use test-repo requirement
Matt Mackall <mpm@selenic.com>
parents: 22947
diff changeset
     2
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 29212
diff changeset
     3
  $ . "$TESTDIR/helpers-testrepo.sh"
20039
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
     4
  $ import_checker="$TESTDIR"/../contrib/import-checker.py
23894
f388ceae2250 test-module-imports: use test-repo requirement
Matt Mackall <mpm@selenic.com>
parents: 22947
diff changeset
     5
20039
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
     6
  $ cd "$TESTDIR"/..
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
     7
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
     8
There are a handful of cases here that require renaming a module so it
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
     9
doesn't overlap with a stdlib module name. There are also some cycles
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
    10
here that we should still endeavor to fix, and some cycles will be
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
    11
hidden by deduplication algorithm in the cycle detector, so fixing
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
    12
these may expose other cycles.
05626e87489c test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff changeset
    13
28844
99a2bdad0fda tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents: 28330
diff changeset
    14
Known-bad files are excluded by -X as some of them would produce unstable
99a2bdad0fda tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents: 28330
diff changeset
    15
outputs, which should be fixed later.
99a2bdad0fda tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents: 28330
diff changeset
    16
46511
02d91167cfc3 tests: add a comment in a test that will hopefully save someone some time
Kyle Lippincott <spectral@google.com>
parents: 44217
diff changeset
    17
NOTE: the `hg locate` command here only works on files that are known to
02d91167cfc3 tests: add a comment in a test that will hopefully save someone some time
Kyle Lippincott <spectral@google.com>
parents: 44217
diff changeset
    18
Mercurial. If you add an import of a new file and haven't yet `hg add`ed it, you
02d91167cfc3 tests: add a comment in a test that will hopefully save someone some time
Kyle Lippincott <spectral@google.com>
parents: 44217
diff changeset
    19
will likely receive warnings about a direct import.
02d91167cfc3 tests: add a comment in a test that will hopefully save someone some time
Kyle Lippincott <spectral@google.com>
parents: 44217
diff changeset
    20
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
    21
  $ testrepohg locate 'set:**.py or grep(r"^#!.*?python")' \
28923
531dea16f4f7 tests: run import-checker with tests .t files
timeless <timeless@mozdev.org>
parents: 28844
diff changeset
    22
  > 'tests/**.t' \
33914
a0aeb096bb12 tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com>
parents: 33439
diff changeset
    23
  > -X hgweb.cgi \
a0aeb096bb12 tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com>
parents: 33439
diff changeset
    24
  > -X setup.py \
42024
b05a3e28cf24 automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41907
diff changeset
    25
  > -X contrib/automation/ \
29212
8005e0e0eb33 tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents: 29208
diff changeset
    26
  > -X contrib/debugshell.py \
33914
a0aeb096bb12 tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com>
parents: 33439
diff changeset
    27
  > -X contrib/hgweb.fcgi \
38458
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37810
diff changeset
    28
  > -X contrib/packaging/hg-docker \
41907
9da97f49d4f4 packaging: establish hgpackaging package
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41853
diff changeset
    29
  > -X contrib/packaging/hgpackaging/ \
41853
d7dc4ac1ff84 inno: script to automate building Inno installer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40958
diff changeset
    30
  > -X contrib/packaging/inno/ \
44217
064eb65d040f contrib: a small script to nudge lingering diff
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43348
diff changeset
    31
  > -X contrib/phab-clean.py \
30435
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29305
diff changeset
    32
  > -X contrib/python-zstandard/ \
29212
8005e0e0eb33 tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents: 29208
diff changeset
    33
  > -X contrib/win32/hgwebdir_wsgi.py \
40958
abd7b75e80bc contrib: provide a small script that draw performance plot
Paul Morelle <paul.morelle@octobus.net>
parents: 40207
diff changeset
    34
  > -X contrib/perf-utils/perf-revlog-write-plot.py \
29212
8005e0e0eb33 tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents: 29208
diff changeset
    35
  > -X doc/gendoc.py \
8005e0e0eb33 tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents: 29208
diff changeset
    36
  > -X doc/hgmanpage.py \
29234
393aef802535 tests: enable import checker for all python files (including no .py files)
Yuya Nishihara <yuya@tcha.org>
parents: 29219
diff changeset
    37
  > -X i18n/posplit \
34395
41401f502c83 tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents: 33917
diff changeset
    38
  > -X mercurial/thirdparty \
28844
99a2bdad0fda tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents: 28330
diff changeset
    39
  > -X tests/hypothesishelpers.py \
37810
856f381ad74b interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34395
diff changeset
    40
  > -X tests/test-check-interfaces.py \
33917
9ce139c9222f tests: blacklist test-demandimport from test-check-module-imports
Augie Fackler <raf@durin42.com>
parents: 33916
diff changeset
    41
  > -X tests/test-demandimport.py \
33916
d669b1ad215f tests: sort excluded test files in test-check-module-imports
Augie Fackler <raf@durin42.com>
parents: 33914
diff changeset
    42
  > -X tests/test-imports-checker.t \
d669b1ad215f tests: sort excluded test files in test-check-module-imports
Augie Fackler <raf@durin42.com>
parents: 33914
diff changeset
    43
  > -X tests/test-verify-repo-operations.py \
48362
7e6488aa1261 extensions: add a default "*" suboptions prefix
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46511
diff changeset
    44
  > -X tests/test-extension.t \
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38458
diff changeset
    45
  > | sed 's-\\-/-g' | "$PYTHON" "$import_checker" -