From 57b9d8bc0ed71639a666d81f916515a1439d6aeb Mon Sep 17 00:00:00 2001 From: "Eric N. Vander Weele" Date: Sat, 18 May 2019 09:42:19 -0400 Subject: [PATCH 1/2] Test for Python project root directory Add test files and a new test suite for detecting a Python project's root directory. --- test/python-test-files/python-package-project/.flake8 | 0 .../python-package-project/package-name/module.py | 0 test/test_python_find_project_root.vader | 11 +++++++++++ 3 files changed, 11 insertions(+) create mode 100644 test/python-test-files/python-package-project/.flake8 create mode 100644 test/python-test-files/python-package-project/package-name/module.py create mode 100644 test/test_python_find_project_root.vader diff --git a/test/python-test-files/python-package-project/.flake8 b/test/python-test-files/python-package-project/.flake8 new file mode 100644 index 00000000..e69de29b diff --git a/test/python-test-files/python-package-project/package-name/module.py b/test/python-test-files/python-package-project/package-name/module.py new file mode 100644 index 00000000..e69de29b diff --git a/test/test_python_find_project_root.vader b/test/test_python_find_project_root.vader new file mode 100644 index 00000000..176e819a --- /dev/null +++ b/test/test_python_find_project_root.vader @@ -0,0 +1,11 @@ +Before: + call ale#test#SetDirectory('/testplugin/test') + +After: + call ale#test#RestoreDirectory() + +Execute(Detect root of Python project with .flake8 correctly): + call ale#test#SetFilename('python-test-files/python-package-project/package-name/module.py') + AssertEqual + \ ale#path#Simplify(g:dir . '/python-test-files/python-package-project'), + \ ale#python#FindProjectRoot(bufnr('')) From 57736cdcccf46e0d6252b556e9a2b2a56a634754 Mon Sep 17 00:00:00 2001 From: "Eric N. Vander Weele" Date: Sat, 18 May 2019 09:42:19 -0400 Subject: [PATCH 2/2] Change Python project root dir detection for flake8 configuration The official configuration files for `flake8` are `.flake8`, `tox.ini`, and `setup.cfg`. After investigation, it is safe to remove `flake8.cfg` as it appears to only exist as a typo in other tooling documentation (e.g., `python-language-server`). Even though no linters automatically read `.flake8rc`, it is kept in case projects may be using it for detecting the projects root directory. --- autoload/ale/python.vim | 2 +- doc/ale-python.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/ale/python.vim b/autoload/ale/python.vim index 2f28214b..7ed22367 100644 --- a/autoload/ale/python.vim +++ b/autoload/ale/python.vim @@ -25,7 +25,7 @@ function! ale#python#FindProjectRootIni(buffer) abort \|| filereadable(l:path . '/tox.ini') \|| filereadable(l:path . '/mypy.ini') \|| filereadable(l:path . '/pycodestyle.cfg') - \|| filereadable(l:path . '/flake8.cfg') + \|| filereadable(l:path . '/.flake8') \|| filereadable(l:path . '/.flake8rc') \|| filereadable(l:path . '/pylama.ini') \|| filereadable(l:path . '/pylintrc') diff --git a/doc/ale-python.txt b/doc/ale-python.txt index 7dd3b65d..43cdf648 100644 --- a/doc/ale-python.txt +++ b/doc/ale-python.txt @@ -29,7 +29,7 @@ ALE will look for configuration files with the following filenames. > tox.ini mypy.ini pycodestyle.cfg - flake8.cfg + .flake8 .flake8rc pylama.ini pylintrc