From c9014a95bc9fb37d8e380f65f7926dadc598c8e7 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 27 Mar 2014 14:19:31 -0400 Subject: [PATCH] [1.7.x] Skipped JavascriptI18nTests if Firefox isn't properly configured. Code borrowed from django.contrib.admin.tests. Without this, the class can throw an exception with something like "The browser appears to have exited before we could connect. The output was: Error: no display specified" Backport of e2ac0203d9 from master --- tests/view_tests/tests/test_i18n.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/view_tests/tests/test_i18n.py b/tests/view_tests/tests/test_i18n.py index d837f4bc90..fac1d7d331 100644 --- a/tests/view_tests/tests/test_i18n.py +++ b/tests/view_tests/tests/test_i18n.py @@ -11,13 +11,9 @@ from django.test import ( LiveServerTestCase, TestCase, modify_settings, override_settings) from django.utils import six from django.utils._os import upath +from django.utils.module_loading import import_string from django.utils.translation import override, LANGUAGE_SESSION_KEY -try: - from selenium.webdriver.firefox import webdriver as firefox -except ImportError: - firefox = None - from ..urls import locale_dir @@ -211,16 +207,20 @@ skip_selenium = not os.environ.get('DJANGO_SELENIUM_TESTS', False) @unittest.skipIf(skip_selenium, 'Selenium tests not requested') -@unittest.skipUnless(firefox, 'Selenium not installed') class JavascriptI18nTests(LiveServerTestCase): # The test cases use translations from these apps. available_apps = ['django.contrib.admin', 'view_tests'] urls = 'view_tests.urls' + webdriver_class = 'selenium.webdriver.firefox.webdriver.WebDriver' @classmethod def setUpClass(cls): - cls.selenium = firefox.WebDriver() + try: + cls.selenium = import_string(cls.webdriver_class)() + except Exception as e: + raise unittest.SkipTest('Selenium webdriver "%s" not installed or ' + 'not operational: %s' % (cls.webdriver_class, str(e))) super(JavascriptI18nTests, cls).setUpClass() @classmethod