From 24e0c2c80fd0b8b12e085c74018edb27d3d2ef56 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 29 Apr 2015 10:45:37 -0400 Subject: [PATCH] Run pylint on all our code, and only our code. TE-855 With the old logic, we weren't running pylint on openedx at all. We were also running it on lms/lib/comment_client twice, and on the installed xblock third-party library. --- common/test/__init__.py | 0 .../tests/studio/test_studio_asset.py | 4 +- .../studio/test_studio_settings_details.py | 2 +- .../user_api/course_tag/tests/__init__.py | 0 pavelib/quality.py | 38 +++++++++++-------- scripts/all-tests.sh | 2 +- 6 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 common/test/__init__.py create mode 100644 openedx/core/djangoapps/user_api/course_tag/tests/__init__.py diff --git a/common/test/__init__.py b/common/test/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/common/test/acceptance/tests/studio/test_studio_asset.py b/common/test/acceptance/tests/studio/test_studio_asset.py index 3ddb612172..aa65420359 100644 --- a/common/test/acceptance/tests/studio/test_studio_asset.py +++ b/common/test/acceptance/tests/studio/test_studio_asset.py @@ -4,8 +4,8 @@ Acceptance tests for Studio related to the asset index page. from ...pages.studio.asset_index import AssetIndexPage -from acceptance.tests.studio.base_studio_test import StudioCourseTest -from acceptance.fixtures.base import StudioApiLoginError +from .base_studio_test import StudioCourseTest +from ...fixtures.base import StudioApiLoginError class AssetIndexTest(StudioCourseTest): diff --git a/common/test/acceptance/tests/studio/test_studio_settings_details.py b/common/test/acceptance/tests/studio/test_studio_settings_details.py index f0d37de27e..0b6bd09d98 100644 --- a/common/test/acceptance/tests/studio/test_studio_settings_details.py +++ b/common/test/acceptance/tests/studio/test_studio_settings_details.py @@ -3,7 +3,7 @@ Acceptance tests for Studio's Settings Details pages """ from unittest import skip -from acceptance.tests.studio.base_studio_test import StudioCourseTest +from .base_studio_test import StudioCourseTest from ...fixtures.course import CourseFixture from ...pages.studio.settings import SettingsPage from ...pages.studio.overview import CourseOutlinePage diff --git a/openedx/core/djangoapps/user_api/course_tag/tests/__init__.py b/openedx/core/djangoapps/user_api/course_tag/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pavelib/quality.py b/pavelib/quality.py index d91aae6a8b..03352f2dec 100644 --- a/pavelib/quality.py +++ b/pavelib/quality.py @@ -7,7 +7,27 @@ import re from .utils.envs import Env -ALL_SYSTEMS = 'lms,cms,common' +ALL_SYSTEMS = 'lms,cms,common,openedx,pavelib' + + +def top_python_dirs(dirname): + """ + Find the directories to start from in order to find all the Python files in `dirname`. + """ + top_dirs = [] + + dir_init = os.path.join(dirname, "__init__.py") + if os.path.exists(dir_init): + top_dirs.append(dirname) + + for directory in ['djangoapps', 'lib']: + subdir = os.path.join(dirname, directory) + subdir_init = os.path.join(subdir, "__init__.py") + if os.path.exists(subdir) and not os.path.exists(subdir_init): + dirs = os.listdir(subdir) + top_dirs.extend(d for d in dirs if os.path.isdir(os.path.join(subdir, d))) + + return top_dirs @task @@ -27,13 +47,7 @@ def find_fixme(options): # This makes the folder if it doesn't already exist. report_dir = (Env.REPORT_DIR / system).makedirs_p() - apps = [system] - - for directory in ['djangoapps', 'lib']: - dirs = os.listdir(os.path.join(system, directory)) - apps.extend([d for d in dirs if os.path.isdir(os.path.join(system, directory, d))]) - - apps_list = ' '.join(apps) + apps_list = ' '.join(top_python_dirs(system)) pythonpath_prefix = ( "PYTHONPATH={system}:{system}/lib" @@ -88,13 +102,7 @@ def run_pylint(options): if errors: flags.append("--errors-only") - apps = [system] - - for directory in ['lib']: - dirs = os.listdir(os.path.join(system, directory)) - apps.extend([d for d in dirs if os.path.isdir(os.path.join(system, directory, d))]) - - apps_list = ' '.join(apps) + apps_list = ' '.join(top_python_dirs(system)) pythonpath_prefix = ( "PYTHONPATH={system}:{system}/djangoapps:{system}/" diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index f73a4bd3da..2ed4dc8810 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -61,7 +61,7 @@ git clean -qxfd source scripts/jenkins-common.sh # Violations thresholds for failing the build -PYLINT_THRESHOLD=6400 +PYLINT_THRESHOLD=7350 # If the environment variable 'SHARD' is not set, default to 'all'. # This could happen if you are trying to use this script from