From 1dbdee9c54155bc730e597ace44095d68dda8bb9 Mon Sep 17 00:00:00 2001 From: Jeremy Bowman Date: Mon, 18 Dec 2017 21:18:02 -0500 Subject: [PATCH] Revert "PLAT-1858 Better capture of deprecation warnings" --- cms/envs/test.py | 10 ++++++++++ cms/pytest.ini | 5 ----- common/djangoapps/student/views.py | 4 +--- common/lib/pytest.ini | 5 ----- common/test/pytest.ini | 5 ----- lms/envs/test.py | 10 ++++++++++ openedx/tests/settings.py | 3 --- openedx/tests/util/__init__.py | 18 ++++-------------- pavelib/tests.py | 2 -- pavelib/utils/test/suites/suite.py | 11 ----------- scripts/generic-ci-tests.sh | 10 +++++----- setup.cfg | 5 ----- 12 files changed, 30 insertions(+), 58 deletions(-) diff --git a/cms/envs/test.py b/cms/envs/test.py index ec85b7a9a2..166af8268c 100644 --- a/cms/envs/test.py +++ b/cms/envs/test.py @@ -21,6 +21,7 @@ sessions. Assumes structure: from .common import * import os from path import Path as path +from warnings import filterwarnings, simplefilter from uuid import uuid4 from util.db import NoOpMigrationModules from openedx.core.lib.derived import derive_settings @@ -174,6 +175,15 @@ CACHES = { }, } +# hide ratelimit warnings while running tests +filterwarnings('ignore', message='No request passed to the backend, unable to rate-limit') + +# Ignore deprecation warnings (so we don't clutter Jenkins builds/production) +# https://docs.python.org/2/library/warnings.html#the-warnings-filter +# Change to "default" to see the first instance of each hit +# or "error" to convert all into errors +simplefilter('ignore') + ################################# CELERY ###################################### CELERY_ALWAYS_EAGER = True diff --git a/cms/pytest.ini b/cms/pytest.ini index cf4d8324a4..c12268a41f 100644 --- a/cms/pytest.ini +++ b/cms/pytest.ini @@ -1,11 +1,6 @@ [pytest] DJANGO_SETTINGS_MODULE = cms.envs.test addopts = --nomigrations --reuse-db --durations=20 -p no:randomly -# Enable default handling for all warnings, including those that are ignored by default; -# but hide rate-limit warnings, because we deliberately don't throttle test user logins -filterwarnings = - default - ignore:No request passed to the backend, unable to rate-limit.*:UserWarning norecursedirs = envs python_classes = python_files = tests.py test_*.py *_tests.py diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index 98699a1f76..5c07b4585d 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -2437,9 +2437,7 @@ def auto_auth(request): # Log in as the user if login_when_done: - backend = load_backend(NEW_USER_AUTH_BACKEND) - user = backend.authenticate(request=request, username=username, password=password) - user.backend = NEW_USER_AUTH_BACKEND + user = authenticate(username=username, password=password) login(request, user) create_comments_service_user(user) diff --git a/common/lib/pytest.ini b/common/lib/pytest.ini index e85793143f..349b1dff15 100644 --- a/common/lib/pytest.ini +++ b/common/lib/pytest.ini @@ -1,11 +1,6 @@ [pytest] DJANGO_SETTINGS_MODULE = openedx.tests.settings addopts = --nomigrations --reuse-db --durations=20 -# Enable default handling for all warnings, including those that are ignored by default; -# but hide rate-limit warnings, because we deliberately don't throttle test user logins -filterwarnings = - default - ignore:No request passed to the backend, unable to rate-limit.*:UserWarning norecursedirs = .cache python_classes = python_files = tests.py test_*.py tests_*.py *_tests.py __init__.py diff --git a/common/test/pytest.ini b/common/test/pytest.ini index 57251b8fb7..d8172d2726 100644 --- a/common/test/pytest.ini +++ b/common/test/pytest.ini @@ -1,8 +1,3 @@ [pytest] addopts = -p no:randomly --durations=20 -# Enable default handling for all warnings, including those that are ignored by default; -# but hide rate-limit warnings, because we deliberately don't throttle test user logins -filterwarnings = - default - ignore:No request passed to the backend, unable to rate-limit.*:UserWarning norecursedirs = .cache diff --git a/lms/envs/test.py b/lms/envs/test.py index e64aeebfa3..f717b65a55 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -22,6 +22,7 @@ from .common import * import os from path import Path as path from uuid import uuid4 +from warnings import filterwarnings, simplefilter from util.db import NoOpMigrationModules from openedx.core.lib.derived import derive_settings @@ -230,6 +231,15 @@ CACHES = { # Dummy secret key for dev SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd' +# hide ratelimit warnings while running tests +filterwarnings('ignore', message='No request passed to the backend, unable to rate-limit') + +# Ignore deprecation warnings (so we don't clutter Jenkins builds/production) +# https://docs.python.org/2/library/warnings.html#the-warnings-filter +# Change to "default" to see the first instance of each hit +# or "error" to convert all into errors +simplefilter('ignore') + ############################# SECURITY SETTINGS ################################ # Default to advanced security in common.py, so tests can reset here to use # a simpler security model diff --git a/openedx/tests/settings.py b/openedx/tests/settings.py index ccfc7217be..85e1df4f71 100644 --- a/openedx/tests/settings.py +++ b/openedx/tests/settings.py @@ -58,12 +58,10 @@ INSTALLED_APPS = ( 'djcelery', 'openedx.core.djangoapps.video_config', 'openedx.core.djangoapps.video_pipeline', - 'openedx.core.djangoapps.bookmarks.apps.BookmarksConfig', 'edxval', 'courseware', 'student', 'certificates.apps.CertificatesConfig', - 'openedx.core.djangoapps.user_api', 'course_modes.apps.CourseModesConfig', 'lms.djangoapps.verify_student.apps.VerifyStudentConfig', 'openedx.core.djangoapps.dark_lang', @@ -73,7 +71,6 @@ INSTALLED_APPS = ( 'openedx.core.djangoapps.self_paced', 'milestones', 'celery_utils', - 'lms.djangoapps.completion.apps.CompletionAppConfig', ) LMS_ROOT_URL = 'http://localhost:8000' diff --git a/openedx/tests/util/__init__.py b/openedx/tests/util/__init__.py index 0db3fb023f..b9835638df 100644 --- a/openedx/tests/util/__init__.py +++ b/openedx/tests/util/__init__.py @@ -11,20 +11,10 @@ import django def expected_redirect_url(relative_url, hostname='testserver'): """ Get the expected redirect URL for the current Django version and the - given relative URL: - - * Django 1.8 and earlier redirect URLs beginning with a slash to absolute - URLs, later versions redirect to relative ones. - * Django 1.8 and earlier leave URLs without a leading slash alone, later - versions prepend the missing slash. + given relative URL. Django 1.8 and earlier redirect to absolute URLs, + later versions redirect to relative ones. """ if django.VERSION < (1, 9): - if relative_url.startswith('/'): - return 'http://{}{}'.format(hostname, relative_url) - else: - return relative_url + return 'http://{}{}'.format(hostname, relative_url) else: - if relative_url.startswith('/'): - return relative_url - else: - return '/{}'.format(relative_url) + return relative_url diff --git a/pavelib/tests.py b/pavelib/tests.py index fc66984b68..808c09f266 100644 --- a/pavelib/tests.py +++ b/pavelib/tests.py @@ -65,7 +65,6 @@ __test__ = False # do not collect dest='disable_migrations', help="Create tables by applying migrations." ), - make_option('--stderr', help='redirect stderr from tests to a file at this path'), ], share_with=['pavelib.utils.test.utils.clean_reports_dir']) @PassthroughTask @timed @@ -141,7 +140,6 @@ def test_system(options, passthrough_options): "--disable_capture", action="store_true", dest="disable_capture", help="Disable capturing of stdout/stderr" ), - make_option('--stderr', help='redirect stderr from tests to a file at this path'), ], share_with=['pavelib.utils.test.utils.clean_reports_dir']) @PassthroughTask @timed diff --git a/pavelib/utils/test/suites/suite.py b/pavelib/utils/test/suites/suite.py index 8830233960..74ee8f708a 100644 --- a/pavelib/utils/test/suites/suite.py +++ b/pavelib/utils/test/suites/suite.py @@ -1,7 +1,6 @@ """ A class used for defining and running test suites """ -import os import sys import subprocess @@ -28,7 +27,6 @@ class TestSuite(object): self.verbosity = int(kwargs.get('verbosity', 1)) self.skip_clean = kwargs.get('skip_clean', False) self.passthrough_options = kwargs.get('passthrough_options', []) - self.stderr_path = kwargs.get('stderr', None) def __enter__(self): """ @@ -93,10 +91,6 @@ class TestSuite(object): sys.stdout.flush() kwargs = {'shell': True, 'cwd': None} - stderr = None - if self.stderr_path: - stderr = open(self.stderr_path, 'a') - kwargs['stderr'] = stderr process = None try: @@ -105,17 +99,12 @@ class TestSuite(object): except KeyboardInterrupt: kill_process(process) sys.exit(1) - finally: - if stderr: - stderr.close() def run_suite_tests(self): """ Runs each of the suites in self.subsuites while tracking failures """ # Uses __enter__ and __exit__ for context - if self.stderr_path and os.path.isfile(self.stderr_path): - os.remove(self.stderr_path) with self: # run the tests for this class, and for all subsuites if self.cmd: diff --git a/scripts/generic-ci-tests.sh b/scripts/generic-ci-tests.sh index 51e7db7885..fcc99748ad 100755 --- a/scripts/generic-ci-tests.sh +++ b/scripts/generic-ci-tests.sh @@ -132,13 +132,13 @@ case "$TEST_SUITE" in "lms-unit") case "$SHARD" in "all") - $TOX paver test_system -s lms --disable_capture $PAVER_ARGS $PARALLEL --stderr=lms-tests.log + $TOX paver test_system -s lms --disable_capture $PAVER_ARGS $PARALLEL 2> lms-tests.log ;; [1-3]) - $TOX paver test_system -s lms --disable_capture --eval-attr="shard==$SHARD" $PAVER_ARGS $PARALLEL --stderr=lms-tests.$SHARD.log + $TOX paver test_system -s lms --disable_capture --eval-attr="shard==$SHARD" $PAVER_ARGS $PARALLEL 2> lms-tests.$SHARD.log ;; 4|"noshard") - $TOX paver test_system -s lms --disable_capture --eval-attr='not shard' $PAVER_ARGS $PARALLEL --stderr=lms-tests.4.log + $TOX paver test_system -s lms --disable_capture --eval-attr='not shard' $PAVER_ARGS $PARALLEL 2> lms-tests.4.log ;; *) # If no shard is specified, rather than running all tests, create an empty xunit file. This is a @@ -152,11 +152,11 @@ case "$TEST_SUITE" in ;; "cms-unit") - $TOX paver test_system -s cms --disable_capture $PAVER_ARGS --stderr=cms-tests.log + $TOX paver test_system -s cms --disable_capture $PAVER_ARGS 2> cms-tests.log ;; "commonlib-unit") - $TOX paver test_lib --disable_capture $PAVER_ARGS --stderr=common-tests.log + $TOX paver test_lib --disable_capture $PAVER_ARGS 2> common-tests.log ;; "js-unit") diff --git a/setup.cfg b/setup.cfg index c2c454a69d..0c96005f23 100644 --- a/setup.cfg +++ b/setup.cfg @@ -17,11 +17,6 @@ process-timeout=300 [tool:pytest] DJANGO_SETTINGS_MODULE = lms.envs.test addopts = --nomigrations --reuse-db --durations=20 -# Enable default handling for all warnings, including those that are ignored by default; -# but hide rate-limit warnings, because we deliberately don't throttle test user logins -filterwarnings = - default - ignore:No request passed to the backend, unable to rate-limit.*:UserWarning norecursedirs = .* *.egg build conf dist node_modules test_root cms/envs lms/envs python_classes = python_files = tests.py test_*.py tests_*.py *_tests.py __init__.py