From 906dc8522a1745e0e12c8061e4170540f7d0f486 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Mon, 25 Feb 2013 10:14:42 -0700 Subject: [PATCH] Fixed #19854 -- Turn Django's own Selenium tests off by default. --- django/contrib/admin/tests.py | 4 ++-- .../contributing/writing-code/unit-tests.txt | 15 +++------------ tests/regressiontests/views/tests/i18n.py | 4 ++-- tests/runtests.py | 9 ++++----- 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/django/contrib/admin/tests.py b/django/contrib/admin/tests.py index 30d63e4486..badf45b580 100644 --- a/django/contrib/admin/tests.py +++ b/django/contrib/admin/tests.py @@ -10,8 +10,8 @@ class AdminSeleniumWebDriverTestCase(LiveServerTestCase): @classmethod def setUpClass(cls): - if os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False): - raise SkipTest('Selenium tests skipped by explicit request') + if not os.environ.get('DJANGO_SELENIUM_TESTS', False): + raise SkipTest('Selenium tests not requested') try: cls.selenium = import_by_path(cls.webdriver_class)() except Exception as e: diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index 59f4c97c92..bd1aa5a96f 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -128,21 +128,12 @@ Running the Selenium tests Some admin tests require Selenium 2, Firefox and Python >= 2.6 to work via a real Web browser. To allow those tests to run and not be skipped, you must -install the selenium_ package (version > 2.13) into your Python path. - -Then, run the tests normally, for example: +install the selenium_ package (version > 2.13) into your Python path and run +the tests with the ``--selenium`` option: .. code-block:: bash - ./runtests.py --settings=test_sqlite admin_inlines - -If you have Selenium installed but for some reason don't want to run these tests -(for example to speed up the test suite), use the ``--skip-selenium`` option -of the test runner. - -.. code-block:: bash - - ./runtests.py --settings=test_sqlite --skip-selenium admin_inlines + ./runtests.py --settings=test_sqlite --selenium admin_inlines .. _running-unit-tests-dependencies: diff --git a/tests/regressiontests/views/tests/i18n.py b/tests/regressiontests/views/tests/i18n.py index 206cf3d256..33ffab59f2 100644 --- a/tests/regressiontests/views/tests/i18n.py +++ b/tests/regressiontests/views/tests/i18n.py @@ -177,10 +177,10 @@ class JsI18NTestsMultiPackage(TestCase): javascript_quote('este texto de app3 debe ser traducido')) -skip_selenium = os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False) +skip_selenium = not os.environ.get('DJANGO_SELENIUM_TESTS', False) -@unittest.skipIf(skip_selenium, 'Selenium tests skipped by explicit request') +@unittest.skipIf(skip_selenium, 'Selenium tests not requested') @unittest.skipUnless(firefox, 'Selenium not installed') class JavascriptI18nTests(LiveServerTestCase): urls = 'regressiontests.views.urls' diff --git a/tests/runtests.py b/tests/runtests.py index f2051a8ea6..800a3f0b93 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -302,10 +302,9 @@ if __name__ == "__main__": 'LiveServerTestCase) is expected to run from. The default value ' 'is localhost:8081.') parser.add_option( - '--skip-selenium', action='store_true', dest='skip_selenium', + '--selenium', action='store_true', dest='selenium', default=False, - help='Skip running Selenium tests even it Selenium itself is ' - 'installed. By default these tests are not skipped.') + help='Run the Selenium tests as well (if Selenium is installed)') options, args = parser.parse_args() if options.settings: os.environ['DJANGO_SETTINGS_MODULE'] = options.settings @@ -318,8 +317,8 @@ if __name__ == "__main__": if options.liveserver is not None: os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = options.liveserver - if options.skip_selenium: - os.environ['DJANGO_SKIP_SELENIUM_TESTS'] = '1' + if options.selenium: + os.environ['DJANGO_SELENIUM_TESTS'] = '1' if options.bisect: bisect_tests(options.bisect, options, args)