From e2ac0203d9fceccf0e76b547a58c35793c620b71 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 27 Mar 2014 14:19:31 -0400 Subject: [PATCH] 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" --- 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