diff -r ab2c5163900e -r 1a6a117d0b95 tests/test-module-imports.t --- a/tests/test-module-imports.t Sun Jun 28 12:28:48 2015 -0700 +++ b/tests/test-module-imports.t Sun Jun 28 12:46:34 2015 -0700 @@ -8,6 +8,100 @@ $ export TERM $ python -m doctest $import_checker +Run additional tests for the import checker + + $ mkdir testpackage + + $ cat > testpackage/multiple.py << EOF + > from __future__ import absolute_import + > import os, sys + > EOF + + $ cat > testpackage/unsorted.py << EOF + > from __future__ import absolute_import + > import sys + > import os + > EOF + + $ cat > testpackage/stdafterlocal.py << EOF + > from __future__ import absolute_import + > from . import unsorted + > import os + > EOF + + $ cat > testpackage/requirerelative.py << EOF + > from __future__ import absolute_import + > import testpackage.unsorted + > EOF + + $ cat > testpackage/importalias.py << EOF + > from __future__ import absolute_import + > import ui + > EOF + + $ cat > testpackage/relativestdlib.py << EOF + > from __future__ import absolute_import + > from .. import os + > EOF + + $ cat > testpackage/symbolimport.py << EOF + > from __future__ import absolute_import + > from .unsorted import foo + > EOF + + $ cat > testpackage/latesymbolimport.py << EOF + > from __future__ import absolute_import + > from . import unsorted + > from mercurial.node import hex + > EOF + + $ cat > testpackage/multiplegroups.py << EOF + > from __future__ import absolute_import + > from . import unsorted + > from . import more + > EOF + + $ mkdir testpackage/subpackage + $ cat > testpackage/subpackage/levelpriority.py << EOF + > from __future__ import absolute_import + > from . import foo + > from .. import parent + > EOF + + $ cat > testpackage/sortedentries.py << EOF + > from __future__ import absolute_import + > from . import ( + > foo, + > bar, + > ) + > EOF + + $ cat > testpackage/importfromalias.py << EOF + > from __future__ import absolute_import + > from . import ui + > EOF + + $ cat > testpackage/importfromrelative.py << EOF + > from __future__ import absolute_import + > from testpackage.unsorted import foo + > EOF + + $ python "$import_checker" testpackage/*.py testpackage/subpackage/*.py + testpackage/importalias.py ui module must be "as" aliased to uimod + testpackage/importfromalias.py ui from testpackage must be "as" aliased to uimod + testpackage/importfromrelative.py import should be relative: testpackage.unsorted + testpackage/importfromrelative.py direct symbol import from testpackage.unsorted + testpackage/latesymbolimport.py symbol import follows non-symbol import: mercurial.node + testpackage/multiple.py multiple imported names: os, sys + testpackage/multiplegroups.py multiple "from . import" statements + testpackage/relativestdlib.py relative import of stdlib module + testpackage/requirerelative.py import should be relative: testpackage.unsorted + testpackage/sortedentries.py imports from testpackage not lexically sorted: bar < foo + testpackage/stdafterlocal.py stdlib import follows local import: os + testpackage/subpackage/levelpriority.py higher-level import should come first: testpackage + testpackage/symbolimport.py direct symbol import from testpackage.unsorted + testpackage/unsorted.py imports not lexically sorted: os < sys + $ cd "$TESTDIR"/.. There are a handful of cases here that require renaming a module so it